基于linux centos 7安装elasticsearch

补充篇 基于linux centos 7安装elasticsearch

强调:elasticsearch是基于JDK1.8运行的,安装前请务必安装完jdk1.8(一行命令解决:yum install java-1.8.0-openjdk* -y)

一、安装elasticsearch

1、 进入我的安装目录:
cd /usr/local/  
 
 
  • 1
2、执行下载命令:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.tar.gz
 
 
  • 1
3、执行解压命令:
tar -zxf elasticsearch-5.1.1.tar.gz
 
 
  • 1
4、进入指定目录执行启动命令
./elasticsearch5.6.3/bin/elasticsearch
 
 
  • 1

接下来会各种报错,一步一步解决

5、错误一:
java.lang.RuntimeException: can not run elasticsearch as root
 
 
  • 1

显示不能用root用户执行,需要切换一个非root用户进行执行

这里写图片描述
解决方案:

第一步:adduser esuser //这个自定义
第二步:passwd rpj199301 //这是我的密码,以防自己忘记
第三步:chown -R esuser /自己的elasticsearch安装目录  //这是赋权限
第四步:su esuser 
 
 
  • 1
  • 2
  • 3
  • 4
6、错误二:

使用esuser启动elasticsearch后接着会报如下错:

ERROR:bootstrap checks failed
max virtual memory areas vm.max_map_count[65530] is too low,increase to at least
 
 
  • 1
  • 2

这里写图片描述
解决方案:
要将用户的最大打开文件数设置elasticsearch为65,536,切换到root用户,编辑limits.conf 添加类似如下内容

vim /etc/security/limits.conf 
 
 
  • 1

添加如下内容:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
 
 
  • 1
  • 2
  • 3
  • 4
7、错误三:

切换到esuser启动elasticsearch后接着会报如下错:

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
 
 
  • 1

这里写图片描述
解决方案:
切换到root用户修改配置sysctl.conf

vim /etc/sysctl.conf
 
 
  • 1

添加下面配置:

vm.max_map_count=655360
 
 
  • 1

并执行命令:

sysctl -p
 
 
  • 1

再次切换用户启动elasticsearch发现启动成功!

8、验证是否可以访问:
curl:http://localhost:9200
//显示如下结果说明启动成功
{
  "name" : "K8LDTYN",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "2KDpZHX6RTyNpm08lq3Jqg",
  "version" : {
    "number" : "5.1.1",
    "build_hash" : "5395e21",
    "build_date" : "2016-12-06T12:36:15.409Z",
    "build_snapshot" : false,
    "lucene_version" : "6.3.0"
  },
  "tagline" : "You Know, for Search"

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
9、最后一问题外网不能访问elasticsearch

解决方案:

cd /自己elasticsearch的安装目录/config
修改 elasticsearch.yml
修改 network.host: 0.0.0.0
 
 
  • 1
  • 2
  • 3

关闭防火墙:

systemctl stop firewalld

 
 
  • 1
  • 2

最后成功!!!

10、补充:

elasticsearch的9200端口和9300端口的区别:
9300是tcp通讯端口,集群间和TCPClient都走的它,9200是http协议的RESTful接口;
Java客户端连接的是9300接口,使用HTTP请求的方式连接的是9200端口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值