OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStackHuseyin Cotuk
Konu: OpenStack Bulut Platformu Nedir? Nerelerde Kullanılır?
Sunum: Dr. Hüseyin ÇOTUK
İçerik:
• Dünyada Bulut Dönüşümü
• Neden Bulut?
• OpenStack Nedir?
• OpenStack Bileşenleri
• Servis Olarak Verilebilen Hizmetler
• Neden OpenStack?
• Dünyada OpenStack Kullanımı
• OpenStack'te Depolama Alternatifleri
• Neden OpenStack ve Ceph?
• Demo
• Soru / Cevap
11.10.2017 tarihinde İstanbul Yıldız Teknik Üniversitesi Davutpaşa Kampüsü Teknoparkı A1 Blok'ta Ceph Türkiye adına yapılan ikinci meetup'a ait sunum. Dr. Hüseyin ÇOTUK tarafından yapılan sunum süresince aşağıdaki konular ele alınmıştır.
Ceph Yapıtaşları
Ceph Mimarisi
Ceph Üzerinde Veri Yerleşimi
CRUSH Algoritması
CRUSH Map
OpenStack Entegrasyonu
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStackHuseyin Cotuk
Konu: OpenStack Bulut Platformu Nedir? Nerelerde Kullanılır?
Sunum: Dr. Hüseyin ÇOTUK
İçerik:
• Dünyada Bulut Dönüşümü
• Neden Bulut?
• OpenStack Nedir?
• OpenStack Bileşenleri
• Servis Olarak Verilebilen Hizmetler
• Neden OpenStack?
• Dünyada OpenStack Kullanımı
• OpenStack'te Depolama Alternatifleri
• Neden OpenStack ve Ceph?
• Demo
• Soru / Cevap
11.10.2017 tarihinde İstanbul Yıldız Teknik Üniversitesi Davutpaşa Kampüsü Teknoparkı A1 Blok'ta Ceph Türkiye adına yapılan ikinci meetup'a ait sunum. Dr. Hüseyin ÇOTUK tarafından yapılan sunum süresince aşağıdaki konular ele alınmıştır.
Ceph Yapıtaşları
Ceph Mimarisi
Ceph Üzerinde Veri Yerleşimi
CRUSH Algoritması
CRUSH Map
OpenStack Entegrasyonu
Bilginç IT Academy - JPA (Java Persistence API)Mimar Aslan
Turkey JUG (Java User Group) Leader,
Turkey JBUG (JBoss User Group) Leader,
Computer Engineer, Senior Java Architect,
Software (Author, Speaker, Trainer)
Mimar Aslan
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORMMimar Aslan
25 Mayıs 2013 tarihinde Azer JUG (Java User Group) , Azer OUG (Oracle User Group)'un birlikte düzenledikleri Java Web Teknolojileri Seminerine Azerbaycan Qafqaz Üniversitesinde konuşmacı olarak katıldım ve (Java Persistence API) JPA ve Hibernate framework ile ORM hakkında bir sunum yaptım.
Verinin temsili, işlenmesi, saklanmasında gelişen ve değişen
koşullar ele alındıktan sonra, büyük verinin işlenmesi konusu
ele alınıyor.
Verinin anlamlandırılması konusunda değişen terimler, ünvanlar, algoritmalar, kullanılan aletler konusunda değerlendirmeler paylaşıldı.
sunumun videosuna aşağıdaki adresten ulaşabilirsiniz.
https://www.youtube.com/watch?v=pnvvMU8L-O0
Veritabanı temel kavramları, SQL ve tasarım yöntemlerini açıklayan bir çalışmanın altyapı kurulumlarını anlatan bir çalışma.
Örnekleme için Oracle XE veritabanı kullanacağız. Bunun kurulumu ile ilgili ayrıntıları bir belgede toplamaya çalıştım.
Öncelikle veritabanı, sonra veritabanına bağlanma aracı kurularak tam bir örnekleme ortamı oluşturulacaktır.
İlk olarak varolan tablolar üzerinde işlemler gösterilecek, sonrasında yeni nesnelerin oluşturulması ve tasarım konularına değinilecektir.
Dspace Migration and Dspace Piwik IntegrationMesut Güngör
Bu sunum eski bir Dspace versiyonundan 5.x versiyonuna veri aktarımı ve piwik analitik sisteminin analitiklerinin dinamik bir şekilde dspace içerisine gömülmesini anlatıyor.
Bilginç IT Academy - JPA (Java Persistence API)Mimar Aslan
Turkey JUG (Java User Group) Leader,
Turkey JBUG (JBoss User Group) Leader,
Computer Engineer, Senior Java Architect,
Software (Author, Speaker, Trainer)
Mimar Aslan
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORMMimar Aslan
25 Mayıs 2013 tarihinde Azer JUG (Java User Group) , Azer OUG (Oracle User Group)'un birlikte düzenledikleri Java Web Teknolojileri Seminerine Azerbaycan Qafqaz Üniversitesinde konuşmacı olarak katıldım ve (Java Persistence API) JPA ve Hibernate framework ile ORM hakkında bir sunum yaptım.
Verinin temsili, işlenmesi, saklanmasında gelişen ve değişen
koşullar ele alındıktan sonra, büyük verinin işlenmesi konusu
ele alınıyor.
Verinin anlamlandırılması konusunda değişen terimler, ünvanlar, algoritmalar, kullanılan aletler konusunda değerlendirmeler paylaşıldı.
sunumun videosuna aşağıdaki adresten ulaşabilirsiniz.
https://www.youtube.com/watch?v=pnvvMU8L-O0
Veritabanı temel kavramları, SQL ve tasarım yöntemlerini açıklayan bir çalışmanın altyapı kurulumlarını anlatan bir çalışma.
Örnekleme için Oracle XE veritabanı kullanacağız. Bunun kurulumu ile ilgili ayrıntıları bir belgede toplamaya çalıştım.
Öncelikle veritabanı, sonra veritabanına bağlanma aracı kurularak tam bir örnekleme ortamı oluşturulacaktır.
İlk olarak varolan tablolar üzerinde işlemler gösterilecek, sonrasında yeni nesnelerin oluşturulması ve tasarım konularına değinilecektir.
Dspace Migration and Dspace Piwik IntegrationMesut Güngör
Bu sunum eski bir Dspace versiyonundan 5.x versiyonuna veri aktarımı ve piwik analitik sisteminin analitiklerinin dinamik bir şekilde dspace içerisine gömülmesini anlatıyor.
1. Sesame
Orhun Dalabasmaz
Seyfullah Demir - N10124010
28/12/2010 Bilgi Erişim Sistemleri '10
2. İçerik
Teorik
Sesame Nedir?
Sesame Mimarisi
Sesame ve Jena Uygulama
SeRQL & SPARQL
SeRQL örnekleri
Sesame Kurulumu
Sesame Konsolu
Sesame Server
Sesame Workbench
Sesame API
Repository API
Örnek Kod Gösterimi
28/12/2010 Bilgi Erişim Sistemleri '10 2
3. Sesame nedir ?
• RDF verilerini saklamaya, sorgulamaya ve çıkarsama yapmaya
yarayan açık kaynak kodlu bir JAVA uygulama çatısıdır.
• RDF verilerinin saklandığı veri depolarına erişmek için veritabanı
sunucusu olarak da kullanılabilir.
• Sesame, farklı veri depolama mekanizmaları, çıkarsayıcılar, RDF
kütük formatları, sorgu dilleri ve sorgu sonuç formatlarıyla
çalışabilmeyi destekleyen esnek bir yapıya sahiptir.
• Dağıtık mimarileri destekler ve Jena ile ortak çalışabilir
28/12/2010 Bilgi Erişim Sistemleri '10 3
4. Sesame nedir ?
Aduna şirketi tarafından geliştirilmiştir.
Ana geliştiricileri Arjohn Kampman ve Jeen Broekstra‟dır
İlk sürümü 1999-2001 yılları arasında çıkmıştır
Son sürümü 16 Temmuz 2010‟da çıkmıştır (Sesame 2.3.2)
Eylül 2010‟da 3.0 Alpha sürümü yayınlanmıştır.
28/12/2010 Bilgi Erişim Sistemleri '10 4
5. Sesame
• Sesame‟nin çıkışı On-To-Knowledge projesine(1999 – 2001 EU IST
On-To-Knowledge project) dayanmaktadır. Sesame bu projede
ontoloji güdümlü araçların merkezinde yer alıyordu.
• Proje 2001 yılında sonlanması rağmen; Aduna, NLnet
Foundation(Ontotext geliştiricileri) işbirliğiyle ve birkaç gönüllü
geliştirici tarafından geliştirilmeye devam edildi.
28/12/2010 Bilgi Erişim Sistemleri '10 5
6. Sesame Projesi
• 1999 – 2001 EU IST On-To-Knowledge project
– Projelerde „RDF sorgulama motoru‟ olarak kullanılmak üzere geliştirildi
– Aduna, RQL‟i sorgulama dili olarak geliştirdi (RQL + RDBMS backend)
– İlk sürüm: Sesame 0.1
• 2001 – 2003 „Open Sesame‟
– NLNet şirketi tarafından sponsorluğu üstlenildi
– İki yıl boyunca açık kaynak kodlu olarak geliştirildi
– Son sürüm: Sesame 1.0
• 2004-2006 „Open Sesame 2‟
– Sesame 1.0 çıktıktan sonra Sesame geliştirilmeye devam edildi
– Amaç: Sesame‟nin yeni çıkacak uygulama çatılarıyla uyumlu olabilmesini sağlamak
– Sonuç: Sesame 2.0
• 2006‟dan sonra
– Aduna, Sesame‟nin kendi ürünlerinin bir parçası olarak geliştirilmesine karar verdi
– Açık kaynak olarak kalmasına karar verildi
28/12/2010 Bilgi Erişim Sistemleri '10 6
7. 1.x ve 2.x
• Sesame 1.x
– Üçlüleri kullanmaktadır. (Predicate-Subject-Object)
• Sesame 2.x
– Bu sürüm özellikle SPARQL desteği için çıkarılmıştır
– Sesame 2.1 sürümünde ise performansa önem verilmiştir
– Dörtlüleri kullanmaktadır (Predicate Subject Object Context)
– Dörtlüleri kullandığı için Sesame 1.x „in performansına yetişemez
28/12/2010 Bilgi Erişim Sistemleri '10 7
8. Sesame özellikleri
• Üst düzey sorgulama dil desteği
– SeRQL, SPARQL
• Farklı veri depolama olanakları
– Yerel disk (Native Store)
– İlişkisel VTYS (MySQL, PostgreSQL)
– Ana Bellek (Main Memory)
– Uzaktan erişim (Remote)
• İlişkilendirme desteği (Reasoning support)
• Bölünemez işlem desteği (Transactional support)
• Kapsam/Bağlam desteği (Context support )
• Farklı RDF formatlarıyla çalışabilme desteği
Rio (RDF okuma yazma): RDF/XML, Turtle, N3, N-Triples
28/12/2010 Bilgi Erişim Sistemleri '10 8
11. Jena ve Sesame
JENA SESAME
RDF Veri Yükleme +++ +
RDF Sorgulama + +++
Web uygulamaları için Yok Var
ölçeklenebilirlik sağlarma
(Directly focused towards web
access and scalability)
Farklı veri depolama araçları Yok Var
için esnek mimari katman
(Flexible Layer architecture for
different storage backend)
OWL desteği Var Yok
(eklenti desteği var – OntoText
OWLIM eklentisi)
28/12/2010 Bilgi Erişim Sistemleri '10 11
12. Jena ve Sesame
• Performans
Veri yüklemek için Jena daha etkili olurken, bu verileri sorgulamak
için Sesame kesinlikle daha etkili olmaktadır
2009 verileri;
• 100M üçleme yüklemek için geçen süre;
– Sesame: 3 gün 6 saat
– Jena TDB: 1.5 saat
– Jena SDB: 1 gün 15 saat
• TDB (TripleDataBase) ve SDB (SpatialDataBase) birer Jena
bileşenidir
28/12/2010 Bilgi Erişim Sistemleri '10 12
13. Jena ve Sesame
• Karışık sorgularda
JENA SDB JENA TDB SESAME
1M 10,421 4,450 18,094
25M 968 353 1,343
100M 211 81 254
– 1 saatte sorgulayabildiği üçlülerin sayısı
• Basit sorgularda
JENA SDB JENA TDB SESAME
1M 15,692 15,842 38,727
25M 4,877 1,856 39,059
100M 584 459 3,116
28/12/2010 Bilgi Erişim Sistemleri '10 13
14. Jena ve Sesame
• Özetle;
• Jena TDB Sesame‟ye göre;
– Daha ölçeklenebilir bir yapıya sahiptir
– Daha hızlı veri yükleme imkanı sağlar
– Buna karşın çok kötü sorgulama performansı vardır
• 100M‟den küçük veriler için Sesame daha ideal bir performans
sağlamaktadır
• Jena SDB ise Jena TDB ve Sesame‟ye nazaran, orta ölçekli bir
yapılanmada daha etkili performans sağlayabilir
28/12/2010 Bilgi Erişim Sistemleri '10 14
15. Sunucu kurarken
1) Çevre değişkenlerini düzenle;
a) Java Servlet Container yüklenmelidir
(önerilen: Apache Tomcat 5.x ve üzeri)
b) Java 5.0 environment yüklenmelidir
(önerilen: Sun J2SE 1.5.x)
2) sesame.war web uygulaması yerleştirilmelidir
a) Yer: [TOMCAT] /webapps/sesame
3) Sesame sunucusu ayarlanmalıdır
a) [SESAME]/WEB-INF/server.conf.example
b) XML kütüğünü herhangi bir düzenleyici ile değiştirebiliriz
28/12/2010 Bilgi Erişim Sistemleri '10 15
16. Veri deposu ayarları
• id: veri deposunun biricik anahtarı olarak kullanılır
• title: kullanıcı tarafından görülen isim
• sailstack: bir çok sail içerir (yığıt)
– Alttaki sail asıl katmandır
– Her yeni sail katmanı yeni bir işlevsellik katar
(örneğin. inferencing, caching ..)
<repository id="mem-rdfs">
<title>Main Memory RDF Schema repository</title>
<sailstack>
<sail
class="org.openrdf.sesame.sailimpl.memory.MemoryStoreRDFSInferencer"/>
<sail class="org.openrdf.sesame.sailimpl.memory.MemoryStore">
<param name=“file” value=“/data/mem-rdfs.dat”/>
</sail>
</sailstack>
</repository>
28/12/2010 Bilgi Erişim Sistemleri '10 16
17. SeRQL
• Sesame RDF Query Language
• SPARQL‟e benzemekle birlikte farklı bir sözdizimi kullanır
• RQL/RDQL dillerine alternatif olarak ortaya çıkmıştır
• W3C standardı değildir (not a W3C recommendation)
• Sesame, SeRQL ve SPARQL ile sorgulama yapmaya
olanak verir.
28/12/2010 Bilgi Erişim Sistemleri '10 17
18. SeRQL ve SPARQL
• Her ikisi de RDF sorgulama ve dönüştürme için etkili bir yapıya
sahiptir
– SELECT ve CONSTRUCT
– Opsiyonel deyimler
– context/named-graphs desteği
• SeRQL (“circle”)
– İç içe sorgular (IN, EXISTS ..)
– Kullanıcı dostu söz dizimi
– Sesame üzerine daha etkili
• SPARQL (“sparkle”)
– W3C Standard
– Diğer araçlarla uyumluluk: Jena, Redland, 3Store, Sesame, …
28/12/2010 Bilgi Erişim Sistemleri '10 18
19. SeRQL ve SPARQL örnek
SELECT DISTINCT
X, T
FROM
{X} movie:title {T};
movie:hasPart {Y} movie:characterName {Z}
WHERE
Z = “Edward Scissorhands”@en
USING NAMESPACE
movie = <http://example.org/movies/>
PREFIX movie: <http://example.org/movies/>
SELECT DISTINCT ?x ?t
WHERE { ?x movie:title ?t ;
movie:hasPart ?y .
?y movie:characterName ?z .
FILTER (?z = “Edward Scissorhands”@en)
28/12/2010 } Bilgi Erişim Sistemleri '10 19
20. SeRQL varlık ilişkilendirmesi
• {X} movie:hasPart {:role1}
• {X} movie:hasPart {Y}
• {X} P {Y}
movie:hasPart movie:characterName
movie1 role1 “Edward ScissorHands”
28/12/2010 Bilgi Erişim Sistemleri '10 20
21. Zincirleme, Dallandırma ve Karşılaştırma
(Chaining, branching and comparing)
• Zincirleme: (özneler farklı)
– {X} movie:hasPart {Y} movie:characterName {Z}
• Dallandırma: (özneler aynı)
– {Y} rdf:type {movie:Role};
movie:characterName {Z}
• Karşılaştırma işleçleri:
– String karşılaştırma:
• Z like “*Hands”
– boolean karşılaştırma:
• X < Y, X <= Y, Z < 20, Z = Y, vb.
movie:hasPart movie:characterName
movie1 role1 “Edward Scissorhands”
28/12/2010 Bilgi Erişim Sistemleri '10 21
22. SeRQL sorgu yapısı
• SeRQL, SQL benzeri söz dizimine sahiptir (select-from-
where)
SELECT
X, Y, Z
FROM
{X} movie:hasPart {Y} movie:characterName {Z}
WHERE
Z LIKE “edward scissorhands” IGNORE CASE
USING NAMESPACE
movie = <http://example.org/movies/>
28/12/2010 Bilgi Erişim Sistemleri '10 22
23. SeRQL
• RDF yarı yapısaldır
– Her ne kadar şema nesnelerin belirli
özelliklerinin olması gerektiğini belirtse de,
her zaman veride karşılığı olmayabilir.
foaf:firstName Jeen
um:User
type
type
person001
foaf:mbox
j.broekstra@tue.nl
person002
foaf:firstName Geert-Jan
28/12/2010 Bilgi Erişim Sistemleri '10 23
24. SeRQL
• Sistemdeki kullanıcıların isimlerini ve e-postalarını
listeler. (E-posta verisi olmasa da listeler)
SELECT DISTINCT
Person, Name, Email
FROM
{Person} rdf:type {um:User};
foaf:firstName {Name};
[foaf:mbox {Email}]
USING NAMESPACE
foaf = <http://xmlns.com/foaf/0.1/>,
um = <http://example.org/usermodel/>
28/12/2010 Bilgi Erişim Sistemleri '10 24
25. SeRQL - CONSTRUCT
• CONSTRUCT sorguları, RDF ifade seti döndürür
• Sonuç olarak asıl graph‟tan bir alt RDF Graph
oluşturur (subgraph)
• Ya da dönüştürülmüş graph oluşturur (yeni bir
graph)
28/12/2010 Bilgi Erişim Sistemleri '10 25
26. SeRQL
• Adı ve yapım yılı olan bütün filmleri bir graph olarak
döndürür
Böylece asıl graph‟tan bir subGraph üretmiş olur
CONSTRUCT *
FROM {M} rdf:type {movie:Movie};
movie:year {Y};
movie:title {T}
USING NAMESPACE
movie = <http://example.org/movies/>
28/12/2010 Bilgi Erişim Sistemleri '10 26
27. SeRQL
• Graph dönüştürme (Graph Transformations) ile yeni
bir graph yaratır
• Aktörler ve rol aldıkları filmler ilişkilendirilerek yeni
bir graph yaratılır
CONSTRUCT
{A} foaf:firstName {FN};
foaf:familyName {LN};
my:playsInMovie {M} movie:title {T}
FROM
{M} movie:title {T};
movie:hasPart {} movie:playedBy {A} foaf:firstName {FN};
foaf:familyName {LN}
USING NAMESPACE
movie = <http://example.org/ontology/movie/>,
foaf = <http://xmlns.com/foaf/0.1/>,
my = <http://example.org/my/own/namespace/>
28/12/2010 Bilgi Erişim Sistemleri '10 27
28. SeRQL
• İç içe sorgu yapmaya olanak verir
• SeRQL iç içe sorgulama yapmak için 3 adet sorgu
işlecine sahiptir:
– IN
– ANY, ALL
– EXISTS
28/12/2010 Bilgi Erişim Sistemleri '10 28
29. SeRQL
• EXIST: reytingi olmayanları getirir
SELECT DISTINCT movie, mtitle
FROM
{movie} rdf:type {movie:Movie};
movie:title {mtitle}
WHERE NOT EXISTS (SELECT rating
FROM {rating} rdf:type {um:MovieRating};
um:onMovie {movie})
USING NAMESPACE
movie = <http://example.org/movies/>,
um = <http://example.org/usermodel/>
28/12/2010 Bilgi Erişim Sistemleri '10 29
30. SeRQL
• ALL: Her aktörün sahip olduğu en yüksek reyting
oranını getirir
SELECT DISTINCT user, rating, fname, lname
FROM
{user} rdf:type {um:User};
um:rating {} rdf:value {rating};
um:onActor {} foaf:firstName {fname};
foaf:familyName {lname}
WHERE rating >= ALL
(SELECT otherRating
FROM {user} um:rating {} rdf:type {um:ActorRating};
rdf:value {otherRating})
USING NAMESPACE
foaf = <http://xmlns.com/foaf/0.1/>,
um = <http://example.org/usermodel/>
28/12/2010 Bilgi Erişim Sistemleri '10 30
31. SeRQL
• IN: Gone With The Wind ile en az bir ortak türe sahip
olan bütün filmleri getirir
SELECT DISTINCT movie, mtitle
FROM
{movie} rdf:type {movie:Movie};
movie:title {mtitle};
movie:genre {genre}
WHERE genre IN
(SELECT otherGenre
FROM {} rdf:type {movie:Movie};
movie:title {gwtw};
movie:genre {otherGenre}
WHERE label(gwtw) LIKE "gone with the wind" IGNORE CASE)
USING NAMESPACE
movie = <http://example.org/movies/>,
um = <http://example.org/usermodel/>
28/12/2010 Bilgi Erişim Sistemleri '10 31
32. Sesame API nasıl kullanılır;
Örnekler ve uygulamalar...
28/12/2010 Bilgi Erişim Sistemleri '10 32