前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 环境下 ElasticSearch 6.0.1 集群安装笔记

Linux 环境下 ElasticSearch 6.0.1 集群安装笔记

作者头像
Fireflywang
发布2022-08-01 09:13:55
4670
发布2022-08-01 09:13:55
举报
文章被收录于专栏:Fireflywang's TechBlogger

1.下载

下载地址于 https://www.elastic.co/downloads/elasticsearch , 当时下载是 6.0.1 版本, 目前 (2017.12.14) 为 6.1.0 版本,以下是否适用,不予验证。

此版本为编译好的版本,因此无需重新编译。

2. 安装

安装比较简单,因为上面下载的.zip版本为编译好的版本,因此无需重新编译,需要注意的是安装环境。

安装完毕后,进入es目录,即

代码语言:javascript
复制
cd $ES_HOME (即elasticsearch安装目录)
bin/elasticsearch

即可启动,启动后可能有各种问题,见 3. 注意事项

下面附属笔者的环境:

  1. Linux 2.6 (CentOS rebuild)
  2. JDK 1.8.0_144

3. 注意事项

  • 请修改 config/elasticsearch.yml 中的 cluster.name, 此key是用来标识集群名的,比如 cluster.name:index_search_for_dev
  • 请修改 config/elasticsearch.yml 中的 network.host, 此key标识机器的网络地址,默认是回环地址需要修改,比如 network.host:${外网IP}
  • JDK的版本需在1.8版本及以上
  • 如果启动的时候出现 java.lang.UnsupportedOperationException: seccomp unavailable 异常,有几个选择 (1) 忽略它,因为es尝试使用seccomp来加速启动,但是因为linux内核版本过低 ( < Linux3.2) 不支持,不会影响es的启动和功能。 (2) 升级linux内核 (3) 通过配置文件关闭它,修改config/elasticsearch.yml配置中的bootstrap.system_call_filter: false来关闭启动的seccomp功能
  • 如果启动时出现 max file decriptors [4096] for elasticsearch process is too low, increase to at least [65536] 错误, 那么就需要ulimit -n查看一下文件描述符,默认是1024 切换到root账户,编辑 /etc/security/limits.conf 文件,添加两行
代码语言:javascript
复制
* soft    nofile    65536
* hard    nofile    65536

直接重新登陆用ulimit -n就能看到效果(笔者这边需要一次切换用户才起效力)

  • 如果启动出现 max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] 错误, 需要使用root用户修改 /etc/sysctl.conf 文件, 添加:
代码语言:javascript
复制
vm.max_map_count=655360

然后执行命令:

代码语言:javascript
复制
sysctl -p

4. 集群部署

如果是单机部署,以上就可以使用了, 但是集群部署需要重新配置一下

配置文件(建议, 参考 https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html):

代码语言:javascript
复制
node.name: ${HOSTNAME}
network.host: 设置为当前主机的IP(Non-loopback)
discovery.zen.ping.unicast.hosts:[ip1,ip2,domain3,hostname4](提供几个集群内主机IP,按官方说法,只是 seeds, 无需全部)
master_eligible_nodes=有资格被设置为主节点的节点数/2 + 1 (有资格被设置为主节点的配置为node.master=true,也是默认设置为均可,这是为了防止集群脑裂的)

使用 SCP SSH复制命令进行集群部署

代码语言:javascript
复制
scp -r $LOCAL_DIR $REMOTE_IP:$REMOTE_DIR 

启动节点,会有 with same id 错误,因为node-id使用了data目录下的文件进行了Hash,因此只需要将data目录下的文件全部删除,启动即可,具体原因参考 https://github.com/elastic/elasticsearch/issues/21405

具体的SSH免密登录方式,请查看 http://www.cnblogs.com/lzxlfly/p/7221890.html

5. 验证

ElasticSearch 提供了RestAPI (9200端口, 默认), 因此使用curl命令可进行连接

代码语言:javascript
复制
curl -XGET -H 'Content-type:application/json' 'http://IP:PORT/_cluster/health'

参考资料

  1. https://github.com/elastic/elasticsearch/issues/21405 关于node-id的讨论
  2. https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html ES官方配置指南
  3. https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html 其他环境的安装参考
  4. https://www.cnblogs.com/sloveling/p/elasticsearch.html 前人路过的坑
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.下载
  • 2. 安装
  • 3. 注意事项
  • 4. 集群部署
  • 5. 验证
  • 参考资料
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档