2017-04-20 2 views
0

나는 도커 컨테이너 안에 hbase를 시작하고 클라이언트 코드를 hbase rpc 서버 포트에 연결할 수있게하려고합니다. 문제는 항상 다릅니다 (임시 포트 범위에서 임의로 선택됨).hbase에 RPC 서버 포트를 지정하는 방법은 무엇입니까?

내가 "hbase.regionserver.port"또는 "hbase.master.port"을 설정하여 포트를 대체 할 수 있습니다 볼 (라인 1078에서 https://github.com/apache/hbase/blob/9facfa550f1e7386be3a04d84f7e8013f5002965/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java,을 BindAddress) HBase를 코드를 통해 찾고있다. 이러한 속성은 내가 그걸 어떻게 변경합니까 0

에 해결 된 것처럼 포트가 여전히 랜덤 -

나는 어떤 영향 HBase를-conf.xml뿐만 않고 이러한 설정을 시도?

+0

기본적으로 마스터 및 regionserver resp에 대해 '16000'및 '16020'입니다. 무엇이 당신을 무작위로 선택했다고 생각합니까? – franklinsijo

+0

hbase log :'ipc.RpcServer : master/localhost/127.0.0.1 : 0 : 포트에서 듣고있는 10 명의 리더 = 40897' 이 경우 포트는'40897'이지만 매번 다릅니다. 다른 속성에 의해 제어 될 수도 있지만, 소스 코드에서 ** hbase.regionserver.port **를보아야합니다. 맞습니까? – Art

답변

0

해결책을 찾았습니다. 기본적으로 Hbase은 독립형 모드에서 시작하고 포트는 무작위로 선택됩니다. 그래서 doc을 읽은 후 나는 다음과 같이 할 수있는 HBase를-site.xml의 편집 : 나는 그것이 분산 모드에서 실행 만들고있어

<configuration> 
<property> 
    <name>hbase.cluster.distributed</name> 
    <value>true</value> 
</property> 
<property> 
    <name>hbase.regionserver.ipc.address</name> 
    <value>0.0.0.0</value> 
</property> 
<property> 
    <name>hbase.master.ipc.address</name> 
    <value>0.0.0.0</value> 
</property> 

공지 사항 (제 경우에 의사 배포) 그리고 master와 regionserver 모두에 대해 ipc 수신 주소를 0.0.0.0으로 설정하십시오 (그렇지 않으면 여전히 도커 컨테이너 외부에서 연결할 수 없습니다). 이러한 변경 후에 포트가 안정되어 모든 것이 정상적으로 처리됩니다.

추가 참고 사항 : 배포 모드로 전환 한 후 hbase-env.sh에서 JAVA_HOME을 구체적으로 설정해야했습니다. 이것은 워드 프로세서에서 찾을 수 있습니다.

관련 문제