假设集群有三个节点192.168.1.4,192.168.1.5,192.168.1.6,
以192.168.1.4为例子
1、安装Elasticsearch
强烈推荐直接从官方网站下载最新版本的rpm包,能省去很多事!
下载elasticsearch插件head包,解压缩到/usr/share/elasticsearch/plugins目录,head插件用来做基本的管理
2、配置ES的运行参数
ES最新版本不允许以root运行,假设我们有一个账号elk,假设期望数据和配置文件存储在/home/elk/dataserver/elasticsearch路径中,则创建目录
mkdir /home/elk/dataserver/elasticsearch/config
mkdir /home/elk/dataserver/elasticsearch/data
mkdir /home/elk/dataserver/elasticsearch/work
mkdir /home/elk/dataserver/elasticsearch/logs
mkdir /home/elk/dataserver/elasticsearch/pid
拷贝原始配置文件到/home/elk/dataserver/elasticsearch/config目录
cp -r /etc/elasticsearch/* /home/elk/dataserver/elasticsearch/config
cd /home/elk/dataserver/elasticsearch/config
修改elasticsearch.yml文件如下
cluster.name: mycluster
node.name: es4
path.conf: /home/elk/dataserver/elasticsearch/config
path.data: /home/elk/dataserver/elasticsearch/data
path.work: /home/elk/dataserver/elasticsearch/work
path.logs: /home/elk/dataserver/elasticsearch/logs
network.host: 192.168.1.4
discovery.zen.ping.unicast.hosts: ["192.168.1.4","192.168.1.5","192.168.1.6"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
3、修改bin程序
vi /usr/share/elasticsearch/bin/elasticsearch.in.sh
在JAVA_OPTS行之前添加
ES_MIN_MEM=3072m
ES_MAX_MEM=3072m
这两个内存参数必须一样
4、修改启动服务的配置
vi /etc/init.d/elasticsearch,编辑如下内容
ES_USER="elk"
ES_GROUP="elk"
ES_HOME="/usr/share/elasticsearch"
MAX_OPEN_FILES=65535
MAX_MAP_COUNT=262144
LOG_DIR="/home/elk/dataserver/elasticsearch/logs"
DATA_DIR="/home/elk/dataserver/elasticsearch/data"
CONF_DIR="/home/elk/dataserver/elasticsearch/config"
PID_DIR="/home/elk/dataserver/elasticsearch/pid"
pidfile="$PID_DIR/${prog}.pid"
第一行第二行,表示以elk用户和elk组运行
设置为自启动
chkconfig --add elasticsearch
5、修改目录的权限
chown -R elk:elk /home/elk/dataserver/elasticsearch
6、复制到其他机器
在其他机器上安装rpm包,然后重复步骤2、3、4、5。
注意修改elasticsearch.yml中的node.name和ip地址
7、测试集群
在三个机器上执行命令/etc/init.d/elasticsearch start
打开浏览器访问http://192.168.1.4:9200/_plugin/head
应该能够看到es4、es5、es6三个节点加入了集群。
同时在命令行执行ps aux | grep java命令,检查elasticsearch进程的参数配置是否正确