一、环境要求
-
Linux(Centos 7)
-
ElasticSerach 6.6.1
二、Elasticsearch 下载
三、elasticsearch 的安装
- 进入Linux系统,切换到 /opt 目录下:
- 在opt目录下,创建elasticsearch文件夹,并进入文件夹内:
- 获取elasticearch安装包:
方法1:可以使用在线下载命令,下载安装包:
下载命令:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.tar.gz
方法2:可以将之前已经下载好的安装包上传到当前目录
使用WinSCP工具,将下载到本地的安装包,上传到linux目录下
- 解压elasticsearch安装包
tar -zvxf elasticsearch-6.6.1.tar.gz
- 进入elasticsearch-6.6.1/config文件夹内,修改配置文件:
cd elasticsearch-6.6.1/config/
定位到#network.host: 192.168.0.1位置,在下面增加一行:
network.host: 0.0.0.0
保存并退出(先按esc键,输入:wq!,按回车键即可)
四、启动
- 启动elasticsearch为后台进程服务:
切换到bin目录下,执行如下命令:
启动命令:./elasticsearch -d
问题1:could not find java; set JAVA_HOME or ensure java is in PATH
解决方案:需要系统搭建Java环境,参考下面链接进行配置搭建Java环境(Java版本可更新)
搭建完毕之后,再次执行命令:./elasticsearch -d
- 判断是否启动成功,可执行如下命令,查看是否启用9200端口即可
ss -tanl
发现没有启用9200,则代表es启动失败,需要查看具体原因:
接下来,则需要查看启动日志,切换到日志logs目录下
执行如下命令即可:
more elasticsearch.log
通过日志分析所得,启动es服务的时候,是不允许使用超级管理员root账户
那么接下来,我们需要创建一个普通用户likang
使用普通用户(as)启动es服务即可,如下命令:
第一步:liunx创建新用户 adduser as
然后给创建的用户加密码 passwd likang 输入两次密码.
第二步:给新建的XXX赋权限,chown -R as /opt/elasticsearch/
第三步:切换到as普通用户下,执行启动命令
- 再次验证es是否启动成功,发现还是失败,再次查看日志,分析如图:
问题:max file descriptors [4096] for elasticsearch process is too low,
increase to at least [65536]
原因:每个进程最大同时打开文件数太小
查看当前系统同时打开进程数的默认值:
ulimit -Hn
ulimit -Sn
解决方案:切换到root账户,修改/etc/security/limits.conf文件,
增加配置,用户退出后重新登录生效
su root
输入密码
vi /etc/security/limits.conf
在文件最后,增加如下配置:
likang hard nofile 65536
likang soft nofile 65536
* soft nproc 4096
* hard nproc 4096
- 再次启动验证,发现还有问题,如下:
问题:max virtual memory areas vm.max_map_count [65530] is too low,
increase to at least [262144]
原因:elasticsearch用户拥有的内存权限太小,至少需要262144
解决:切换到root用户,在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=655360
添加完毕之后,执行命令:
sysctl -p
- 再次切换到likang普通用户,重新启动es服务。
五、远程访问
- 开启9200端口号访问
/sbin/iptables -I INPUT -p tcp --dport 9200 -j ACCEPT
可在浏览器中输入如下地址:http://192.168.13.9:9200/
- 如果显示如上信息,则代表Linux下ES已经搭建完毕(单机)
- 还可以用命令行的方式启动:
curl -XGET "http://localhost:9200"
尚未安装 curl 命令 :
apt install curl
重新输入命令:
六、停止
- 若是es的前台运行,则用ctrl + c 来停止。
- 若是es的后台运行,则用kill -9 进程号 来停止。(可通过jps命令,查看es进程号)
原创: 康哥 码上有猿 2019-03-05
地址:https://mp.weixin.qq.com/s/yf9xsprSDuIAWpdA8vT1eQ
码神联盟
微信号:lk591566764
推荐理由:
工作13年的架构师和你一起聊技术,专注于JAVA、数据库、高并发、负载、集群、解决方案、微服务、运维、性能调优、热点开源技术框架等领域;不定期的进行课程直播、技术分享课、技术群等。