CentOS 7.2部署Elasticsearch+Kibana+Zookeeper+Kafka(3)

2016-11-23 19:26:33,472 [myid:2] - INFO  [ProcessThread(sid:2 cport:-1)::PrepRequestProcessor@645] - Got user-level KeeperException when processing sessionid:0x25890ed3acc0000 type:create cxid:0x10 zxid:0x20000000b txntype:-1 reqpath:n/a Error Path:/admin Error:KeeperErrorCode = NoNode for /admin
2016-11-23 19:26:33,641 [myid:2] - INFO  [ProcessThread(sid:2 cport:-1)::PrepRequestProcessor@645] - Got user-level KeeperException when processing sessionid:0x25890ed3acc0000 type:setData cxid:0x1a zxid:0x20000000f txntype:-1 reqpath:n/a Error Path:/controller_epoch Error:KeeperErrorCode = NoNode for /controller_epoch
2016-11-23 19:26:33,682 [myid:2] - INFO  [ProcessThread(sid:2 cport:-1)::PrepRequestProcessor@645] - Got user-level KeeperException when processing sessionid:0x25890ed3acc0000 type:delete cxid:0x27 zxid:0x200000011 txntype:-1 reqpath:n/a Error Path:/admin/preferred_replica_election Error:KeeperErrorCode = NoNode for /admin/preferred_replica_election

原因���析:
机器有两块网卡,kafka的 host.name 开始只绑定在了内部IP上,另一块对外网卡无法访问,把值设置为空的话会kafka监听端口在所有的网卡上绑定,但是在外网访问时,客户端又遇到了 java.nio.channels.ClosedChannelException 异常信息,server端用tcpdump分析的时候发现客户端有传递kafka所在机器的机器名过来。在client里断点跟踪一下发现是 findLeader 的时候返回的元信息是机器名而不是IP。客户端无法解析这个机器名所以出现了前面的异常。

在server.properties 里还有另一个参数是解决这个问题的, advertised.host.name 参数用来配置返回的host.name值,把这个参数配置为外网IP地址即可。

这个参数默认没有启用,默认是返回的 java.net.InetAddress.getCanonicalHostName 的值,在我的mac上这个值并不等于 hostname 的值而是返回IP,但在linux上这个值就是 hostname 的值。

ElasticSearch 最新版本 2.20 发布下载了 

Linux上安装部署ElasticSearch全程记录 

Elasticsearch安装使用教程

ElasticSearch 配置文件译文解析

ElasticSearch集群搭建实例 

分布式搜索ElasticSearch单机与服务器环境搭建 

ElasticSearch的工作机制   

Elasticsearch的安装,运行和基本配置

使用Elasticsearch + Logstash + Kibana搭建日志集中分析平台实践 

Ubuntu 14.04搭建ELK日志分析系统(Elasticsearch+Logstash+Kibana)

Elasticsearch1.7升级到2.3实践总结 

ElasticSearch 的详细介绍请点这里
ElasticSearch 的下载地址请点这里 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/84b8a66ccca3b5e72b8d160c5edaba97.html