本章内容概述
1、Linux环境安装Elasticsearch
2、安装Elasticsearch问题解决
3、访问Elasticsearch
4、9200和9300端口
1、Linux环境安装Elasticsearch
1.1 安装JDK环境变量
安装Elasticsearch唯一的要求是安装JDK8+ (如果之前已经安装,请忽略)
1、检查一下系统中的jdk版本
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
2、查看当前Linux系统是否已经安装java
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# rpm -qa | grep java
java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.4.el7_5.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
java-1.7.0-openjdk-1.7.0.191-2.6.15.4.el7_5.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.181-3.b13.el7_5.x86_64
tzdata-java-2018e-3.el7.noarch
3、卸载openjdk
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# rpm -e --nodeps tzdata-java-2018e-3.el7.noarch
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.4.el7_5.x86_64
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.4.el7_5.x86_64
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-3.b13.el7_5.x86_64
或者使用
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# yum remove *openjdk*
之后再次输入rpm -qa | grep java 查看卸载情况:
[root@master-24328995146c4d2a8e9db842be0b9c21 ~]# rpm -qa | grep java
javapackages-tools-3.4.1-11.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
4、首先到jdk官网上下载你想要的jdk版本,下载完成之后将需要安装的jdk安装包放到Linux系统指定的文件夹下
注:可以通过SSH Secure 或 sftp上传到/usr/local目录下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U2Xm4AKx-1617846048345)(images/10_上传jdk到虚拟机.png)]
5、解压jdk到/usr/local下
tar –zxvf jdk-8u181-linux-x64.tar.gz –C /usr/local
6、配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去
vim /etc/profile
添加如下内容:JAVA_HOME根据实际目录来
JAVA_HOME=/usr/local/jdk1.8.0_181
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
7、重新加载/etc/profile配置文件 source /etc/profile
8、查看安装情况
[root@master-24328995146c4d2a8e9db842be0b9c21 local]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
1.2 安装Elasticsearch
1、通过ElasticSearch官网网站下载最新版本的ElasticSearch
网址: https://www.elastic.co/cn/downloads/
目前最新版是2019年4月11日发布的7.0.0,选择Linux版本下
[]
2、上传ElasticSearch到Linux的usr/local目录下
注意:linux安装内存建议1g内存以上
3、解压elasticsearch到usr/local目录
tar -zxvf elasticsearch-7.0.0.tar.gz
4、打开安装目录下的config文件夹,修改elasticsearch.yml
vim elasticsearch.yml
network.host: 192.168.34.64
http.port: 9200
5、进入安装目录的bin目录,运行ElasticSearch
./elasticsearch
6、如果按照目前的方式运行,肯定报错,接下来我们看下问题处理;
2、安装Elasticsearch问题解决
2.1 报错1: can not run elasticsearch as root
原因: 从字面意思就可以得出结论: 不能让root用户来运行elasticsearch
解决方案:
因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户
1.创建一个分组
groupadd esgroup
2.创建新用户,指明所属组,并且赋予登录密码
useradd esuser1 -g esgroup -p 123456
3.赋予新用户操作ElasticSearch文件夹及所属文件的权限
chown -R esuser1:esgroup elasticsearch-7.0.0
注:如果想要如上命令执行成功,需要位于该目录的上一级目录,比如我的是: local目录
否则会报错:chown: cannot access ‘elasticsearch-7.0.0’: No such file or directory
4.切换新用户
su esuser1
5.进入安装目录的bin目录,运行ElasticSearch
./elasticsearch
6.运行之后发下如下问题:
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts,
discovery.seed_providers, cluster.initial_master_nodes] must be configured
2.2 报错2: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
原因:最大虚拟内存区域65530太低,至少增加到262144
解决方案:
切换到root用户
修改配置文件: vim /etc/sysctl.conf
修改虚拟内存: vm.max_map_count=655360 把这句话加入进去
加载系统参数: sysctl -p
2.3 报错3: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
原因:每个进程最大同时打开文件数太小
解决方案:
切换到root用户
修改配置文件: vim /etc/security/limits.conf
加入如下配置:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
重启服务器再次启动
shutdown -r now / reboot
2.4 报错4: the default discovery settings are unsuitable for production use;
原因: 默认的设置不适合生产使用;
解决方案:
切换到root用户
修改配置文件 vim /usr/local/elasticsearch-7.0.0/config/elasticsearch.yml
除去前面的#, #cluster.initial_master_nodes: ["node-1", "node-2"]
查找ES进程号 ps -ef | grep elastic
杀掉ES进程 kill -9 端口号
把目录切换到elasticsearch的bin目录下,然后执行下面的命令 sh elasticsearch -d
3、访问Elasticsearch
1、关闭防火墙 systemctl stop firewalld.service
2、访问http://ip:9200
3、后台启动 ./elasticsearch -d
4、9200和9300端口
9200作为Http协议,主要用于外部通讯
9300作为Tcp协议,jar之间就是通过tcp协议通讯
ES集群之间是通过9300进行通讯