ES入门创建
Linux 安装 Elasticsearch 详情步骤已及解决方案
第一步:环境
Linux系统 Java 1.8 elasticsearch-6.3.2
第二步:下载
2.1 JDK的下载可以去官网上直接下载,尽量使用jdk8 ,jdk7不支持,jdk9暂时有错误。
2.2 ES 去官网直接下载。
第三步:安装
3.1安装JDK环境
a.前提:查看该系统是否安装过Java 环境,如果安装过将其卸载安装最新的版本,更换Java 的版本也可以这样去操作。
b.执行rpm –qa|grep jdk查看安装jdk版本,如果没有输出则没有安装过jdk。
c.使用rpm -e –nodeps java-1.8卸载jdk,再使用rpm –qa|grep jdk查看安装jdk版本是否卸载。
d. 直接将下载好的jdk-8u151-linux-x64.rpm 安装包 ;上传到自己创建好的JAVA文件下;cd 命令进入到JAVA文件下使用rpm 命令进行安装 rpm -ivh jdk-8u131-linux-x64.rpm 安装完成后执行 java -version 命令查看安装是否成功
e:查看安装目录
which java 查询java目录
f:配置环境变量,执行vi /etc/profile;然后进入编辑模式,在文件的最后添加下面的配置,如图
!JAVA_HOME=/usr/java/jdk1.8.0_181
JRE_HOME=/usr/java/jdk1.8.0_181/jre
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
修改完配置后,使用Esc 键退出,输入:wq 保存并退出
g: 执行命令 source /etc/profile 使用环境变量生效
end: 验证环境变量是否生效,分别执行下面的命令echo $JAVA_HOME echo $CLASSPATH echo $PATH
3.2安装ES
1:下载elasticsearch-5.6.3.zip,在usr目录下创建es文件,进入es,unzip elasticsearch-6.3.2.zip解压文件,cd进入elasticsearch-6.3.2文件
2:创建用户和组(创建elasearchs组,及elasearch用户),因为不能直接使用root用户执行ES程序。
groupadd elasearchs增加用户组。
useradd elasearch –g elasearchs 增加用户到用户组。
chown –R elasearchs /usr/es/ elasticsearch-6.3.2 增加用户组权限。
3.创建ES数据文件和日志文件,直接在root 用户根目录创建即可
mkdir /data 创建文件夹data
chown –R elasearchs /data给用户组增加权限
su – elasearchs 切换用户
进入 /data
创建文件 mkdir es/data, mkdir es/logs
4.修改ES配置文件,使用cd 进入到/usr/es/ elasticsearch-6.3.2/config下,执行vi elasticsearch.yml 命令,如图所示
6. 执行ES文件,进入到bin 目录下执行 ./elasticsearch 命令就可以了,执行 ./elasticesrarch -d 是后台运行, 如果没有什么问题话,就可以安全生成了;然后执行curl 'http://自己配置的IP地址:9200/' 命令,就出现下面的结果。
第四步:问题
1.[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 意思是说你的进程不够用了
解决方案: 切到root 用户:进入到security目录下的limits.conf;执行命令 vim /etc/security/limits.conf 在文件的末尾添加下面的参数值:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
前面的*符号必须带上,然后重新启动就可以了。执行完成后可以使用命令 ulimit -n 查看进程数
2.[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 需要修改系统变量的最大值了
解决方案:切换到root用户修改配置sysctl.conf 增加配置值: vm.max_map_count=655360
执行命令 sysctl -p 这样就可以了,然后重新启动ES服务 就可以了
第5部:安装head插件
- 下载head安装包,下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip 这是接从git 上下载下来,解压到虚拟机(我是解压到es文件夹下与es并列。)
- 执行插件head 需要先执行node.js 所以先安装 node.js
- curl –sL https://rpm.nodesource.com/setup_8.x | bash -
yum install –y node.js
执行完后,可以使用命令node –v 验证是否安装成功,同时npm也安装成功了
npm –v 可验证是否安装成功。
- 安装grunt 由于插件执行文件由grunt命令来执行完成 所以要先安装
由于grunt是对具体项目操作 所以对header项目内进行安装
进入elasticsearch-head-master 目录
执行 npm install grunt –save-dev 安装环境
npm install grunt 安装install
- 修改配置文件 cd 进入elasticsearch-head-master 文件夹下,执行命令vim Gruntfile.js文件:增加hostname属性,设置为*;如图:
- 修改 vi _site/app.js文件 修改head的连接地址
- grunt server & 执行完成后就OK了
注意下面使用的端口号,不在是9200 了 而是head 插件中的 9100 了
输入192.168.147.21:9100
看到上面的出现的健康值了吗,说明的连接还是有问题的,解决方案是修改 cd 命令进入到elasticsearch-5.6.3 /config 文件中 vi elasticsearch.yml
文件下添加 :
http.cors.enabled: true
http.cors.allow-origin: "*"
切换到elasearch 用户执行进入ES bin下执行./elasticsearch 成功起来就可以了,执行结果就是这样的
第四步:集群
重复上面安装操作(如果是一台机器只重复es安装,将es文件下elasticsearch-5.6.3复制到自己创建文件下(/usr/es02),修改配置文件节点及http.port: 9200即可,给elasearch增加es02权限。)
修改下vi elasticsearch.yml文件
修改节点:node.name: JSJ-ES01
增加交互端口:transport.tcp.port: 9300
增加集群连接集:discovery.zen.ping.unicast.hosts: ["192.168.147.21:9301"],
增加最小主节点:discovery.zen.minimum_master_nodes: 1 为n/2+1
action.auto_create_index: false