1. 程式人生 > >Elasticsearch安裝部署

Elasticsearch安裝部署

cast 執行命令 3.1 ast port 2-2 play 外部 mkdir

版本信息

Vmware虛擬機

Centos 6.7

JDK à 1.8或以上版本

ES à 5.5.2

nodeJSà6.0以上(啟動elasticsearch-head插件用)

1.2 安裝流程

1.2.1 下載ES版本, 解壓, 即可使用, ./bin/elasticsearch -d便可在後臺開始elasticsearch

1) 將elasticsearch安裝包拷貝到相應的目錄

[rodge@centos6 elastic]$ ls

elasticsearch-5.5.2.tar.gz

[rodge@centos6 elastic]$ pwd

/home/rodge/local/elastic

[rodge@centos6 elastic]$

2) 解壓

[rodge@centos6 elastic]$ tar -xvf elasticsearch-5.5.2.tar.gz

技術分享

3)啟動elasticsearch

./elasticsearch-5.5.2/bin/elasticsearch

如果需要在後臺啟動, 則在該命令後加上”-d”, 即” ./elasticsearch-5.5.2/bin/elasticsearch -d”

技術分享

表示啟動成功

4) 通過鏈接方位elasticsearch, 默認http端口為9200

curl -XGET http://localhost:9200

技術分享

5)通過外部瀏覽器訪問方法

首先, 在elasticsearch安裝文件中, 修改config/elasticsearch.yml文件訪問地址network.host

vi config/elasticsearch.yml

在文件”Network”中添加” network.host: 192.168.253.128”(192.168.253.128為本機ip), 或者將地址配置為”0.0.0.0”(0.0.0.0為通配ip)

技術分享

2) 再次啟動如報錯, 如錯誤信息為如下信息,

技術分享

則需要還在elasticsearch.yml文件中新增如下內容(具體說明詳見之後的—“常見啟動錯誤”)

在”Memory”中添加:

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

技術分享

此外, 還需要開啟防火墻9200端口(9200是elasticsearch默認http端口)

1.2.2 開放防火墻iptables端口

/sbin/iptables -I INPUT -p tcp --dport 9200 -j ACCEPT

/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart

查看CentOS防火墻信息:/etc/init.d/iptables status

1.2.3 安裝head

1) 首先, 將head插件拷貝到指定的目錄, 本文將head插件壓縮包拷貝至elasticsearch文件夾下

技術分享

2)解壓head插件

unzip elasticsearch-head-master.zip

技術分享

3)安裝nodeJS, 版本要求在6.0以上

首先, 將nodeJS壓縮包拷貝至相應的路徑

技術分享

然後, 解壓壓縮包

tar -xvf node-v6.9.1-linux-x64.tar.gz

修改配置文件

vi /etc/profile

# node (註釋作用)

export NODE_HOME=/home/rodge/local/nodeJS/node-v6.9.1-linux-x64

export PATH=$PATH:$NODE_HOME/bin

export NODE_PATH=$NODE_HOME/lib/node_modules

重新編譯配置文件

source /etc/profile

查看nodeJS安裝版本

node -v

技術分享

4) 在elasticsearch-head-master安裝目錄下運行:

npm install

技術分享

5) 啟動elasticsearch-head插件

npm run start

技術分享

啟動成功, 註意要打開防火墻9100端口, elasticsearch-head默認端口為9100

技術分享

1.2.4 es與head插件關聯

在elasticsearch安裝目錄中更改如下文件

vi conf/elasticsearch.yml

在最後加入以下內容

http.cors.enabled: true

http.cors.allow-origin: "*"

重新啟動elasticsearch和elasticsearch-head插件, 可以通過網頁查看elasticsearch集群情況

技術分享

1.2.5 elasticsearch集群配置

主節點配置

vi config/elasticsearch.yml

在文件最後添加如下內容

#集群名稱(每個集群的該名稱一致)

cluster.name: wali

#節點名稱(每個節點的名稱不同)

node.name: master

#主機設置

node.master: true

#註解ip, 端口默認(9200)

network.host: 192.169.253.129 (本機ip)

從屬節點配置

創建從屬節點elasticsearch的文件夾

mkdir es_slave

拷貝解壓elasticsearch兩份

cp elasticsearch-5.5.2.tar.gz es_slave/

cd es_slave/

tar -xvf elasticsearch-5.5.2.tar.gz

cp -r elasticsearch-5.5.2 es_slave1

cp -r elasticsearch-5.5.2 es_slave2

從節點slave1的elasticsearch.yml配置修改

從節點集群名稱和節點名稱指定, 集群名稱必須與主節點一致

cluster.name: wali

node.name: slave1

#從節點ip地址和端口

network.host: 192.169.253.129

http.port: 8200

#從節點與主節點的連接

discovery.zen.ping.unicast.hosts: ["192.168.253.129"]

從節點slave2的配置與從節點1的配置類似

1.3 常見啟動錯誤

1> 不能以root賬戶啟動elasticsearch, 否則有可能報錯

2> max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max number of threads [1024] for user [hadoop] is too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方案:

編輯limits.conf 文件

vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536

vim /etc/security/limits.d/90-nproc.conf

找到如下內容:

soft nproc 1024

修改為

soft nproc 2048

vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

並執行命令:

sysctl -p

3> ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

原因:
這是在因為Centos6不支持SecComp,而ES5.2.0默認bootstrap.system_call_filter為true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啟動。


解決:
在elasticsearch.yml中配置bootstrap.system_call_filter為false,註意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

Elasticsearch安裝部署