【发布时间】:2019-12-20 03:45:51
【问题描述】:
我将最新的 HDP 安装到 docker 容器中。
docker ps
>hortonworks/sandbox-proxy:1.0
>hortonworks/sandbox-hdp:3.0.1
Kafka 代理在 6667 端口运行,它工作正常。
>ssh hdfs@sandbox-hdp.hortonworks.com -p 2222
> echo "send test message" | kafka-console-producer.sh --broker-list sandbox-hdp.hortonworks.com:6667 --topic hotelReservation > /dev/null
>kafka-console-consumer.sh --bootstrap-server sandbox-hdp.hortonworks.com:6667 --topic test --from-beginning
唯一的问题是我无法访问 docker 容器外的 Kafka 代理。
更多故障排除信息:
我验证了所有端口都是开放的本地机器->代理->hdp
HDP 服务器:
hostname -I
172.18.0.2
netstat -vatn | grep 6667
tcp 0 0 172.18.0.2:6667 0.0.0.0:* LISTEN
代理服务器
hostname -I
172.18.0.3
nmap 172.18.0.2 -p 6667
6667/tcp open irc
netstat -vatn | grep 6667
tcp 0 0 0.0.0.0:6667 0.0.0.0:* LISTEN
我的本地机器:
nmap sandbox-hdp.hortonworks.com -p 6667
Host is up (0.000064s latency).
rDNS record for 127.0.0.1: localhost
PORT STATE SERVICE
6667/tcp open irc
注意:6668 也是开放的。
包含默认流配置(/etc/nginx/conf/stream.d/tcp-hdp.conf):
server {
listen 6668;
proxy_pass sandbox-hdp:6667;
}
所以我决定创建新的配置 http: /etc/nginx/conf/stream.d/tcp-hdp.conf
server {
listen 6667;
server_name sandbox-hdp.hortonworks.com;
location / {
proxy_pass http://sandbox-hdp:6667;
}
}
注意:我读到 (here) 我应该使用 advertised.listeners 来访问医生之外的代理:
>listeners=PLAINTEXT://0.0.0.0:6667
>advertised.listeners=PLAINTEXT://172.18.0.2:6667
但我确信这对我的情况不正确。我可以访问这个网络,问题是某种类型的仅限 Nginx 映射。
【问题讨论】:
-
从您的问题看来,您正在使用 nginx,但不清楚如何或为什么?如果您想通过网络访问 Kafka 代理,您需要正确配置您的 Advertisementd.listeners:rmoff.net/2018/08/02/kafka-listeners-explained
-
这是 Hortonworks 数据平台 (HDP) 默认架构。
-
我在 Ambari UI 自定义 kafka 代理选项中添加了 Advertisementd.listeners=sandbox-hdp.hortonworks.com:6667。我还在 HDP 主机 http-conf 中启用了 6667 / 2181。文件,proxy-deploy.sh,但是如果我从 Windows 主机操作系统 telnet 端口是打开的,(我的 Virtualbox 设置是 NAT,转发规则端口为它们打开),我仍然无法在 HDP 中使用来自 Kafka 的消息,我用了唯一的域名sandbox-hdp.hortonworks.com:6667,有人帮忙吗?已经一个月了,真的很郁闷!
标签: docker nginx apache-kafka ambari hdp