Ubuntu下部署ES集群
=============
Elasticsearch是基于Apache Lucene(TM)的开源搜索引擎,是一个高扩展的、开源的、全文检索的搜索引擎,通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单,当然上手Elasticsearch也比较容易,开箱即用。本文主要介绍Elasticsearch集群的部署。Elasticsearch集群不仅可以为数据提供比较快速的搜索及分析功能,还可以提供分布式存储功能,在Elasticsearch的数据结构中,Elasticsearch 集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)。
一、环境
- Ubuntu 14.04 LTS,三台虚拟机
- jdk-8u151-linux-x64.tar.gz,已配置java环境(需要jdk8)
- SuperMap iObjects Java 9D for Linux(V9.0.0),已配置
- elasticsearch-5.6.3.tar.gz
二、部署
1.配置无密码访问
在127,128,129机器上执行命令
cd ~/.ssh #进入当前用户的隐藏目录
ssh-keygen -t rsa #用rsa生成密钥,一路“回车”
追加公钥到授权的key,在129主机上执行命令
cp id_rsa.pub authorized_keys #把公钥复制一份,并改名为authorized_keys
scp yb@192.168.31.128:/home/yb/.ssh/id_rsa.pub id_rsa_128.pub #将128的公钥复制到主机
scp yb@192.168.31.127:/home/yb/.ssh/id_rsa.pub id_rsa_127.pub #将127的公钥复制到主机
cat id_rsa_128.pub >> authorized_keys #将128公钥追加到公钥
cat id_rsa_127.pub >> authorized_keys #将127公钥追加到公钥
scp authorized_keys yb@192.168.31.128:/home/yb/.ssh/authorized_keys #复制授权的key到128
scp authorized_keys yb@192.168.31.127:/home/yb/.ssh/authorized_keys #复制授权的key到127
验证无密码访问,在129主机执行命令
ssh 192.168.31.128 #无密连接128机器
2.安装Elasticsearch
下载ES包,解压到非root用户,如yb用户,修改配置文件$ES_HOME/config/elasticsearch.yml。
129机器修改如下:
128机器修改如下:
127机器修改如下:
discovery.zen.ping.unicast.hosts: ["192.168.31.129"] #设置允许加入到集群中
启动ES服务,三台机器执行如下命令,这样ES集群部署完成。
cd opt/elasticsearch-5.6.3/bin/ #进入目录
nohup ./elasticsearch #启动
注:启动服务若遇到如下错误提示
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决办法,切换到root用户,修改配置文件
vi /etc/security/limits.conf
#添加如下内容:
soft nofile 65536
hard nofile 131072
soft nproc 2048
hard nproc 4096
vi /etc/security/limits.d/90-nproc.conf
#添加如下内容:
soft nproc 2048
vi /etc/sysctl.conf
#添加如下内容
vm.max_map_count=655360
并执行命令:sysctl -p
重启机器,重启ES服务
3.打开ES数据源
es本身就是一个数据库,不需创建,直接打开,如果es配置文件配的是ip地址,请使用ip作为参数打开。