CentOS7 上 ElasticSearch 安装填坑记

2018-03-08 10:17:15 +08:00
 hansonwang99


下载 elastic search 5.3.0

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
mv elasticsearch-5.3.0.tar.gz /opt
cd /opt
tar -xzvf elasticsearch-5.3.0.tar.gz
cd elasticsearch-5.3.0/

启动 ES

cd /bin
./elasticsearch

按照道理应该就可以了,然而接下来各种坑一一出现,分别阐述

错误 1error='Cannot allocate memory' (errno=12)

solutions: 由于 elasticsearch5.0 默认分配 jvm 空间大小为 2g,需要改小一点

vim config/jvm.options  
-Xms2g  →  -Xms512m
-Xmx2g  →  -Xmx512m

错误 2:can not run elasticsearch as root

solutions: 在 Linux 环境中,elasticsearch 不允许以 root 权限来运行!所以需要创建一个非 root 用户,以非 root 用户来起 es

groupadd elk  # 创建用户组 elk
useradd elk -g elk -p 111111  # 创建新用户 elk,-g elk 设置其用户组为 elk,-p 111 设置其密码 6 个 1
chown -R elk:elk /opt  # 更改 /opt 文件夹及内部文件的所属用户及组为 elk:elk
su elk # 切换到非 root 用户 elk 下来

错误 3:(1) max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] (2) max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

此错误出现在修改 config/elasticsearch.yml 中的 network.host 为 network.host: 0.0.0.0 以便让外网任何 IP 都能来访问时。

solutions: 切换到 root 用户,然后

vim /etc/security/limits.conf
* soft nofile 300000
* hard nofile 300000
* soft nproc 102400
* soft memlock unlimited
* hard memlock unlimited

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

solutions: 先要切换到 root 用户; 然后可以执行以下命令,设置 vm.max_map_count,但是重启后又会恢复为原值。

sysctl -w vm.max_map_count=262144

持久性的做法是在 /etc/sysctl.conf 文件中修改 vm.max_map_count 参数:

echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p

最后终于在外网访问成功:


安装可视化插件 elasticsearch-head

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install   # 此处我试图用 cnpm install 有问题,用 npm 可以
npm run start 

然后在外网访问 http://你的安装机 IP:9100


最后实际简单测试一下

新建 Index,可以直接向 Elastic 服务器发出 PUT 请求。下面的例子是新建一个名叫 weather 的 Index。

然而刷新 elasticsearch-head 可视化界面可以看到索引已经成功插入

后记

关于作者更多的 elastic search 实践在此

作者更多的原创文章在此

2096 次点击
所在节点    程序员
3 条回复
SlipStupig
2018-03-08 14:12:33 +08:00
docker run -it elasticsearch:5.3
hansonwang99
2018-03-08 14:17:52 +08:00
@SlipStupig docker 玩了不想玩了,转裸机安装
liuzelei
2018-03-08 15:58:11 +08:00
为啥不用 docker

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/436040

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX