Elasticsearch node cluster yapısı kurulumu
ElasticSearch Java ile geliştirilmiş açık kaynak, lucene tabanlı, ölçeklenebilir bir tam metin(full text) arama motoru ve veri analiz aracıdır. Elasticsearch kullanan büyük şirketlere örnek olarak Mozilla, Foursquare ve GitHub örnek verilebilir. Big data analizinde oldukça başarılı olması ve dağıtık yapıda çalışabilmesi en büyük velinimetlerindendir.
Bu dersimizde dağıtık yapı yani cluster(küme) şeklinde 1 adet master(yönetici) 2 adette node (köle) şeklinde toplam 3 sunucudan oluşan yapı kuracağız.
Benim anlatımımda kullanacağım sistem aşağıdaki gibidir:
Master elasticsearch:
İşletim sistemi: Ubuntu 16.04
IP: 10.0.0.2
Node 1:
İşletim sistemi: Ubuntu 16.04
IP: 10.0.0.3
Node 2:
İşletim sistemi: Ubuntu 16.04
IP: 10.0.0.4
Özet:
İşlemleri kısaca anlatmak gerekirse ilk önce java kurulumu, sonra port açma, daha sonra elasticsearch kurulumu en son kibana kurulumu ve servislerin başlatılması şeklinde olacaktır.
Adım 1: Java kurulumu
Sırasıyla alttaki kodları 3 sunucumuzda da, yani Master, node 1 ve node 2 de çalıştırıyoruz ve java kurulumlarını gerçekleştiriyoruz.
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java8-installer
Adım 2: Port açma
Sırası ile altta ki kodları 3 sunucuda da çalıştırıyoruz:
iptables -A INPUT -p tcp –dport 9200 -j ACCEPT
iptables -A INPUT -p tcp –dport 9300 -j ACCEPT
Adım 3: Elasticsearch kurulumu
Sırası ile altta ki kodları 3 sunucuda da çalıştırıyoruz:
sudo wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.4.3/elasticsearch-2.4.3.deb –no-check-certificate
sudo dpkg -i elasticsearch-2.4.3.deb
Alttaki kodlar ile Elasticsearch servisinin başlangıçta çalışmasını ayarlıyoruz.
sudo systemctl enable elasticsearch.service
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
Adım 4: Elasticsearch konfigrasyonu
Bu adımda 3 sunucumuzda farklı ayarlar yapıyoruz. ilk önce master ayarlayalım.
Adım 4.1: Master konfigrasyonu:
sudo chmod -R 777 /etc/elasticsearch
sudo nano /etc/elasticsearch/elasticsearch.yml
yukarıda ki kodlar ile yazma izni vererek düzenleme moduna giriyoruz.
cluster.name: sabo
node.name: lmaster
node.master: true
node.data: true
discovery.zen.ping.multicast.enabled: true
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: [“10.0.0.1”, “10.0.0.2”, “10.0.0.3”]
tamamını üstteki kodlar ile değiştiriyoruz.
Adım 4.2: Node1 konfigrasyonu:
sudo chmod -R 777 /etc/elasticsearch
sudo nano /etc/elasticsearch/elasticsearch.yml
yukarıda ki kodlar ile yazma izni vererek düzenleme moduna giriyoruz.
cluster.name: sabo
node.name: node1
node.master: false
node.data: true
discovery.zen.ping.multicast.enabled: false
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: [“10.0.0.1”, “10.0.0.2”, “10.0.0.3”]
tamamını üstteki kodlar ile değiştiriyoruz.
Adım 4.3: Node 2 konfigrasyonu:
sudo chmod -R 777 /etc/elasticsearch
sudo nano /etc/elasticsearch/elasticsearch.yml
yukarıda ki kodlar ile yazma izni vererek düzenleme moduna giriyoruz.
cluster.name: sabo
node.name: node2
node.master: false
node.data: true
discovery.zen.ping.multicast.enabled: false
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: [“10.0.0.1”, “10.0.0.2”, “10.0.0.3”]
tamamını üstteki kodlar ile değiştiriyoruz.
Adım 5: Head Plugin kurulumu
Sırası ile altta ki kodları sadece Master sunucuda çalıştırıyoruz.
cd /usr/share/elasticsearch/bin
./plugin install mobz/elasticsearch-head
Adım 6: ElasticSearch başlatma
Tebrikler kurulum işlemini tamamladınız! şimdi de Elasticsearch’ü sırasıyla Master, Node1 ve Node 2 olarak başlatıyoruz:
sudo systemctl start elasticsearch
Kurulumumuzu bitirdik. Altta ki kodlar ile yeni bir index oluşturup veri ekliyoruz:
curl –XPUT ‘localhost:9200/customer?pretty’
curl -XPUT ‘localhost:9200/customer/external/1?pretty’ -d { “name”: “Sabahattin Devrez” }’
hiç bir sorun yaşamadıysak altta ki linkten Cluster’ımızı kontrol edebilirsiniz
http://10.0.0.2:9200/_plugin/head/