Ambari 不能配置 Kafka 监听host的问题
问题: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的问题的更多相关文章
- 配置静态监听解决ORA-12514错误的案例(转)
今天做Linux下DG配置的时候,遇到一个现象,tnsname.ora文件配置都正常,tnsping也正常,监听也正常,但是仍然报ORA-12514错误: SQL> set lin 130 ...
- 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志
配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port=" protocol="HTTP/1.1 ...
- 配置静态监听解决ORA-12514错误的案例
今天做Linux下DG配置的时候,遇到一个现象.tnsname.ora文件配置都正常,tnsping也正常,监听也正常.可是仍然报ORA-12514错误: SQL> set lin 130 pa ...
- kafka监听类
package com.datad.dream.service; import com.alibaba.fastjson.JSON; import com.datad.dream.dao.KafkaI ...
- 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ...
- Linux centosVMware 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
一.配置Tomcat监听80端口 关闭tomcat报错 [root@davery src]# /usr/local/tomcat/bin/shutdown.sh 重装tomcat即可 vim /usr ...
- Tomcat介绍、安装jdk、安装Tomcat、配置Tomcat监听80端口
1.Tomcat介绍 2.安装jdk下载:wget -c http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8 ...
- CentOS7 配置 SSH监听多个端口方法
一.修改ssh默认端口,防止暴力破解,让系统安全多一点点: i. 在配置文件/etc/ssh/sshd_config文件中修改 Port #AddressFamily any #ListenAddre ...
- 跟我一起学.NetCore之配置变更监听
前言 通常程序中配置少不了,配置的修改也避免不了,配置的热更新为此给应用程序带来很大的便捷,不用重启,提高用户体验:但往往有时候需要对修改进行审计,也就是需要记录,有时候也会针对配置修改的时候触发相关 ...
随机推荐
- Android之ScrollView嵌套ListView和GridView冲突
由于ListView,GridView本身都继承于ScrollView,一旦在ScrollView中嵌套ScrollView, 在ScrollView中嵌套使用ListView或者GridView,L ...
- 因特网服务的类型(协议),目前最流行的类型是 http协议
在学习超链接中,在HTML上点击QQ图标时会 自动的启动自己本地QQ客户端,其方法是使用了超链协议 一些常用协议如下: file资源是本地计算机上的文件.格式file:/// ftp通过 FTP访问资 ...
- php部分,一个用递归无限分类的方法
<?php $data[]=array('id'=>1,'parentid'=>0,'name'=>'中国'); $data[]=array('id'=>2,'paren ...
- Eclipse 中 Tomcat启动卡100%(preparing launch delegate...)
我自己遇到这个问题的时候去百度了好几天,没找到我的解决方案,因为我的错误和别人不一样,但提示却和别人一样,在tomcat启动到100%的时候,卡住了,最后显示45秒不够启动,建议我增加时间,所以结果可 ...
- 配置DNS服务器,实现局域网内的地址正反向解析
这里会用到BIND(Berkeley Internet Name Domain) 首先查询下本地bind有没有安装 yum list all | grep "^bind" 如果没有 ...
- android Handler.btionMessage()与Message.obtain()的区别
类概述 定义一个包含任意类型的描述数据对象,此对象可以发送给Handler.对象包含两个额外的int字段和一个额外的对象字段,这样可以使得在很多情况下不用做分配工作. 尽管Message的构造器是公开 ...
- 关于vue.js的计算属性练习代码
参照官网联系如下: <!DOCTYPE html><html lang="en"><head> <meta charset="U ...
- cocos2dx 3.x tolua 分析
cocos2dx 3.x 版本已经出到3.10了,终于决定要进行引擎版本升级,c++配合lua进行游戏开发,从3.x版本开始cocos使用了新的tolua方式,由于不懂python,折腾tolua搞的 ...
- C++ exception
从没用过C++STL中的exception(异常类),在使用rapidxml,操作XML文件时,发现在一个抛出异常的错误.关注了下,就模范着做. 我也专门写了个函数来分配内存,如果发现分配不成功,就抛 ...
- makefile编写要点
1.wildcard : 扩展通配符 2.notdir : 去除路径 3.patsubst :替换通配符 格式:$(patsubst <pattern>,<replacement&g ...