[HADOOP] Hbase managed zookeeper가 갑자기 zookeeper quorum 대신 localhost에 연결하려고했습니다.
HADOOPHbase managed zookeeper가 갑자기 zookeeper quorum 대신 localhost에 연결하려고했습니다.
대규모 문제에 대해 테이블 매퍼 (table mappers)와 감속기 (reducers)를 사용하여 테스트를 진행했습니다. 특정 시점 이후 작업이 80 % 완료되었을 때 내 감속기가 실패하기 시작했습니다. syslogs를 볼 때 내가 알 수있는 것에서는 내 동물원 중 한 명이 쿼럼의 다른 동물원 주인과는 반대로 로컬 호스트에 연결하려고 시도하고 있다는 것입니다
이상하게도 맵핑이 진행 중일 때 다른 노드에 연결하는 것만으로도 문제가있는 것으로 보입니다. 여기에 무슨 일이 벌어지고 있는지 알아내는 것과 관련이있는 syslog의 선택된 부분이 있습니다.
2014-06-27 09:44:01,599 INFO [main] org.apache.zookeeper.ZooKeeper: Initiating client connection, connectString=hdev02:5181,hdev01:5181,hdev03:5181 sessionTimeout=10000 watcher=hconnection-0x4aee260b, quorum=hdev02:5181,hdev01:5181,hdev03:5181, baseZNode=/hbase
2014-06-27 09:44:01,612 INFO [main] org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper: Process identifier=hconnection-0x4aee260b connecting to ZooKeeper ensemble=hdev02:5181,hdev01:5181,hdev03:5181
2014-06-27 09:44:01,614 INFO [main-SendThread(hdev02:5181)] org.apache.zookeeper.ClientCnxn: Opening socket connection to server hdev02/172.17.43.36:5181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
2014-06-27 09:44:01,615 INFO [main-SendThread(hdev02:5181)] org.apache.zookeeper.ClientCnxn: Socket connection established to hdev02/172.17.43.36:5181, initiating session
2014-06-27 09:44:01,617 INFO [main-SendThread(hdev02:5181)] org.apache.zookeeper.ClientCnxn: Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
2014-06-27 09:44:01,723 WARN [main] org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper, quorum=hdev02:5181,hdev01:5181,hdev03:5181, exception=org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
2014-06-27 09:44:01,723 INFO [main] org.apache.hadoop.hbase.util.RetryCounter: Sleeping
***
org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl: finalMerge called with 1 in-memory map-outputs and 1 on-disk map-outputs
2014-06-27 09:55:12,012 INFO [main] org.apache.hadoop.mapred.Merger: Merging 1 sorted segments
2014-06-27 09:55:12,013 INFO [main] org.apache.hadoop.mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 33206049 bytes
2014-06-27 09:55:12,208 INFO [main] org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl: Merged 1 segments, 33206079 bytes to disk to satisfy reduce memory limit
2014-06-27 09:55:12,209 INFO [main] org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl: Merging 2 files, 265119413 bytes from disk
2014-06-27 09:55:12,209 INFO [main] org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl: Merging 0 segments, 0 bytes from memory into reduce
2014-06-27 09:55:12,210 INFO [main] org.apache.hadoop.mapred.Merger: Merging 2 sorted segments
2014-06-27 09:55:12,212 INFO [main] org.apache.hadoop.mapred.Merger: Down to the last merge-pass, with 2 segments left of total size: 265119345 bytes
2014-06-27 09:55:12,279 INFO [main] org.apache.zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=90000 watcher=hconnection-0x65afdbbb, quorum=localhost:2181, baseZNode=/hbase
2014-06-27 09:55:12,281 INFO [main] org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper: Process identifier=hconnection-0x65afdbbb connecting to ZooKeeper ensemble=localhost:2181
2014-06-27 09:55:12,282 INFO [main-SendThread(localhost.localdomain:2181)] org.apache.zookeeper.ClientCnxn: Opening socket connection to server localhost.localdomain/127.0.0.1:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
2014-06-27 09:55:12,283 WARN [main-SendThread(localhost.localdomain:2181)] org.apache.zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
2014-06-27 09:55:12,384 WARN [main] org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper, quorum=localhost:2181, exception=org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
2014-06-27 09:55:12,384 INFO [main] org.apache.hadoop.hbase.util.RetryCounter: Sleeping 1000ms before retry #0...
2014-06-27 09:55:13,385 INFO [main-SendThread(localhost.localdomain:2181)] org.apache.zookeeper.ClientCnxn: Opening socket connection to server localhost.localdomain/127.0.0.1:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
2014-06-27 09:55:13,385 WARN [main-SendThread(localhost.localdomain:2181)] org.apache.zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing
***
org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper, quorum=localhost:2181, exception=org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
2014-06-27 09:55:13,486 ERROR [main] org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 1 attempts
2014-06-27 09:55:13,486 WARN [main] org.apache.hadoop.hbase.zookeeper.ZKUtil: hconnection-0x65afdbbb, quorum=localhost:2181, baseZNode=/hbase Unable to set watcher on znode (/hbase/hbaseid)
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
나는 정확하게 hbase-site.xml의 관련 부분이 올바르게 구성되었는지 확신합니다.
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>5181</value>
<description>Property from ZooKeeper's config zoo.cfg.
The port at which the clients will connect.
</description>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>10000</value>
<description></description>
</property>
<property>
<name>hbase.client.retries.number</name>
<value>10</value>
<description></description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hdev01,hdev02,hdev03</value>
<description></description>
</property>
지금까지 내가 hdev03 말할 수있는이 모든 문제가있는 유일한 서버입니다. 모든 관련 포트를 넷 스테이션으로 연결해도 이상한 점은 보이지 않습니다.
해결법
-
==============================
1.Spark on Yarn을 통해 HBase를 실행할 때도 동일한 문제가 발생했습니다. 갑자기 쿼럼 대신 로컬 호스트에 연결하려고 할 때까지는 아무 문제가 없었습니다. HBase 호출로 문제가 해결되기 전에 포트 및 쿼럼을 프로그래밍 방식으로 설정
Spark on Yarn을 통해 HBase를 실행할 때도 동일한 문제가 발생했습니다. 갑자기 쿼럼 대신 로컬 호스트에 연결하려고 할 때까지는 아무 문제가 없었습니다. HBase 호출로 문제가 해결되기 전에 포트 및 쿼럼을 프로그래밍 방식으로 설정
conf.set("hbase.zookeeper.quorum","my.server") conf.set("hbase.zookeeper.property.clientPort","5181")
나는 MapR을 사용하고 있으며 "비정상적인"(5181) 사육자 포트가있다.
-
==============================
2.주어진 정보로 무슨 일이 일어나고 있는지 말하기는 어렵습니다. Hadoop Stack (특히 HBase)이 DNS 나 호스트 파일의 잘못된 구성에 조금이라도 적대적인 것으로 나타났습니다.
주어진 정보로 무슨 일이 일어나고 있는지 말하기는 어렵습니다. Hadoop Stack (특히 HBase)이 DNS 나 호스트 파일의 잘못된 구성에 조금이라도 적대적인 것으로 나타났습니다.
hbase-site.xml의 정족수가 좋아 보이기 때문에 네트워크 / 호스트 이름 확인 관련 구성을 확인하기 시작합니다.
이것들은 내가 이런 종류의 문제로 보게 될 방향의 몇 가지 예일뿐입니다. 희망이 도움이됩니다!
-
==============================
3.spark-submit 명령에 '--driver-class-path ~ / hbase-1.1.2 / conf'를 추가하면 127.0.0.1 대신 구성된 사육사 서버를 찾을 수 있습니다.
spark-submit 명령에 '--driver-class-path ~ / hbase-1.1.2 / conf'를 추가하면 127.0.0.1 대신 구성된 사육사 서버를 찾을 수 있습니다.
from https://stackoverflow.com/questions/24456484/hbase-managed-zookeeper-suddenly-trying-to-connect-to-localhost-instead-of-zooke by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Java로 원격 HDFS 파일 읽기 (0) | 2019.06.23 |
---|---|
[HADOOP] YARN에서 독점적 인 FIFO 응용 프로그램 대기열을 구성하는 방법은 무엇입니까? (0) | 2019.06.23 |
[HADOOP] 네임 노드 HA (UnknownHostException : nameservice1) (0) | 2019.06.22 |
[HADOOP] 클러스터에서 Mapper 입력으로 로컬 파일 시스템 디렉토리 실행 (0) | 2019.06.22 |
[HADOOP] 다음 필드는 무엇입니까? 'totalSize'및 'rawDataSize'는 하이브의 DESCRIBE EXTENDED 쿼리 출력에서의 의미입니까? (0) | 2019.06.22 |