Я установил последнюю версию HDP в контейнер докеров.
docker ps
>hortonworks/sandbox-proxy:1.0
>hortonworks/sandbox-hdp:3.0.1
Брокер Kafka работает на порту 6667 и работает нормально.
>ssh [email protected] -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
Единственная проблема в том, что у меня нет доступа к брокеру 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;
}
}
Примечание. я прочитал (здесь), что я следует использовать ads.listeners для доступа к брокеру вне доктора:
>listeners=PLAINTEXT://0.0.0.0:6667
>advertised.listeners=PLAINTEXT://172.18.0.2:6667
но я уверен, что это неправильно для моего случая. У меня есть доступ в эту сеть, проблема в каком-то типе сопоставления только Nginx.