복붙노트

[HADOOP] 밖에서 카프카를 연결하는 문제

HADOOP

밖에서 카프카를 연결하는 문제

나는 kafka 서버에 hortonwork Sandbox를 사용하고 있습니다. Java 코드로 Eclipse에서 kafka를 연결하려고합니다. 이 구성을 사용하여 메시지를 보내려면 제작자에 연결하십시오.

metadata.broker.list=sandbox.hortonworks.com:45000
serializer.class=kafka.serializer.DefaultEncoder
zk.connect=sandbox.hortonworks.com:2181
request.required.acks=0
producer.type=sync

sandbox.hortonworks.com은 내가 연결하는 샌드 박스 이름입니다.

kafka server.properties에서이 구성을 변경했습니다.

host.name=sandbox.hortonworks.com

advertised.host.name=System IP(on which my eclipse is running)
advertised.port=45000

항구 포워딩도 했어.

이클립스에서 kafka 서버에 연결할 수 있지만 메시지를 보내는 동안 예외가 발생했습니다. 예외 "3 회 시도 후 메시지를 보내지 못했습니다."

해결법

  1. ==============================

    1.먼저 여기에 설명 된대로 Hortonworks Sandbox VM에 대한 호스트 전용 네트워크를 구성했는지 확인하십시오.

    먼저 여기에 설명 된대로 Hortonworks Sandbox VM에 대한 호스트 전용 네트워크를 구성했는지 확인하십시오.

    http://hortonworks.com/community/forums/topic/use-host-only-networking-for-the-virtual-machine/

    이 작업을 수행 한 후 샌드 박스 VM에 IP (예 : 192.168.56.101)가 있어야하며 SSH와 같은 호스트를 통해 연결할 수 있어야합니다.

    $ ssh root@192.168.56.101
    

    그런 다음 Ambari를 http://192.168.56.101:8080/에서 열고 Kafka 구성을

    listeners=PLAINTEXT://0.0.0.0:6667
    advertised.listeners=PLAINTEXT://192.168.56.101:6667 
    

    후자의 속성은 "Custom kafka-broker"섹션에 추가해야합니다 (http://hortonworks.com/community/forums/topic/ambari-alerts-how-to-change-kafka-port/ 참조).

    그런 다음 Ambari를 통해 카프카를 시작 / 재시작하십시오. 이제 Hortonworks Sandbox VM 외부에서 Kafka에 액세스 할 수 있습니다. 예를 들어 샌드 박스 VM을 사용하여 샌드 박스 VM 외부에서이를 테스트 할 수 있습니다. Kafka 배포판의 Kafka 콘솔 제작자

    $ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    $ bin/kafka-console-producer.sh --topic test --broker-list 192.168.56.101:6667
    
  2. ==============================

    2.설정 tweeking 거의 일주일 후, 나는 결국 그것을 얻을. asmaier의 대답과 유사하지만 나와 같은 클라우드 서버를 사용하는 경우 : Azure Sandbox-hdp, 원격 소비자 / 제작자를 통해 pub / sub를 시도합니다.

    설정 tweeking 거의 일주일 후, 나는 결국 그것을 얻을. asmaier의 대답과 유사하지만 나와 같은 클라우드 서버를 사용하는 경우 : Azure Sandbox-hdp, 원격 소비자 / 제작자를 통해 pub / sub를 시도합니다.

    첫 번째 SSH를 하늘빛으로 Ambari 웹 UI 로컬 호스트 : 8080, add

    listeners=PLAINTEXT://0.0.0.0:6667
    advertised.listeners=PLAINTEXT://127.0.0.1:6667
    

    터미널 루트에서 hortonwroks 명령 페이지 샌드 박스와 같은 고정 포트 포워딩 설정

    vi start_scripts/start_sandbox.sh
    

    목록에 포트 6667 추가

    첫 번째 SSH를 하늘빛 플러스 터널링 6667에 넣으십시오.

    다음 cmd를 작성 : 또는 귀하의 실행은 자신의 자바 / C #을 스크립트

    kafka\bin\windows>kafka-console-producer --broker-list localhost:9092 --topic test
    

    지금 당장 귀찮게하는 것은 kafka가 실제 공개 IP / Azure에 직접 메시지를 푸시 할 수있는 방법을 찾지 못하는 것입니다. 중개인을 통한 데이터 트래픽은 내부적으로 부두 내부에서만 작동 할 수 있습니다.

  3. from https://stackoverflow.com/questions/29161313/issue-in-connecting-kafka-from-outside by cc-by-sa and MIT license