[HADOOP] Hbase : Hbase 마스터에 대한 호스트 이름을 지정하는 방법
HADOOPHbase : Hbase 마스터에 대한 호스트 이름을 지정하는 방법
두 개의 노드가있는 Hbase 분산 클러스터를 설정하는 데 어려움을 겪고 있습니다. 하나는 내 머신이고 다른 하나는 VirtualBox의 "호스트 전용"어댑터를 사용하는 VM입니다.
내 문제는 지역 서버 (VM 컴퓨터에서) 호스트 컴퓨터에서 실행중인 Hbase 마스터에 연결할 수 없다는 것입니다. Hbase 쉘에서 VM 머신 ( 'slave')의 regionserver에서 테이블을 생성, 나열, 나열 할 수 있지만 로그는 항상 표시합니다.
org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
java.net.ConnectException: Connection refused
이전에 'master'라는 이름의 노드 2 개와 마스터 노드 'master'와 'master'와 'slave'노드가 모두 슬레이브 노드로 작동하는이 클러스터에서 Hadoop, HDFS 및 MapReduce를 성공적으로 설치했습니다. VirtualBox의 vboxnet0 인터페이스에 바인드 된 이름 (/ etc / hostname에있는 호스트 이름이 다릅니다). 각 노드의 "slave.host.name"속성을 'master'및 'slave'로 지정합니다.
그것은 '마스터'의 Hbase 마스터가 항상 '로컬 호스트'호스트 이름으로 실행되는 것 같습니다. 나는 마스터 호스트 이름으로 hbase 마스터에 텔넷을 연결할 수 없습니다. 그래서 '마스터'로 Hbase 마스터에 대한 호스트 이름 사용을 지정하는 방법은 무엇입니까, 나는 마스터와 슬레이브 사이의 내부 인터페이스를 사용하는 ZooKeeper, 마스터, RegionServer에 대한 DNS 인터페이스에 대한 몇 가지 속성을 지정하려고했지만, 여전히 전혀 작동하지 않습니다 .
/ etc / hosts와 같이
127.0.0.1 localhost
127.0.0.1 ubuntu.mymachine
# For Hadoop
192.168.56.1 master
192.168.56.101 slave
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
해결법
-
==============================
1.@Infinity가 제공 한 대답은 버전 ~ 0.9.4에 속하는 것 같습니다.
@Infinity가 제공 한 대답은 버전 ~ 0.9.4에 속하는 것 같습니다.
1.1.4 버전.
에서 소스 코드에 따르면
org.apache.hadoop.hbase.master.HMaster
구성은 다음과 같아야합니다.
<property> <name>hbase.master.hostname</name> <value>master.local</value> <!-- master.local is the DNS name in my network pointing to hbase master --> </property>
이 값을 설정하면 지역 서버가 hbase master에 연결할 수 있습니다. 그러나 제 환경에서는 지역 서버가 다음에 대해 불평했습니다.
com.google.protobuf.ServiceException: java.net.SocketException: Invalid argument
모든 노드에서 open-jdk-7 대신 oracle JDK 8을 설치하면 문제가 사라졌습니다.
결론적으로, 여기 내 해결책이있다 :
-
==============================
2.내 호스트 파일은 다음과 같습니다.
내 호스트 파일은 다음과 같습니다.
127.0.0.1 localhost
192.168.2.118 eternal.mishin.com 영원한
호스트 파일을 다음과 같이 작성하십시오.
127.0.0.1 localhost
마스터 192.168.56.1
192.168.56.101 노예
hbase conf에 다음과 같은 항목을 넣습니다.
<property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.master</name> <value>master:60000</value> <description>The host and port that the HBase master runs at.</description> </property> <property> <name>hbase.regionserver.port</name> <value>60020</value> <description>The host and port that the HBase master runs at.</description> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.tmp.dir</name> <value>/home/cluster/Hadoop/hbase-0.90.4/temp</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> <description>Property from ZooKeeper's config zoo.cfg. The port at which the clients will connect. </description> </property>
만약 당신이 localhost를 사용하고 있다면 그것을 제거하고 hostfile에있는 namenode의 이름 인 "master"로 바꾸십시오.
네가 할 수있는 한 가지 더.
sudo gedit / etc / hostname
이것은 기본적으로 호스트 이름 파일을 열 것입니다 우분투는 마스터가 될 것입니다. 시스템을 다시 시작하십시오.
hbase에 대해 conf 디렉토리 안에 "regionserver"파일을 지정하십시오.이 항목을 넣으십시오.
석사 노예
그리고 restart.everything.
-
==============================
3.이 문제를 해결하는 데는 두 가지가 있습니다.
이 문제를 해결하는 데는 두 가지가 있습니다.
1) 모든 "localhost"이름을 제거하고 hmaster 노드의 이름을 가리키는 127.0.0.1 만 갖습니다.
2) hbase 마스터 노드에서 "hostname X"를 실행하여 호스트 이름이 / etc / hosts에있는 호스트 이름과 일치하는지 확인하십시오.
네트워킹 전문가가 아니기 때문에 이것이 중요한 이유는 말할 수 없습니다. :)
-
==============================
4.종종 잘못된 호스트 이름을 보내는 사육사의 오류가 발생합니다.
종종 잘못된 호스트 이름을 보내는 사육사의 오류가 발생합니다.
Zookeeper가 HBase 마스터 호스트로 보내는 내용을 확인할 수 있습니다.
사육사 bin 폴더 찾기 :
bin/zkCli.sh -server 127.0.0.1:2181 get /hbase/master
Zookeeper에 응답하는 HBase 마스터 IP를 제공해야하므로이 IP에 액세스 할 수 있어야합니다.
from https://stackoverflow.com/questions/9615707/hbase-how-to-specify-hostname-for-hbase-master by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hbase / filesystem의 hadoop namenode 연결에서 EOF 예외의 의미는 무엇입니까? (0) | 2019.07.12 |
---|---|
[HADOOP] 하이브 : SELECT AS 및 GROUP BY (0) | 2019.07.12 |
[HADOOP] PIG의 모든 레코드 집합에 대한 최대 / 최소 (0) | 2019.07.12 |
[HADOOP] mapred.reduce.parallel.copies를 조정하는 방법? (0) | 2019.07.12 |
[HADOOP] 손상된 입력 파일에서 hadoop 작업이 실패하는 것을 방지하는 방법 (0) | 2019.07.12 |