복붙노트

[HADOOP] java를 사용하는 Titan-1.0.0 + Hbase-0.98.20의 원격 모드에서 연결 오류

HADOOP

java를 사용하는 Titan-1.0.0 + Hbase-0.98.20의 원격 모드에서 연결 오류

Titan 데이터베이스를 배우고 있습니다. 로컬 모드에서 성공적으로 실행했습니다. 이제 Titan 문서에 소개 된 "원격 서버 모드"에서 Titan 데이터베이스를 사용하려고합니다. 내 Titan 버전은 Titan-1.0.0-hadoop1입니다.

cloud12 및 cloud13을 포함하여 LAN에 클러스터가 있습니다. 나는 그것에 hadoop-1.2.1을 설치했고, 마스터는 cloud12이고, 슬레이브는 cloud13입니다.

그래프 생성에 대한 성능을 테스트하고 싶습니다. 따라서 독립 zookeeper-3.4.6 및 cloud12에서 elasticsearch를 사용하여 시스템 cloud12에서 의사 분산 모드로 Hbase-0.98.20을 시작하도록 설계했습니다. (hbase-env를 수정했습니다. sh, zoo.cfg에서 기본 포트 2181 사용)

하둡과 HBase는 정기적으로 작동하는 것 같습니다. Jps로 두 서버를 확인했으며 HBase 셸을 통해 HBase도 확인했습니다.

hbase-site.xml의 구성은 다음과 같습니다.

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://cloud12:9000/hbase</value>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.master.port</name>
<value>60000</value>
</property>

<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/Titan/hbase/zookeeperDir</value>
</property>

<property>
<name>hbase.tmp.dir</name>
<value>/home/Titan/hbase/tmpDir</value>
</property>

<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>

<property>
<name>zookeeper.znode.parent</name>
<value>/hbase-unsecure</value>
</property>

<property>
<name>hbase.zookeeper.property.maxClientCnxns</name>
<value>600</value>
</property>
</configuration>

cloud 6 (이 시스템에 Titan-1.0.0을 설치 함)이라는 LAN의 다른 시스템에서 Eclipse에서 프로그램을 실행할 때 혼란스러운 오류 정보가 출력 로그에 인쇄됩니다.

내 출력에서 ​​지속적으로 반복되는 오류는 다음과 같습니다.

ZooKeeper에서 읽은 ClusterId가 null입니까? 정말 혼란 스러웠습니다. 문제를 해결하려고 시도했지만 내 오류가 다른 많은 것과 비슷하다는 것을 알았지 만 Google 또는 다른 웹 사이트에서 명확한 답변을 얻을 수 없습니다. 건축 설계에 오류가 있습니까? 또는 구성 오류?

호스트와 클러스터 시간이 모두 올바른지 확인할 수 있습니다. 다음은 cloud6에서 cloud12의 Hbase를 연결하는 프로그램의 일부입니다. 코드에 문제가 있습니까?

  public static final String INDEXNAME = "search"; 
  ...
  BaseConfiguration conf=new BaseConfiguration();
  conf.setProperty("storage.backend", "hbase");
  conf.setProperty("storage.hostname", "192.168.12.148");//ip of cloud12
  conf.setProperty("storage.tablename", "graph1");
  conf.setProperty("index." + INDEXNAME + ".backend", "elasticsearch");
  conf.setProperty("index." + INDEXNAME + ".hostname", "192.168.12.148"); 
  conf.setProperty("index." + INDEXNAME + ".elasticsearch.local-mode", false);  
  conf.setProperty("index." + INDEXNAME + ".elasticsearch.client-only", true); 

해결법

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

    1.외부 Zookeeper 앙상블을 사용하고 있으므로 확인해야 할 사항 :

    외부 Zookeeper 앙상블을 사용하고 있으므로 확인해야 할 사항 :

    Titan 테이블에 연결할 수 있음을 확인한 후에는 INFO 메시지를 무시해도 안전하다고 생각합니다. log4j.properties의 설정을 통해 로깅 레벨을 토글 할 수 있습니다.

    log4j.logger.org.apache.zookeeper=WARN
    log4j.logger.org.apache.hadoop.hbase.client=WARN
    log4j.logger.org.apache.hadoop.hbase.zookeeper=WARN
    

    Zookeeper 클라이언트 연결이 왜 그렇게 자주 발생하는지 조사하기 위해 Titan에 대해 공개 된 문제가 있습니다.

  2. ==============================

    2.나는이 문제도 가지고있다. zookeeper3.4.5를 zookeeper3.4.6으로 업그레이드하고 시간을 동기화하십시오. 하지만 여전히 많은 정보 메시지가 있으므로 log4j를 다음과 같이 수정했습니다.

    나는이 문제도 가지고있다. zookeeper3.4.5를 zookeeper3.4.6으로 업그레이드하고 시간을 동기화하십시오. 하지만 여전히 많은 정보 메시지가 있으므로 log4j를 다음과 같이 수정했습니다.

    log4j.properties : log4j.logger.org.apache.zookeeper = 경고 log4j.logger.org.apache.hadoop.hbase.client = WARN log4j.logger.org.apache.hadoop.hbase.zookeeper = WARN

    괜찮아

  3. from https://stackoverflow.com/questions/38763428/a-connection-error-in-remote-mode-of-titan-1-0-0hbase-0-98-20-using-java by cc-by-sa and MIT license