Linux搭建Elasticsearch集群详细过程

系统环境:centos7.5

192.168.204.128

192.168.204.129

192.168.204.130

JDK:1.8

elasticsearch-7.1.1

1.配置JAVA环境,将JDK1.8解压到/usr/local/jdk/目录下,在/etc/profile中添加

JAVA_HOME=/usr/local/jdk/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 
PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH

2.创建文件夹,将下载的Elasticsearch压缩包解压到该目录

sudo mkdir /ES 

将elasticsearch-7.1.1压缩包上传到ES目录

cd /ES

sudo tar -zxvf elasticsearch-7.1.1-linux-x86_64.tar.gz

配置elasticsearch.yum文件

sudo vim /ES/elasticsearch-7.1.1/config/elasticsearch.yml

这里选择192.168.204.130作为Master,在最下面添加以下配置

---------------------------------------------------------------------------------------------------------------------------------------------------------------

http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
##集群名称,每个节点配置成一样的名称才能形成正确的集群
cluster.name: wang
##节点名称,每个节点配置不同名称
node.name: master
##是否主节点
node.master: true
##集群主节点node名称
cluster.initial_master_nodes: ["master"]
##是否数据节点
node.data: true
##单机最大节点数
node.max_local_storage_nodes: 1
##索引数据的存储路径
path.data: /usr/local/es1
##日志文件的存储路径
path.logs: /usr/local/es1
##绑定的ip地址,外网也可以访问
network.host: 0.0.0.0
##设置对外服务的http端口,默认为9200
http.port: 9200
## 设置节点间交互的tcp端口
transport.tcp.port: 9302
transport.tcp.compress: true
## 设置集群中节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["192.168.204.128:9300","192.168.204.129:9301","192.168.209.130:9302"]
discovery.zen.minimum_master_nodes: 1
##防止同一个shard的主副本存在同一个物理机上
cluster.routing.allocation.same_shard.host: true

------------------------------------------------------------------------------------------------------------------------------------------------------

192.168.204.128配置

http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
##集群名称,每个节点配置成一样的名称才能形成正确的集群
cluster.name: wang
##节点名称,每个节点配置不同名称
node.name: node1
##是否主节点
node.master: false
##集群主节点node名称
cluster.initial_master_nodes: ["master"]
##是否数据节点       
node.data: true   
##单机最大节点数
node.max_local_storage_nodes: 1
##索引数据的存储路径
path.data: /usr/local/es1
##日志文件的存储路径
path.logs: /usr/local/es1
##绑定的ip地址,外网也可以访问
network.host: 0.0.0.0
##设置对外服务的http端口,默认为9200
http.port: 9200
## 设置节点间交互的tcp端口,默认是9300 
transport.tcp.port: 9300
transport.tcp.compress: true
## 设置集群中节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["192.168.204.128:9300","192.168.204.129:9301","192.168.209.130:9302"]
discovery.zen.minimum_master_nodes: 1
##防止同一个shard的主副本存在同一个物理机上
cluster.routing.allocation.same_shard.host: true

192.168.204.129配置

http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
##集群名称,每个节点配置成一样的名称才能形成正确的集群
cluster.name: wang
##节点名称,每个节点配置不同名称
node.name: node2
##是否主节点
node.master: false
##集群主节点node名称
cluster.initial_master_nodes: ["master"]  
##是否数据节点   
node.data: true   
##单机最大节点数          
node.max_local_storage_nodes: 1
##索引数据的存储路径
path.data: /usr/local/es1
##日志文件的存储路径
path.logs: /usr/local/es1
##绑定的ip地址,外网也可以访问
network.host: 0.0.0.0
##设置对外服务的http端口,默认为9200
http.port: 9200
## 设置节点间交互的tcp端口 
transport.tcp.port: 9301
transport.tcp.compress: true
## 设置集群中节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["192.168.204.128:9300","192.168.204.129:9301","192.168.204.130:9302"]
discovery.zen.minimum_master_nodes: 1
##防止同一个shard的主副本存在同一个物理机上
cluster.routing.allocation.same_shard.host: true

因为elasticsearch不能用root用户启动,需要创建用户

sudo useradd wang (创建用户名)

sudo passwd wang (设置密码)

sudo chown -R wang:wang  /ES  (给用户ES文件夹权限)

创建数据目录

mkdir /usr/local/es1

sudo chown -R wang:wang  es1

3.切换创建的用户,启动elasticsearch

su wang

sh /ES/elasticsearch-7.1.1/bin/elasticsearch

发现报错

Linux搭建Elasticsearch集群详细过程_第1张图片

 

切换到root用户,编辑limits.conf 添加类似如下内容

vi  /etc/security/limits.conf 

添加如下内容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 4096

* hard nproc 4096

修改内存大小

sudo sysctl -w vm.max_map_count=262144

切换用户再次启动

sh /ES/elasticsearch-7.1.1/bin/elasticsearch -d (后台启动)

在浏览器中输入Ip:9200可查看

5.然后我们要安装head插件,首先安装Nodejs,在主节点服务器下执行

sudo mkdir /node

cd /node

sudo wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz

sudo tar -xvf node-v10.16.0-linux-x64.tar.xz

改名

 sudo mv node-v10.16.0-linux-x64 nodejs

添加软连接

sudo ln -s /node/nodejs/bin/node /usr/local/bin
sudo ln -s /node/nodejs/bin/npm /usr/local/npm

输入node -v查看是否配置成功

6.下载elasticsearch-head-master.zip

sudo mkdir/head

cd /head

wget https://github.com/mobz/elasticsearch-head/archive/master.zip

sudo unzip elasticsearch-head-master.zip

进入到elasticsearch-head-master安装npm

cd elasticsearch-head-master

curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

npm config set registry https://registry.npm.taobao.org

sudo npm install

npm -v

安装完成后在elasticsearch-head-master目录下面,执行以下命令启动head插件

sudo npm run start

在浏览器输入ip:9100

Linux搭建Elasticsearch集群详细过程_第2张图片

记得要关闭防火墙,不然可能会导致无法形成集群。

centos6关闭防火墙命令

service iptables stop

centos7关闭防火墙命令

systemctl stop firewalld.service

(附)

查看ES进程命令

ps -ef | grep elastic

 

你可能感兴趣的:(elasticsearch)