Elasticsearch 集群安裝部署

Elasticsearch cluster install

Elasticsearch是一個(gè)基于Lucene的實(shí)時(shí)的分布式搜索和分析引擎猛蔽。

設(shè)計(jì)用于云計(jì)算中黄刚,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定诫尽,可靠禀酱, 快速,安裝使用方便牧嫉〖粮基于RESTful接口。

step 1 download JDK and elasticsearch

jdk1.8.0_131 download

elasticsearch5.6.5 download

聲明:系統(tǒng)版本:主機(jī)windows10酣藻,虛擬機(jī)服務(wù)器centos6.9曹洽,elasticsearch-5.6.5,Vmware10.7
不能使用root用戶(hù)辽剧,需要新建一個(gè)用戶(hù)

step 2 install JDK

解壓配置環(huán)境變量即可使用

export JAVA_HOME=/opt/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

#自JDK1.7之后 CLASSPATH 可以不配置

step 3 system configuration

配置靜態(tài)IP

sudo cd /etc/sysconfig/network-scripts/ifcfg-ens33
sudo vi ifcfg-ens33  # 這個(gè)文件的名稱(chēng)有時(shí)可能不相同 ifcfg-eth0 | ifcfg-ens???

    修改如下參數(shù)
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.174.113
    NETMASK=255.255.255.0
    GATEWAY=192.168.174.2

sudo service network start/stop/restart

修改HOSTNAME

Centos6
    sudo vi /etc/sysconfig/network 
    HOSTNAME=YOURNEWNAME 
    sudo hostname YOURNEWNAME
Centos7
    sudo hostnamectl set-hostname YOURNEWNAME 
    sudo hostname YOURNEWNAME

主機(jī)名中不能使用下劃線(xiàn)(_)送淆。
主機(jī)名不能保護(hù)大寫(xiě)字符

配置本地域名

sudo vi /etc/hosts
ip    HOST1 HOST2 …
192.168.186.113    es1 hdfs1 hadoop1 spark1
192.168.186.114    es2 hdfs2 hadoop2 spark2
192.168.186.115    es3 hdfs3 hadoop3 spark3

關(guān)閉防火墻

Centos6
    sudo service iptables start/stop/status
    sudo chkconfig iptables off/--list  –永久關(guān)閉防火墻
Centos7
    sudo systemctl stop/start/status firewalld.service
    sudo systemctl disable firewalld.service –永久關(guān)閉防火墻

關(guān)閉SELinux

查看Selinux的狀態(tài)
/usr/sbin/sestatus –v
SELinux status:                 enabled
如果SELinux status參數(shù)為enabled即為開(kāi)啟狀態(tài),需要進(jìn)行下面的關(guān)閉操作抖仅。
關(guān)閉SElinux
sudo vim /etc/selinux/config
在文檔中找到SELINUX坊夫,將SELINUX的值設(shè)置為disabled,即:
SELINUX=disabled
在內(nèi)存中關(guān)閉SElinux
setenforce 0
檢查內(nèi)存中狀態(tài)
getenforce
如果日志顯示結(jié)果為disabled或者permissive撤卢,說(shuō)明操作已經(jīng)成功环凿。

創(chuàng)建用戶(hù)

[root@es1 ~]# adduser es
為這個(gè)用戶(hù)初始化密碼,linux會(huì)判斷密碼復(fù)雜度放吩,不過(guò)可以強(qiáng)行忽略:

[root@es1 ~]# passwd es
更改用戶(hù) es 的密碼 智听。
新的 密碼:
無(wú)效的密碼: 密碼未通過(guò)字典檢查 - 過(guò)于簡(jiǎn)單化/系統(tǒng)化
重新輸入新的 密碼:
passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。

為用戶(hù)賦于sudo權(quán)限

在root用戶(hù)
vi /etc/sudoers
添加 : USERNAME    ALL=(ALL)   ALL
以下配置可以給sudo權(quán)限免密
添加 : USERNAME    ALL=(ALL)   NOPASSWD:ALL

step 4 install elasticsearch

解壓縮

$ mkdir -p /opt/elasticsearch
$ tar –zxvf elasticsearch-5.6.5.tar.gz –C /opt/elasticsearch

修改elasticsearch.yml配置文件

$ vim /opt/elasticsearch/elasticsearch5.6.5/config/elasticsearch.yml
    cluster.name: hy2u-elasticsearch   (集群名稱(chēng)渡紫,同一集群要一樣)
    node.name: hy2u-node-1  (節(jié)點(diǎn)名稱(chēng)到推,同一集群要不一樣)
    http.port: 9200  #連接端口
    network.host: 192.168.174.113   #默認(rèn)網(wǎng)絡(luò)連接地址,寫(xiě)當(dāng)前主機(jī)的靜態(tài)IP惕澎,這里不能寫(xiě)127.0.0.1
    path.data: /opt/elasticsearch-5.6.5/data   #數(shù)據(jù)文件存儲(chǔ)路徑
    path.logs: /opt/elasticsearch-5.6.5/logs    #log文件存儲(chǔ)路徑
    discovery.zen.ping.unicast.hosts: ["192.168.174.113","192.168.174.114", "192.168.184.115"]#集群中master節(jié)點(diǎn)的初始列表莉测,可以通過(guò)這些節(jié)點(diǎn)來(lái)自動(dòng)發(fā)現(xiàn)新加入集群的節(jié)點(diǎn)。
    bootstrap.system_call_filter: false    # 因centos6不支持SecComp而默認(rèn)bootstrap.system_call_filter為true進(jìn)行檢測(cè)唧喉,所以捣卤,要設(shè)置為 false。注:SecComp為secure computing mode簡(jiǎn)寫(xiě)
    http.cors.enabled: true  #是否支持跨域八孝,默認(rèn)為false
    http.cors.allow-origin: "*"   #當(dāng)設(shè)置允許跨域董朝,默認(rèn)為*,表示支持所有域名
    discovery.zen.minimum_master_nodes: 2     #這個(gè)參數(shù)來(lái)保證集群中的節(jié)點(diǎn)可以知道其它N個(gè)有master資格的節(jié)點(diǎn)。默認(rèn)為1干跛,對(duì)于大的集群來(lái)說(shuō)子姜,可以設(shè)置大一點(diǎn)的值(2-4)

elasticsearch備份位置,路徑要手動(dòng)創(chuàng)建

path.repo: ["/opt/elasticsearch/elasticseaarch-5.6.3/data/backups"]

如果安裝elasticsearch-head插件楼入,需要添加以下選項(xiàng)

http.cors.enabled: true
http.cors.allow-origin: "*"

如果安裝x-pack插件哥捕,我們?nèi)∠腷asic認(rèn)證牧抽,需要添加以下選項(xiàng)

xpack.security.enabled: false

修改jvm內(nèi)存[這個(gè)配置項(xiàng)很重要,在現(xiàn)實(shí)生產(chǎn)中要配的大一些扭弧,但是最大不能超過(guò)32g]

vim config/jvm.options  
-Xms2g  ---> -Xms512m  
-Xmx2g  ---> -Xms512m   

分發(fā)

將配置好的Elasticsearch安裝介質(zhì)分發(fā)到其他的服務(wù)器上
只需要將elasticsearch.yml配置文件中的相關(guān)參數(shù)修改一下即可

cluster.name: hy2u-elasticsearch   (集群名稱(chēng)阎姥,同一集群要一樣)
node.name: hy2u-node-1  (節(jié)點(diǎn)名稱(chēng),同一集群要不一樣)
http.port: 9200  #連接端口 (集群連接端口鸽捻,同一集群要一樣)
network.host: 192.168.174.113   #默認(rèn)網(wǎng)絡(luò)連接地址呼巴,寫(xiě)當(dāng)前主機(jī)的靜態(tài)IP,這里不能寫(xiě)127.0.0.1

啟動(dòng)與關(guān)閉

每一臺(tái)設(shè)備都要單獨(dú)啟動(dòng)

前臺(tái)啟動(dòng) 
$ ./elasticsearch 

后臺(tái)啟動(dòng) -d為守護(hù)進(jìn)程運(yùn)行
$ ./elasticsearch –d
$ ./elasticsearch & # 使用這種方式他會(huì)打印日志在前臺(tái)

查看elasticsearch 進(jìn)程

$ jps
2369 Elasticsearch

使用kill 命令殺死進(jìn)程

kill -9 2369(pid)

瀏覽器訪問(wèn)

訪問(wèn)單節(jié)點(diǎn):http://192.168.174.113:9200/

step 4 install plugins

install elasticsearch-head

由于5.x版本開(kāi)始御蒲,_site被禁用了衣赶,所以head等有頁(yè)面展示的插件無(wú)法像2.x一樣以嵌入形式運(yùn)行,必須以一個(gè)單獨(dú)的服務(wù)來(lái)運(yùn)行厚满。

去GitHub下載elasticsearch-head源碼 下載node并安裝: head插件本質(zhì)上是一個(gè)NodeJS工程府瞄,需要使用npm來(lái)下載依賴(lài)包并打包(npm可以理解為maven),下載node的地址:https://nodejs.org/en/download/碘箍。 解壓安裝包

xz -d node*.tar.xz
tar -xvf node*.tar

配置環(huán)境變量

sudo vi /etc/profile
export NODE_HOME=/opt/node-*-linux-x64
export PATH=$PATH:$NODE_HOME/bin

刷新環(huán)境變量

source /etc/profile

驗(yàn)證node是否安裝成功

echo $NODE_HOME
node -v
npm -v

編譯head 修改head插件的配置文件

$HEAD_HOME/Gruntfile.js
connect: {
    server: {
       options: {
          port: 9100,
          hostname: '*', 
          base: '.',
          keepalive: true
       }
    }
}

$HEAD_HOME/_site/app.js
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.186.30:9200";

添加ES配置項(xiàng)

vi $ES_HOME/config/elasticsearch.yml

添加以下配置
    http.cors.enabled: true
    http.cors.allow-origin: "*"

運(yùn)行head插件

cd $HEAD_HOME
npm install
cd head目錄/node_modules/grunt/bin/
./grunt server &

訪問(wèn)head插件

http:/192.168.174.113:9100
默認(rèn)端口是9100遵馆,可以通過(guò)編輯head/Gruntfile.js進(jìn)行修改。
關(guān)閉 netstat -apn|grep 9100  

install kibana

解壓kibana到相應(yīng)的目錄

tar -zxvf /opt/elasticsearch/kibana-5.6.3-linux-x86_64.tar.gz -C /opt/elasticsearch

修改配置文件kibana.yml

vi /opt/elasticsearch/kibana-5.6.3/config/kibana.yml    (修改以下參數(shù))
server.port: 5601
server.host: "192.168.174.113"
elasticsearch.url: "http://192.168.174.113:9200"

啟動(dòng)kibana

前臺(tái):./opt/elasticsearch/kibana-5.6.3/bin/kibana
后臺(tái):nohup /opt/elasticsearch/kibana-5.6.3/bin/kibana </dev/null &>/dev/null &

install x-pack

下載x-pack安裝包 安裝x-pack之前一定要先安裝kibana

在每一臺(tái)elasticsearch節(jié)點(diǎn)的$ES_HOME下執(zhí)行

在線(xiàn)版:bin/elasticsearch-plugin install x-pack
離線(xiàn)版:bin/elasticsearch-plugin install file:///home/admin/x-pack.zip    #file:后邊一定是三個(gè)/少一個(gè)都不行

在安裝kibana的服務(wù)器上的kibana的$KIBANA_HOME下執(zhí)行

在線(xiàn)版:bin/kibana-plugin install x-pack
離線(xiàn)版:bin/kibana-plugin install file:///home/admin/x-pack.zip

在每一臺(tái)elasticsearch節(jié)點(diǎn)的$ES_HOME/config/elasticsearch.yml文件中添加以下配置

xpack.security.enabled: false

卸載

$ES_HOME/bin/elasticsearch-plugin remove x-pack
$KIBANA_HOME/bin/kibana-plugin remove x-pack

install IK

install elasticsearch-sql

5.x版本sql插件的安裝和使用(目前支持最高的版本為5.1.2)
參考網(wǎng)址:https://github.com/NLPchina/elasticsearch-sql
1丰榴、es的sql插件分為兩部分货邓,一部分是需要放在es目錄/plugins下的,用來(lái)支持sql查詢(xún)四濒;另外一部分類(lèi)似于head插件换况,是一個(gè)NodeJS工程,提供頁(yè)面服務(wù)盗蟆。
2戈二、安裝sql插件及web ui
(1)在es集群中的每個(gè)節(jié)點(diǎn)上執(zhí)行如下操作,(在每個(gè)節(jié)點(diǎn)上安裝sql插件喳资?)

es ./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.1.2.0/elasticsearch-sql-5.1.2.0.zip

此命令會(huì)在es目錄/plugins下創(chuàng)建一個(gè)sql目錄觉吭,此時(shí)重啟節(jié)點(diǎn)以便加載sql插件。重啟并使得sql插件成功加載之后仆邓,便可以通過(guò)瀏覽器利用如:
http://localhost:9200/_sql?sql=select * from indexName limit 10
的方式進(jìn)行查詢(xún)鲜滩。同時(shí),sql的API也可以使用了宏赘。
(2)在任意一臺(tái)節(jié)點(diǎn)上安裝sql的web應(yīng)用
①下載es-sql-standalone,地址:https://github.com/NLPchina/elasticsearch-sql/releases/download/5.0.1/es-sql-site-standalone.zip
②安裝并啟動(dòng)web應(yīng)用

es unzip es-sql-site-standalone.zip

es cd es-sql-site-standalone/site-server

es npm install express --save

將es目錄/plugins/sql目錄下的_site目錄覆蓋es-sql-site-standalone目錄下的_site

es node node-server.js &

此時(shí)sql的web應(yīng)用已經(jīng)啟動(dòng)了黎侈,默認(rèn)端口是8080察署,可以通過(guò)編輯es目錄/plugins/sql/es-sql-site/site-server/site_configuration.json進(jìn)行修改。
3峻汉、訪問(wèn)web界面
最新版的sql界面訪問(wèn)時(shí)候有認(rèn)證問(wèn)題存在贴汪,2.x版直接使用的方式行不通脐往。所以在訪問(wèn)頁(yè)面時(shí)需要傳入一個(gè)參數(shù),如:
http://192.168.186.30:8080/?base_uri=192.168.186.30:9200
之所以要加這個(gè)參數(shù)是由于2.x升級(jí)到5.x的一個(gè)bug扳埂,2.x的訪問(wèn)方式是esIP:9200/_plugin/sql业簿。在頁(yè)面執(zhí)行sql查詢(xún)的時(shí)候,IP和端口引用地址欄的阳懂。而現(xiàn)在5.x版本的web頁(yè)面是一個(gè)獨(dú)立的應(yīng)用梅尤,端口不能綁定成9200,但是與es交互的端口依然是訪問(wèn)web頁(yè)面的端口岩调,這就導(dǎo)致無(wú)法與es集群正常通信巷燥。在這里加這個(gè)參數(shù)的目的就是告訴sql的web界面與es通信的IP和端口。

常見(jiàn)的安裝問(wèn)題

can not run elasticsearch as root

解決方法:創(chuàng)建其他非root賬戶(hù)号枕,修改文件夾 文件 所屬用戶(hù) 組

ERROR: bootstrap checks failed

解決方法:修改系統(tǒng)limits.conf文件
# vi /etc/security/limits.conf
添加如下內(nèi)容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
備注:* 代表Linux所有用戶(hù)名稱(chēng)(比如 hadoop)

啟動(dòng)后缰揪,只有本地可以訪問(wèn)

解決方法:在elasticsearch.yml文件中增加:network.bind_host: 0.0.0.0

ERROR:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(...) failed; error='Cannot allocate memory' (errno=12)

解決方法:修改jvm內(nèi)存
     
   vim config/jvm.options  
   -Xms2g  ---> -Xms512m  
   -Xmx2g  ---> -Xms512m   

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解決方法:設(shè)置最大打開(kāi)文件數(shù)
    修改最大文件數(shù)為65536
    # ulimit -n 65536
    查看是否修改成功
    # ulimit -a

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方法:修改sysctl.conf
    # vi /etc/sysctl.conf 
    添加下面配置:
    vm.max_map_count=655360
    并執(zhí)行命令:
    # sysctl -p

max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

解決方法:修改90-nproc.conf
# vi /etc/security/limits.d/90-nproc.conf 
修改如下內(nèi)容:
* soft nproc 1024
#修改為
* soft nproc 2048
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市葱淳,隨后出現(xiàn)的幾起案子钝腺,更是在濱河造成了極大的恐慌,老刑警劉巖赞厕,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艳狐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡坑傅,警方通過(guò)查閱死者的電腦和手機(jī)僵驰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)唁毒,“玉大人蒜茴,你說(shuō)我怎么就攤上這事〗鳎” “怎么了粉私?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)近零。 經(jīng)常有香客問(wèn)我诺核,道長(zhǎng),這世上最難降的妖魔是什么久信? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任窖杀,我火速辦了婚禮,結(jié)果婚禮上裙士,老公的妹妹穿的比我還像新娘入客。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布桌硫。 她就那樣靜靜地躺著夭咬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铆隘。 梳的紋絲不亂的頭發(fā)上卓舵,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音膀钠,去河邊找鬼掏湾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛托修,可吹牛的內(nèi)容都是我干的忘巧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼睦刃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼砚嘴!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起涩拙,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤际长,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后兴泥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體工育,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年搓彻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了如绸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旭贬,死狀恐怖怔接,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情稀轨,我是刑警寧澤扼脐,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站奋刽,受9級(jí)特大地震影響瓦侮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佣谐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一肚吏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狭魂,春花似錦罚攀、人聲如沸吁断。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至掷伙,卻和暖如春是己,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背任柜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工卒废, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宙地。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓摔认,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親宅粥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子参袱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 今年夏天,我在柬埔寨見(jiàn)到了最好的時(shí)光』嗝罚現(xiàn)在的我趴在書(shū)桌前抹蚀,想寫(xiě)一些AIESEC海外志愿者的用戶(hù)體驗(yàn)以及在柬埔寨需要...
    Dorothy丸子閱讀 308評(píng)論 0 0
  • 今天是你的生日,我的寶貝 清晨東方升起一抹朝霞 為你注入了生命的鮮活 朝霞在天上人間掠過(guò) 我們祝福你的生日企垦,我的寶...
    大小倆珍珠閱讀 267評(píng)論 2 0
  • 他小時(shí)候總會(huì)幻想關(guān)于自己的未來(lái)环壤,好像他是可以站在諾貝爾的獎(jiǎng)臺(tái)上發(fā)言,可以和科學(xué)家一起搞研究可以和明星一起同臺(tái)飆...
    會(huì)唱歌的小吉他閱讀 466評(píng)論 0 0