首页 > 技术文章 > 搜索引擎 Elasticsearch 集群搭建

chenjiye 2018-12-25 14:50 原文

安装 JDK 1.8

1、官网复制下载地址。wget

2、下载到本地ftp传上去。

解压 JDK 安装包:

1、在/usr/local/下创建Java文件夹

cd /usr/local/进入目录

mkdir java 新建java目录

2、文件夹创建完毕,把安装包拷贝到 Java 目录中,然后解压 jdk 到当前目录

cp jdk-8u191-linux-x64.tar.gz  /usr/local/java/

tar -zxvf jdk-8u191-linux-x64.tar.gz

3、解压完之后,Java目录中会出现一个jdk1.8.0_191的目录,这就解压完成了。之后配置一下环境变量。 
编辑/etc/下的profile文件,配置环境变量

vi /etc/profile

在最后边追加一下内容

export JAVA_HOME=/usr/java/jdk1.8.0_191
export JAVA_BIN=/usr/java/jdk1.8.0_191/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATHSPH

之后保存并退出文件之后。

让文件生效:source /etc/profile

测试:

在控制台输入Java 和 Java -version 看有没有信息输出

配置 hosts

vim /etc/hosts

例:

集群ip和对应的名称

192.168.153.133   es1

192.168.153.134   es2

设置 SSH 免密码登录

ssh-keygen -t rsa       ----本机生成密钥

ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.1.202      ---其他机器的ip

安装 ElasticSearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz

cd /usr/local

tar -zxvf elasticsearch-5.5.2.tar.gz

创建用户和用户组---elasticsearch出于安全默认不支持root

groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
cd /usr/local/
chown -R elsearch:elsearch elasticsearch-5.5.2

----  chmod -R  777 /usr/local/elasticsearch-5.5.2

配置文件:

vim /usr/local/elasticsearch-5.5.2/config/elasticsearch.yml

cluster.name : my-app (集群的名字,名字相同的就是一个集群)

node.name : es1 (节点的名字, 和前面配置的 hosts 中的 name 要一致)

path.data: /data/elasticsearch/data (数据) -----没有的话需要创建 mkdir -p /data/elasticsearch/{data,logs}

path.logs: /data/elasticsearch/logs (日志) ----给用户elsearch权限chown elsearch /data/elasticsearch/{data,logs} -R

network.host:0.0.0.0  ---允许外网访问,也可以是自己的ip地址

http.port: 9200 //访问的端口    每台机器端口不要一样    第二台19200   三台29200

discovery.zen.ping.unicast.hosts: [“192.168.153.133”, “192.168.153.134”, “192.168.153.132”] //各个节点的ip地址 

discovery.zen.minimum_master_nodes: 2   -------集群有几台机器就写几台

启动elasticsearch:

su elsearch
sh /usr/local/elasticsearch-5.5.2/bin/elasticsearch     -------后台启动:sh /usr/local/elasticsearch-5.5.2/bin/elasticsearch -d

------------下面两个装head插件需要加上

http.cors.enabled: true     
http.cors.allow-origin: “*”

安装 head 插件

1、安装nodejs

去nodejs官网找到对应的下载地址   wget  

tar -xJf node-v8.9.3-linux-x64.tar.xz 
然后我们再配置环境变量: 
vim /etc/profile

在最后加上:

export NODE_HOME=/usr/local/node-v8.9.3-linux-x64

export PATH=$NODE_HOME/bin:$PATH

再执行 source /etc/profile 让环境变量生效;

测试下:

node -v

npm -v

2、安装git

apt-get install git     ----没有就apt-get update

git --version

3、安装head

git clone git://github.com/mobz/elasticsearch-head.git

cd elasticsearch-head

npm install

npm run start    

http://localhost:9100/  ---在浏览器测试下  报错的话看是否有下面总结的报错信息 

测试成功的话再把npm run start 后台执行

cd elasticsearch-head

npm install -g pm2

pm2 start npm --watch --name XXX -- run start

4、安装x-pack

cd /usr/local/elasticsearch-5.5.2

bin/elasticsearch-plugin install x-pack

--------初始密码
elastic
changeme

报错解决方案:

报错     ------[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

原因:无法创建本地文件问题,用户最大可创建文件数太小

解决方案:切换到 root 用户,编辑 limits.conf 配置文件, 添加类似如下内容:

vim /etc/security/limits.conf

添加如下内容:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

报错  ------[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]


原因:最大虚拟内存太小


root用户执行命令:


sysctl -w vm.max_map_count=262144


或者修改 /etc/sysctl.conf 文件,添加 “vm.max_map_count”设置
设置后,可以使用
$ sysctl -p

报错----[2]: max number of threads [1024] for user [tzs] is too low, increase to at least [2048]

原因:无法创建本地线程问题,用户最大可创建线程数太小

解决方案:切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件。

vim /etc/security/limits.d/90-nproc.conf

找到如下内容:

soft nproc 1024
修改为:

soft nproc 2048

==========================结===束====================================

推荐阅读