ElasticSearch 6 安裝及相關坑解析
首先 下載
https://www.elastic.co/downloads/elasticsearch
然後
解壓到 使用者目錄 比如:~/module
然後 配置環境變數 比如:export ES_HOME=/home/zhy/module/elasticsearch-6.4.1
export PATH=$PATH:${ES_HOME}/bin
vim 安裝目錄下的config/elasticsearch.yml
cluster.name: my-es6
node.name: node-1
node.master: true
path.data: /home/zhy/module/elasticsearch-6.4.1/data
path.logs: /home/zhy/module/elasticsearch-6.4.1/logs
network.host: 0.0.0.0
http.port: 9200
#
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["zhy.cauchy8389.com:9300"]
discovery.zen.minimum_master_nodes: 1
# ---------------------------------- Gateway -----------------------------------
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
解釋說明:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false 一看就知道是關於內用訪問的方面的配置
cluster.name 叢集名字,同一個叢集中使用相同名字,單機就隨意
node.name: node-01 節點名字
node.master: 是否為叢集的master機器
node.data: true 是否作為資料節點
network.host: 192.168.0.153 這個不用自然是配置ip地址的
http.port: 9200 埠號,不配置的話預設9200
discovery.zen.ping.unicast.hosts: [“192.168.0.153”,”192.168.0.154”,”192.168.0.155”] 這個就是配置叢集的時候要用的到了,[]中填上叢集中其他叢集的ip的地址,如果是master的話請把所有salve的機器地址填上
discovery.zen.minimum_master_nodes: 2 關於這個值配置多少合適的話大家去搜一下,自己權衡一下叢集,這裡我用了3臺機器模擬叢集,所以填上2。
http.cors.enabled: true 這個引數的設定和下面一個配置就關於ip的訪問策略了,如果你發現其他ip地址訪問不了就有可以這引數沒有配置
http.cors.allow-origin: “*”
sudo vim /etc/security/limits.conf
* - nofile 65536
* soft memlock unlimited
* hard memlock unlimited
* soft nproc 4096
* hard nproc 4096
把vi /etc/security/limits.d/90-nproc.conf 裡面nproc一行注掉
#* soft nproc 1024
root soft nproc unlimited
修改 /etc/sysctl.conf
vm.max_map_count=655360
fs.file-max=655360
然後sysctl -p使系統配置生效
以上步驟後最好重啟下 reboot
這時候 elasticsearch -d 就能啟動成服務了,然後jps看下java程序中有elasticsearch沒有。
附:head外掛的安裝
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip
cd elasticsearch-head-master
安裝node :網上說的亂七八糟的都不需要,只要按照如下步驟:
先下載node 解壓到/home/zhy/module/elasticsearch-6.4.1/nodejs
然後:
cd elasticsearch-head-master
sudo ln -s /home/zhy/module/elasticsearch-6.4.1/nodejs/bin/node /usr/local/bin/
sudo ln -s /home/zhy/module/elasticsearch-6.4.1/nodejs/bin/npm /usr/local/bin/
npm install -g grunt-cli //執行後會生成node_modules資料夾
npm install
sudo ln -s /home/zhy/module/elasticsearch-6.4.1/nodejs/bin/grunt /usr/local/bin/
檢視 grunt -version 顯示版本號就正確了。
修改vim Gruntfile.js檔案:增加hostname屬性,設定為*
connect: {
server: {
options: {
port: 9100,
hostname: '*',
base: '.',
keepalive: true
}
}
}
修改 vim _site/app.js 檔案:修改head的連線地址:
this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://localhost:9200“;
修改成ElasticSearch的機器地址
this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://elastichost:9200“;
修改完成你就可以啟動head外掛了:在 elasticsearch-head-master下啟動服務
grunt server &
訪問地址:http://elastichost:9100
如果你在瀏覽器中訪問不了,請檢查防火牆是否關閉。