项目升级,把原先的网站数据全部迁移到ElasticSearch中,由于没有上云,所有的安装部署都要做,还好有docker,让一切变得简单。这里就记录一下ElasticSearch集群的搭建过程,实际项目部署了2台物理机,每台物理机部署了2个节点。
1、拉取ElasticSearch镜像
docker pull elasticsearch
2、创建数据挂载目录及配置文件
mkdir -p /usr/local/es/{config,data1,data2}
在config 目录下创建es1.yml es2.yml两个配置文件
文件内容是:
cluster.name: elasticsearch-cluster #集群唯一名称,所有节点一致
node.name: es-node1 #节点名称
network.bind_host: 0.0.0.0 #设置可以访问的ip,默认为0.0.0.0,这里全部设置通过
network.publish_host: 192.168.1.25 #设置其它结点和该结点交互的ip地址
http.port: 9200 #设置对外服务的http端口,默认为9200
transport.tcp.port: 9300 #设置节点之间交互的tcp端口,默认是9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true #配置该结点是否有资格被选举为主结点(候选主结点),为了防止脑裂,配置奇数个候选主结点
node.data: true #配置该结点是数据结点,用于保存数据
discovery.zen.ping.unicast.hosts: ["192.168.1.25:9300","192.168.1.25:9301","192.168.1.26:9300","192.168.1.26:9301"] #集群个节点IP地址
discovery.zen.minimum_master_nodes: 2 #自动发现master节点的最小数
indices.query.bool.max_clause_count: 10240
3、调高JVM线程数限制数量
打开/etc/sysctl.conf 文件
vi /etc/sysctl.conf
加入如下内容:
vm.max_map_count=262144
启用配置:
sysctl -p
3、运行容器
分别启动本机及另外一台机器的4个节点,修改配置文件的相应端口和数据挂载的目录即可
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d --restart=always -p 9200:9200 -p 9300:9300 -v /usr/local/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/es/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch:5.6.16
注意生产环境-Xms256m -Xmx256m的配置,否则会发生内存溢出的错误
搭建成功可在在浏览器地址栏访问http://192.168.1.25:9200/_cat/nodes?pretty 查看各节点状态
192.168.1.26 73 12 0 0.01 0.10 0.16 di - es-node4
192.168.1.26 69 12 0 0.01 0.10 0.16 mdi - es-node3
192.168.1.25 62 6 0 0.42 0.21 0.23 mdi * es-node2
192.168.1.25 79 6 0 0.42 0.21 0.23 mdi - es-node1
4、elasticsearch-head前端框架的搭建
//拉取镜像
docker pull mobz/elasticsearch-head:5
//运行容器
docker run -d --restart=always -p 9100:9100 --name es-manager mobz/elasticsearch-head:5
//浏览器访问
http://192.168.1.26:9100/
网友评论