第1章 Elasticsearch簡介
Elasticsearch是個開源分佈式搜索引擎,它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
以下簡稱Elasticsearch爲ES。
高可用實現:
ES自帶了類似zookeeper的master選舉功能,ES集羣中配置3個或奇數(大於3)個master節點(具有master權限),當master出現故障或宕掉,ES會選舉其它有master權限的ES節點提升爲master節點。
負載均衡:
設置兩到三個client節點,保證client節點高可用。Client節點主要用來轉發請求,做到負載均衡的作用,同時做查詢的二次匯聚,減小data節點的性能消耗。
第2章 安裝ES-5.1.1
第2章 安裝ES-5.1.1
官網下載5.1.1:https://www.elastic.co/downloads
2.1 ES-5.1.1集羣規劃
Type |
Hostname |
Ip |
Number |
es-master |
es-masterN |
|
3 |
es-data |
es-dataM-N |
|
12 |
es-client |
Es-clientN |
|
2 |
kibana |
kibana |
|
1 |
es-data節點安裝在256G 內存服務器上,即每臺服務器配置6個實例,每個分配內存21G。命名:es-data1-1 ~ es-data1-6 --- es-data9-1 ~ es-data12-6
2.2安裝ES-5.1.1
2.2.1 準備環境
設置hostname、關閉防火牆等不在此敘述。
注意:爲快速安裝,先配置一個es-master實例,並測試正常啓動。
1. 確認jdk版本
Elasticsearch-5.1.1依賴於jdk-1.8,請確保需要安裝的機器jdk版本不低於1.8.0_73
查看:java -version
2. 新建es用戶
ES啓動必須使用普通用戶,約定使用es用戶
3. 新建路徑
新建es數據存放路徑以及日誌存放路徑,並更改用戶權限爲es
es-master機器:
# mkdir -p /hadoop/log/elastic5.1.1
# mkdir -p /data/data1/elastic
# chown -R es:es /hadoop/log/elastic5.1.1
# chown -R es:es /data/data1/elastic
es-data機器:
# mkdir -p /hadoop/log/elastic5.1.1/N
# mkdir -p /data/dataM/elastic
# chown -R es:es /hadoop/log/elastic5.1.1/N
# chown -R es:es /data/dataM/elastic
注:上述命令中N表示數字1到6,M表示數字1到12
4. 修改系統參數
l /etc/security/limits.conf中配置(保證不低於以下值)
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
es soft memlock unlimited
es hard memlock unlimited
l /etc/security/limits.d/20-nproc.conf 中配置 * soft nproc 2048
l /etc/sysctl.conf中配置Vm.max_map_count=655360。
執行 sysctl -p
5. 安裝ES
在/hadoop下解壓ES的tar包重命名爲elastic5.1.1,更改用戶權限爲es,並保證之後的ES_HOME目錄下所有文件用戶權限皆爲es
2.2.2 插件安裝
1. 安裝xpack
官網上下載zip包: x-pa ck-5.1.1.zip,到每個節點$ES_HOME,執行命令:
$ cd $ES_HOME
$ ./bin/elasticsearch-plugin install file:///data/x-pack-5.1.1.zip
到$KIBANA_HOME(爲kibana的主目錄,下同),執行命令
bin/kibana-plugin install file:///opt/soft/x-pack-5.1.1.zip
2. 安裝elasticsearch-sql
下載地址:https://github.com/NLPchina/elasticsearch-sql/releases/elasticsearch-sql-5.1.1.0.zip
$ cd $ES_HOME
$ ./bin/elasticsearch-plugin install file:///data/elasticsearch-sql-5.1.1.0.zip
2.2.3 修改配置
修改ES實例的jvm,在ES_HOME/config目錄下,修改jvm.options
-Xms21g
-Xmx21g
主要修改配置文件config/elasticsearch.yml,嚴格按照原來的格式修改,否則不識別:
1. es-master節點的配置如下: (.yml的文件冒號後面必須加空格)
cluster.name: opes
node.name:es-masterZ #實例名,Z代表數字1,2,3
network.host:10.33.208.50 # ip/hostname
node.master:true #設置充當master節點,默認爲true
node.data:false #設置不充當data節點,默認爲true
http.port:9200 #配置http端口,多個實例時該值遞增配置:9201…
transport.tcp.port
:
9300#配置tcp連接端口,多個實例遞增配置
path.data:/data/data1/elastic
path.logs:/hadoop/log/elastic5.1.1
script.inline: true
script.stored: true
bootstrap.memory_lock:true #禁用swapping
discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]
discovery.zen.minimim_master_nodes: 2
xpack.security.enabled: false #不啓用x-pack安全機制
2. es-data節點配置
複製es-master的配置,修改藍色標記的部分即可
node.name:es-dataM-N #此處的M-N表示第M個數據節點的第N個實例
network.host:10.33.208.35
node.master:false
node.data:true
path.data:/data/dataA/elastic, /data/dataB/elastic #數字A=2*N-1 B=2*N
path.logs:/hadoop/log/elastic5.1.1/N
http.port:9200 #配置http端口,多個實例時該值遞增配置:9201、9202…
transport.tcp.port
:
9300#配置tcp連接端口,多個實例遞增配置
node.max_local_storage_nodes:6 #新增,設置單機實例數
script.inline: true
script.stored: true
bootstrap.memory_lock:true #禁用swapping
discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]
discovery.zen.minimim_master_nodes: 2
xpack.security.enabled: false #不啓用x-pack安全機制
3. es-client 節點配置
複製es-master的配置,修改藍色標記的部分即可
node.name:es-clientN #此處的N表示第N個client節點
network.host:10.33.208.107
node.master: false
node.data: false
path.data:/data/dataA/elastic, /data/dataB/elastic #數字A=2*N-1 B=2*N
path.logs:/hadoop/log/elastic5.1.1/N
http.port:9200 #配置http端口,多個實例時該值遞增配置:9201、9202…
transport.tcp.port
:
9300#配置tcp連接端口,多個實例遞增配置
script.inline: true
script.stored: true
bootstrap.memory_lock:true #禁用swapping
discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]
discovery.zen.minimim_master_nodes: 2
xpack.security.enabled: false #不啓用x-pack安全機制
2.2.4 啓動節點
以es用戶啓動es-master,第一次在前臺啓動,無錯則訪問http://es-master1:9200
# su es
$ cd ES_HOME
$ bin/elasticsearch
後臺啓動:bin/elasticsearch-d
查看es進程:jps
停止es進程:kill $pid
2.2.5集羣配置
將需要部署es的所有機器準備好環境,即2.2.1的步驟1-4。
配置好第一個es-master實例,併成功啓動。
分發安裝好的es-master實例的Elasticsearch安裝包到ES集羣的所有master節點,修改配置文件,成功啓動。
配置一個es-data實例啓動,安裝kibana監控到集羣節點正常(觀測到啓動的所有master實例以及es-data實例)後,分發安裝包到所有節點配置es-data實例。
注意:對於單機多實例的配置,暫定/hadoop目錄下拷貝ES安裝包多份,命名規則爲 elastic5.1.1-N,對應其配置中的node.name的命名es-dataM-N後綴,以及日誌目錄/hadoop/log/elastic5.1.1/N。
2.2.6 啓動集羣
啓動集羣需注意先啓動至少兩個master節點,再啓動data節點。
2.2.7 更換license
註冊免費的licence 有效期一年(x-monitor):https://register.elastic.co/
導入license的json文件
注:導入後security、report、alert不能再用,謹慎使用
curl -XPUT'http://<host>:<port>/_license' -d @license.json
命令失敗執行下一條:curl -XPUT 'http://<host>:<port>/_xpack/license?acknowledge=true' -d @license.json
查看license信息
curl -XGET'http://<host>:<port>/_license'
2.2.8
第3章 安裝Kibana-5.1.1
解壓到/hadoop目錄下重命名爲kibana5.1.1,修改配置文件config/kibana.yml
Server.host 配置機器ip/hostname
Server.name 此kibana服務的名稱
elasticsearch.url es master節點url
啓動kibana bin/kibana
後臺啓動:nohupbin/kibana &
停止kibana:ss -lntp | grep 5601 kill $pid
安裝xpack
官網上下載zip包: x-pack-5.1.1.zip,到$KIBANA_HOME(kibana的安裝目錄)
# cd KIBANA_HOME
# bin/kibana-plugin install file:///opt/soft/x-pack-5.1.1.zip
不啓用x-pack安全機制
分別在kibana.yml 和elasticsearch.yml中加入下行
xpack.security.enabled: false
安裝xpack後重啓kibana