准备三台服务器172.30.72.199,172.30.72.200,172.30.72.201
三台服务器创建目录,并授权
mkdir -p /home/tools/elasticsearch-cluster/config
mkdir -p /home/tools/elasticsearch-cluster/node-data
mkdir -p /home/tools/elasticsearch-cluster/plugins
elasticsearch用户拥有的内存权限太小,至少需要262144 切换到root用户 执行命令:
sysctl -w vm.max_map_count=262144
查看结果:
sysctl -a|grep vm.max_map_count
上述方法修改之后,如果重启虚拟机将失效,所以解决办法:
在 /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
172.30.72.199进入配置目录 cd /home/tools/elasticsearch-cluster/config
vim elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 172.30.72.199
http.port: 9208
transport.tcp.port: 9308
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["172.30.72.199:9308","172.30.72.200:9308","172.30.72.201:9300"]
discovery.zen.minimum_master_nodes: 2
172.30.72.200进入配置目录 cd /home/tools/elasticsearch-cluster/config
vim elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 172.30.72.200
http.port: 9208
transport.tcp.port: 9308
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["172.30.72.199:9308","172.30.72.200:9308","172.30.72.201:9300"]
discovery.zen.minimum_master_nodes: 2
172.30.72.201进入配置目录 cd /home/tools/elasticsearch-cluster/config
vim elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 172.30.72.201
http.port: 9208
transport.tcp.port: 9308
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["172.30.72.199:9308","172.30.72.200:9308","172.30.72.201:9300"]
discovery.zen.minimum_master_nodes: 2
将插件包(ik分词,拼音转换,中文简繁转换等)传到/home/tools/elasticsearch-cluster/plugins
172.30.72.199启动
docker run -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" -d -p 9208:9208 -p 9308:9308 -v /home/tools/elasticsearch-cluster/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/tools/elasticsearch-cluster/node-data:/usr/share/elasticsearch/data -v /home/tools/elasticsearch-cluster/plugins:/usr/share/elasticsearch/plugins --name es_node_one docker.elastic.co/elasticsearch/elasticsearch:6.3.2
172.30.72.200启动
docker run -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" -d -p 9208:9208 -p 9308:9308 -v /home/tools/elasticsearch-cluster/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/tools/elasticsearch-cluster/node-data:/usr/share/elasticsearch/data -v /home/tools/elasticsearch-cluster/plugins:/usr/share/elasticsearch/plugins --name es_node_two docker.elastic.co/elasticsearch/elasticsearch:6.3.2
172.30.72.201启动
docker run -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" -d -p 9208:9208 -p 9308:9308 -v /home/tools/elasticsearch-cluster/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/tools/elasticsearch-cluster/node-data:/usr/share/elasticsearch/data -v /home/tools/elasticsearch-cluster/plugins:/usr/share/elasticsearch/plugins --name es_node_three docker.elastic.co/elasticsearch/elasticsearch:6.3.2
elasticsearch-head安装
elasticsearch-head访问数据需要将contentType修改为"application/json;charset=UTF-8",可以直接下载我改好的vendor.js,放到/home/tools/elasticsearch-cluster/目录下
docker run -d --name es-admin -p 9101:9100 -v /home/tools/elasticsearch-cluster/vendor.js:/usr/src/app/_site/vendor.js docker.io/mobz/elasticsearch-head:5