1、安装第一个ElasticSearch(主节点)java
一、建立es用户,启动es不能使用root用户node
useradd esgit
passwd es12github
root用户进入/home/es目录下npm
2、获取ElasticSearch安装包浏览器
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gzbash
三、解压、更名(方便集群时区别另外一个ES)服务器
tar xf elasticsearch-6.1.2.tar.gz微信
mv elasticsearch-6.1.2.tar.gz elasticsearch-node212架构
四、修改配置文件
vi elasticsearch-node2/config/elasticsearch.yml1
修改内容以下:
cluster.name: my-application 各节点此名称必须一致
node.name: node-2 节点名称,不能与其余节点相同
network.host: ***.***.***.*** 本身的服务器IP
http.port: **** 访问端口
transport.tcp.port: **** 集群各节点间的通信端口
discovery.zen.ping.unicast.hosts: ["主节点IP:通信端口","辅节点IP:通信端口"] 123456
文件最后追加如下内容,以便链接head显示健康值(注意每行代码前面不要有空格)
http.cors.enabled: true
http.cors.allow-origin: "*"12
五、启动
sh elasticsearch-node2/bin/elasticsearch1
[2018-01-24T15:36:41,990][INFO ][o.e.n.Node ] [KMyyO-3] started
[2018-01-24T15:36:41,997][INFO ][o.e.g.GatewayService ] [KMyyO-3] recovered [0] indices into cluster_state12
启动成功,浏览器中输入 IP:访问端口
网页显示如下内容,说明部署成功
{
"name" : "node-2",
"cluster_name" : "my-application",
"cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",
"version" : {
"number" : "6.1.2",
"build_hash" : "5b1fea5",
"build_date" : "2018-01-10T02:35:59.208Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}123456789101112131415
六、报错及其处理
【类型一】
Caused by: java.lang.RuntimeException: can not run elasticsearch as root1
该问题是由于运行es不能使用root用户,所以要切换es用户再次启动
chown -R es:es elasticsearch-node2/
su - es
sh elasticsearch-node2/bin/elasticsearch123
【类型二】
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]1
解决方法,换回root用户,修改配置文件
vi /etc/security/limits.conf
#在最后面追加下面内容
es hard nofile 65536
es soft nofile 655361234
【类型三】
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]1
解决方法,换回root用户,修改配置文件
vi /etc/sysctl.conf
#在最后面追加下面内容
vm.max_map_count=655360
#执行命令:
sysctl -p12345
2、安装第二个ElasticSearch(辅节点)
安装方法与第一个一致,注意修改配置文件
root用户进入/home/es目录下
一、解压、更名
tar xf elasticsearch-6.1.2.tar.gz
mv elasticsearch-6.1.2.tar.gz elasticsearch-node312
二、修改配置文件
vi elasticsearch-node3/config/elasticsearch.yml1
修改内容以下:
cluster.name: my-application 各节点此名称必须一致
node.name: node-3 节点名称,不能与其余节点相同
network.host: ***.***.***.*** 本身的服务器IP
http.port: **** 访问端口(注意不要与第一个端口重复)
transport.tcp.port: **** 集群各节点间的通信端口(注意不要与第一个端口重复)
discovery.zen.ping.unicast.hosts: ["主节点IP:通信端口","辅节点IP:通信端口"]123456
文件最后一样追加下面代码
http.cors.enabled: true
http.cors.allow-origin: "*"12
3.启动
sh elasticsearch-node3/bin/elasticsearch1
浏览器,浏览器中输入 IP:访问端口
网页显示如下内容,说明第二个部署成功
{
"name" : "node-3",
"cluster_name" : "my-application",
"cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",
"version" : {
"number" : "6.1.2",
"build_hash" : "5b1fea5",
"build_date" : "2018-01-10T02:35:59.208Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}123456789101112131415
3、安装Elasticsearch-head插件
一、安装head插件以前须要安装node.js
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install -y nodejs12
安装完成后执行命令查看node与npm版本
[root@host]# node -v
v8.12.0
[root@host]# npm -v
6.4.1
12345
二、从git获取head插件
wget https://github.com/mobz/elasticsearch-head/archive/master.zip1
三、解压安装包(能够更名,方便操做)
unzip master.zip
mv elasticsearch-head-master/ head12
四、修改配置文件
vi head/Gruntfile.js1
更改head端口号
connect: {
server: {
options: {
port: ****, 改成head访问端口
base: '.',
keepalive: true
}
}
}
12345678910
vi head/_site/app.js 1
更改head连接地址
init: function(parent) {
this._super();
this.prefs = services.Preferences.instance();
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://主节点IP:访问端口";
12345
五、启动head
nohup npm run start > ../head.log 2>&1 &1
六、浏览器登陆head
URL输入服务器IP:head访问端口
连接地址输如主节点的访问地址
七、安装head常见错误
【类型一】启动成功,可是网页不能访问
解决方法
关闭服务器防火墙
service iptables stop
【类型二】集群健康值未链接
在elasticsearch.yml里追加下列代码(注意代码前面不要有空格)
http.cors.enabled: truehttp.cors.allow-origin: "*"
问:为何es节点用node二、node3?
答:由于以前用node1搭建了一套未集群的ES,因此后面集群就用2和3了。
---------------------------------------------
推荐阅读: