首先ElasticSearch是基於Lucene這個非常成熟的索引方案,另加上一些分佈式的實現:集群,sharding,replication等。
ElasticSearch的優勢
1. 橫向可擴展性:只需要增加一臺服務器,做一點兒配置,啟動一下ES進程就可以併入集群;
2. 分片機制提供更好的分佈性:同一個索引分成多個分片(sharding),這點類似於HDFS的塊機制;分而治之的方式來提升處理效率,相信大家都不會陌生;
3. 高可用:提供複製(replica)機制,一個分片可以設置多個複製,使得某臺服務器宕機的情況下,集群仍舊可以照常運行,並會把由於服務器宕機丟失的複製恢復到其它可用節點上;這點也類似於HDFS的複製機制(HDFS中默認是3份複製);
ElasticSearch的配置安裝
可以使用源碼,或者yum
一、yum安裝
1. 下載並安裝GPG key
2. [root@linux-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
3. 2.添加yum倉庫
4. [root@linux-node1 ~]# cat /etc/yum.repos.d/elasticsearch.repo
5. [elasticsearch-2.x]
6. name=Elasticsearch repository for 2.x packages
7. baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
8. gpgcheck=1
9. gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
10. enabled=1
11. 3.安裝elasticsearch
12. [root@hadoop-node1 ~]# yum install -y elasticsearch
二、源碼安裝
1. [root@CentOS6 home]# wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.tar.gz #下載elasticsearch
2. [root@CentOS6 home]# tar xf elasticsearch-1.7.2.tar.gz -C /usr/local/ #解壓elasticsearch
3. [root@CentOS6 home]# ln -s /usr/local/elasticsearch-1.7.2 /usr/local/elasticsearch #創建軟連接
三、配置elasticsearch
1. 修改配置文件
2. [root@abcdocker ~]# vim /etc/elasticsearch/elasticsearch.yml
3. cluster.name: myes #ES集群名稱
4. node.name: abcdocker-node-1 #節點名稱
5. path.data: /data/es-date #數據存儲的目錄(多個目錄使用逗號分隔)
6. path.logs: /var/log/elasticsearch #日誌格式
7. bootstrap.memory_lock: true #鎖住es內存,保證內存不分配至交換分區
8. network.host: 192.168.56.11 #設置本機IP地址
9. http.port: 9200 #端口默認9200
四、設置數據目錄權限
1. [root@abcdocker ~]# chown -R elasticsearch:elasticsearch /data/es-date/
2. #這個是我們存放數據的目錄,手動創建
es默認發現有組播和單播,組播就是都加入到一個組裡面,單播就是一對一通信
提示: yum安裝時會少了許多配置,如果編譯安裝就會產生很多。
五、啟動
1、啟動es
2、[root@abcdocker ~]# systemctl start elasticsearc h.service
3、[root@abcdocker ~]# netstat -lntup
4、Active Internet connections (only servers)
5、Proto Recv-Q Send-Q Local Address Foreig n Address State PID/Program name
6、tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 532/ssh d
7、tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 724/maste r
8、tcp6 0 0 192.168.56.11:9200 :::* LISTEN 2125/jav a
9、tcp6 0 0 192.168.56.11:9300 :::* LISTEN 2125/jav a
10、tcp6 0 0 :::22 :::* LSTEN 532/sshd
11、tcp6 0 0 ::1:25 :::*LISTEN 724/master
12、端口默認:9200
本次環境我們使用2臺服務器,這2臺服務器的服務搭建可以跟上面的步驟相同即可
Elasticsearch提供了非常多的插件,還可以使用curl進行通訊
我們可以使用curl來查看es裡面有什麼內容
1. [root@abcdocker ~]# curl -i -XGET 'http://192.168.56.11:9200/_count?'
2. HTTP/1.1 200 OK
3. Content-Type: application/json; charset=UTF-8
4. Content-Length: 59
5. {"count":0,"_shards":{"total":0,"successful":0,"failed":0}}[
6. 解釋:
7. 返回頭部200,執行成功0個,返回0個
Elasticsearch有很多插件,但是有的插件好用但是收費。
閱讀更多 Java開發交流 的文章
關鍵字: HDFS ElasticSearch Linux