设为首页 收藏本站
查看: 1399|回复: 0

[经验分享] ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决

[复制链接]

尚未签到

发表于 2019-1-29 11:08:58 | 显示全部楼层 |阅读模式
  说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文检索,功能很牛逼,但是接到了任务不想做也不行,
  leader让我搭建一下分布式的ES集群环境,用来支持企业信用数据的检索,刚开始宝宝一脸蒙逼,只是之前自己本地搭建过一个测试玩过,开发任务也是忙的不行,
  一直也没时间好好的研究一下,惭愧。《Elasticsearch服务器开发》已经备好,只能边学边开发了,希望本篇拙文可以帮到有需要的coder们。----jstarseven
  话不多说,开始搭建环境,准备好集群搭建需要的软硬件:
  1.服务器(系统版本 centos7)三台(没有的话,可以在一台pc上尝试不同端口):
  1. 172.16.31.220
  2. 172.16.31.221
  3. 172.16.31.224
  2.JDK (下载最新版本JDK,至少JDK1.8,最新版本ES需要1.8的jdk环境):
  博主的为:

  配置JDK1.8环境变量(自行解决。。。)
  3.elasticsearch-5.3.1.tar.gz(下载地址:https://www.elastic.co/downloads/elasticsearch)
  在220服务器/usr/local/下解压 tar -zxvf elasticsearch-5.3.1.tar.gz,修改配置文件,vim elasticsearch-5.3.1/config/elasticsearch.yml
  220服务器,原有配置文件:


  修改之后的配置文件:


  解释:
  cluster.name: es-cluster-5.3.1   配置集群名称 三台服务器保持一致
  node.name: node-1                 配置单一节点名称,每个节点唯一标识
  network.host: 0.0.0.0              设置绑定的ip地址
  http.port: 9200                      端口
  discovery.zen.ping.unicast.hosts: ["172.16.31.220", "172.16.31.221","172.16.31.224"]   集群节点ip或者主机
  discovery.zen.minimum_master_nodes: 3    设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
  下面两行配置为haad插件配置,三台服务器一致。
  http.cors.enabled: true
  http.cors.allow-origin: "*"
  ok,220服务器修改完毕。
  [转载请注明原文出处]:http://www.cnblogs.com/jstarseven/p/6803054.html
  221服务器ES配置文件修改   vim elasticsearch-5.3.1/config/elasticsearch.yml
  cluster.name: es-cluster-5.3.1
  node.name: node-2
  network.host: 0.0.0.0
  http.port: 9200
  discovery.zen.ping.unicast.hosts: ["172.16.31.220", "172.16.31.221","172.16.31.224"]
  discovery.zen.minimum_master_nodes: 3
  http.cors.enabled: true
  http.cors.allow-origin: "*"
  224服务器ES配置文件修改   vim elasticsearch-5.3.1/config/elasticsearch.yml
  cluster.name: es-cluster-5.3.1
  node.name: node-3
  network.host: 0.0.0.0
  http.port: 9200
  discovery.zen.ping.unicast.hosts: ["172.16.31.220", "172.16.31.221","172.16.31.224"]
  discovery.zen.minimum_master_nodes: 3
  http.cors.enabled: true
  http.cors.allow-origin: "*"
  到这里集群就算配置完毕了,但是ES5.3.1不允许使用root用户运行,不然启动会报错,Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
  所以新建用户(三台服务器,都要新建)
  groupadd elsearch                                             新增elsearch用户组
  useradd elsearch -g elsearch -p elasticsearch        创建elsearch用户
  chown -R elsearch:elsearch ./elasticsearch-5.3.1    用户目录权限
  运行操作,开启三台服务
  切换到elsearch用户下,su elsearch,cd /usr/local/elasticsearch-5.3.1  执行命令./bin/elasticsearch
  观察运行日志:

  可以看到集群已经成功运行,选举了node-3节点为master节点
  测试,节点启动情况: curl  http://172.16.31.220:9200/,集群情况安装好了head插件,即可显示

  当然配置完成之后,启动的时候出现了很多的错误,错误汇总:
  问题一:
  [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter:
  Java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledinatorg.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349) ~[elasticsearch-5.0.0.jar:5.0.0]
  at org.elasticsearch.bootstrap.Seccomp.init(Seccomp.java:630) ~[elasticsearch-5.0.0.jar:5.0.0]
  原因:只是一个警告,主要是因为Linux版本过低造成的。
  解决方案:1、重新安装新版本的Linux系统 2、警告不影响使用,可以忽略
  问题二:
  ERROR: bootstrap checks failed
  max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
  原因:无法创建本地文件问题,用户最大可创建文件数太小
  解决方案:
  切换到root用户,编辑limits.conf配置文件, 添加类似如下内容:
  vi /etc/security/limits.conf
  添加如下内容:
  *  soft nofile 65536
  * hard nofile 131072
  * soft nproc 2048
  * hard nproc 4096
  备注:* 代表Linux所有用户名称(比如 hadoop)
  保存、退出、重新登录才可生效
  问题三:
  max number of threads [1024] for user [es] likely too low, increase to at least [2048]
  原因:无法创建本地线程问题,用户最大可创建线程数太小
  解决方案:切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件。
  vi /etc/security/limits.d/90-nproc.conf
  找到如下内容:
  * soft nproc 1024
  #修改为
  * soft nproc 2048
  问题四:
  max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
  原因:最大虚拟内存太小
  解决方案:切换到root用户下,修改配置文件sysctl.conf
  vi /etc/sysctl.conf
  添加下面配置:
  vm.max_map_count=655360
  并执行命令:
  sysctl -p
  然后重新启动elasticsearch,即可启动成功。
  问题五:
  ElasticSearch启动找不到主机或路由
  原因:ElasticSearch 单播配置有问题
  解决方案:
  检查ElasticSearch中的配置文件
  vi  config/elasticsearch.yml
  找到如下配置:
  discovery.zen.ping.unicast.hosts: ["172.16.31.220", "172.16.31.221","172.16.31.224"]
  一般情况下,是这里配置有问题,注意书写格式
  问题六:
  org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream
  原因:ElasticSearch节点之间的jdk版本不一致
  解决方案:ElasticSearch集群统一jdk环境
  问题七:
  Unsupported major.minor version 52.0
  原因:jdk版本问题太低
  解决方案:更换jdk版本,ElasticSearch5.0.0支持jdk1.8.0
  问题八:
  bin/elasticsearch-plugin install license
  ERROR: Unknown plugin license
  原因:ElasticSearch5.0.0以后插件命令已经改变
  解决方案:使用最新命令安装所有插件
  bin/elasticsearch-plugin install x-pack
  问题九:
  启动异常:ERROR: bootstrap checks failed
  system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
  问题原因:因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899
  解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
  bootstrap.memory_lock: false
  bootstrap.system_call_filter: false
  到这里基本上集群搭建起来就没什么问题了,如果还不能正常启动,麻烦各位解决了,通知我一声,我也好记录一下,哈哈哈。
  下面说ElasticSearch-head插件在ElasticSearch-5.3.1中的安装使用:
  1.安装nodejs环境
1) wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz2) tar -zxvf node-v4.4.7-linux-x64.tar.gz3) export PATH=$PATH:/opt/node-v4.4.7-linux-x64/bin  测试  node --version
  v4.4.7
  2.安装npm
  下载nmp安装包,一般nodejs包中已经包含了,设置过环境变量就可以直接使用nmp命令了,如果没有安装,先下载:
  官网地址:www.npmjs.com
  淘宝地址:https://npm.taobao.org/mirrors/npm/
  安装使用如下命令:
  node cli.js install npm -gf  3.安装grunt
  1)安装grunt命令行工具grunt-cli      npm install -g grunt-cli
  2)安装grunt及其插件                     npm install grunt --save-dev
  可以使用grunt -version查看安装版本情况
  然后,在220服务器上,
  git clone git://github.com/mobz/elasticsearch-head.git
  cd elasticsearch-head
  npm install
  npm install grunt --save
  修改elasticsearch-head下Gruntfile.js文件,默认监听在127.0.0.1下9200端口,

  然后cd /usr/local/elasticsearch-head  执行grunt server
  浏览器访问 http://172.16.31.220:9100/
  出现一下界面:

  ok 到此,ElasticSearch-5.3.1集群,以及head插件的安装就结束了。
  [转载请注明原文出处]:htt p://www.c n  blogs.  com/jsta  rs  ev n/p/6 8 030 54.html,这么多字,博主码的也挺累的,谢谢合作。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669109-1-1.html 上篇帖子: Windows环境搭建ElasticSearch 5.*并配置head 下篇帖子: 全文搜索引擎Elasticsearch初探
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表