问题:Ambari下Kafka多IP监听配置

环境:Ambari 1.7.0 , Hadoop 2.2 Kafka 0.8.1.2.2.0.0

现象:

Ambari 中是不能配置Kafka的host.name配置项的,Ambari配置时,使用Ambar中为节点指定的hostname值,比如node1.google (Kafka自身的默认值是localhost)

一般在内网配置Ambari,用的hostname都是内网的IP,如 192.168.1.1 node1.google 192.168.1.2 node2.google 。这样导致Kafka启动时只监听192.168.1.x的IP。

虽然Ambari中可以有Custom kafka-broker,可以自定义选项,但是对host.name配置项是不起作用的,因为Ambari配置Kafka的host.name时根本不读这些用户输入的配置。

代码:

参见 git下目录(ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts)中的kafka.py 和 params.py 两个文件

可以看到首先是 params.py 读配置,然后kafka.py 根据配置写到Kafka的配置文件中去。

关键代码:

params.py

conf_dir = "/etc/kafka/conf"
kafka_user = config['configurations']['kafka-env']['kafka_user']
kafka_log_dir = config['configurations']['kafka-env']['kafka_log_dir']
kafka_pid_dir = status_params.kafka_pid_dir
kafka_pid_file = kafka_pid_dir+"/kafka.pid"
hostname = config['hostname']

 kafka.py

kafka_server_config = mutable_config_dict(params.config['configurations']['kafka-broker'])
kafka_server_config['broker.id'] = brokerid
kafka_server_config['host.name'] = params.hostname
kafka_server_config['kafka.metrics.reporters'] = params.kafka_metrics_reporters

解决:

根据kafka的文档,要是不配置host.name则默认监听0.0.0.0,所以我们只要在 kafka.py 中加入 del kafka_server_config['host.name'] 这句即可,注意要在Ambari-server主机上改,然后把该文件同步到Kafka的节点

上述环境下kafka.py所在目录是:/var/lib/ambari-agent/cache/stacks/HDP/2.2/services/KAFKA/package/scripts

配置好后,在Ambari上重启Kafka即可

Happy end。。。。

Ambari 不能配置 Kafka 监听host的问题的更多相关文章

  1. 配置静态监听解决ORA-12514错误的案例(转)

    今天做Linux下DG配置的时候,遇到一个现象,tnsname.ora文件配置都正常,tnsping也正常,监听也正常,但是仍然报ORA-12514错误:   SQL> set lin 130 ...

  2. 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志

    配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port=" protocol="HTTP/1.1 ...

  3. 配置静态监听解决ORA-12514错误的案例

    今天做Linux下DG配置的时候,遇到一个现象.tnsname.ora文件配置都正常,tnsping也正常,监听也正常.可是仍然报ORA-12514错误: SQL> set lin 130 pa ...

  4. kafka监听类

    package com.datad.dream.service; import com.alibaba.fastjson.JSON; import com.datad.dream.dao.KafkaI ...

  5. 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

    6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ...

  6. Linux centosVMware 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

    一.配置Tomcat监听80端口 关闭tomcat报错 [root@davery src]# /usr/local/tomcat/bin/shutdown.sh 重装tomcat即可 vim /usr ...

  7. Tomcat介绍、安装jdk、安装Tomcat、配置Tomcat监听80端口

    1.Tomcat介绍 2.安装jdk下载:wget -c http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8 ...

  8. CentOS7 配置 SSH监听多个端口方法

    一.修改ssh默认端口,防止暴力破解,让系统安全多一点点: i. 在配置文件/etc/ssh/sshd_config文件中修改 Port #AddressFamily any #ListenAddre ...

  9. 跟我一起学.NetCore之配置变更监听

    前言 通常程序中配置少不了,配置的修改也避免不了,配置的热更新为此给应用程序带来很大的便捷,不用重启,提高用户体验:但往往有时候需要对修改进行审计,也就是需要记录,有时候也会针对配置修改的时候触发相关 ...

随机推荐

  1. SpaceSniffer 硬盘透视软件

    SpaceSniffer是一个可以让您硬盘中文件和文件夹的分布情况的应用程序. 可以用来查找一些不易发现的文件,因为它提供一些特殊的搜索方式,特别是对于清理磁盘,找出占磁盘空间较大文件的位置很有帮助.

  2. rem 与 px 手机页面自适应

    rem相对于根元素html的,em相对于父元素的.rem和em相对大小的值默认情况下如果你没有在根元素指定参照值,那浏览器默认就是 1rem 为 16px,如果你指定了值假设为 20px,那 1rem ...

  3. ffmpeg音频编码

    在弄音频采集时,需要设置缓存的大小,如果只是简单的采集和直接播放PCM数据,缓存的大小一般不影响播放和保存. 但是,如果需要使用FFMpeg音频编码,这时,音频缓存的大小必须设置av_samples_ ...

  4. 使用OpenLDAP构建基础账号系统

    LDAP - Lightweight Directory Access Protocol,对该协议的具体应用,常见的是微软的Active Directory服务和Linux上的OpenLDAP组件. ...

  5. Definition of success-成功的定义

    "My definition of success is doing what you love. I fell many people do things because they fee ...

  6. spring mvc fastJson 自定义类型转换(返回数据) 实现对ObjectId类型转换

    json用的alibaba fastJson ValueFilter filter = new ValueFilter() { @Override public Object process(Obje ...

  7. MSSQL-实用小工具

    1.创建查询辅助表 create table nums (n int not null) alter table nums add constraint PK_NUMS primary key clu ...

  8. SQL分页语句

    有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活.先看看单条 SQL ...

  9. [2015.02.02]文本编码转换专家 v2.6

    软件名称:文本编码转换专家最新版本:v2.6操作系统:XP/2003/Win7/Win2008软件介绍:文本编码转换专家,界面简洁易用,功能强大实用.自动识别文件编码,有效转换成目标编码.真正的多线程 ...

  10. ASP.NET: 正在中止线程 错误原及解决方法

    #[操作记录]:2010-02-23 9:25:12  System.Threading.ThreadAbortException: 正在中止线程. 症状 如果使用 Response.End.Resp ...