복붙노트

[HADOOP] Hbase-site.xml을 클래스 패스에 포함시키는 방법

HADOOP

Hbase-site.xml을 클래스 패스에 포함시키는 방법

현재 HBase 코드에서 hbase-site.xml에 지정된 설정을 사용하려고합니다. hbase-site.xml 구성 파일에 지정된 것 대신 기본 설정을 사용하는 것 같습니다. 파일을 업데이트 한 후 HBase 클러스터를 다시 시작했지만 업데이트 한 설정 파일을 사용하고 있지 않습니다.

내가 사용하고있는 클러스터는 2 개의 노드이며, 그 중 하나는 마스터입니다. 두 노드 모두의 구성 파일은 마스터 노드의 IP를 사육사 쿼럼으로 지정합니다. 코드를 통해 hbase-site.xml과 동일한 값으로 zookeeper 쿼럼을 설정하면 코드가 제대로 실행되기 때문에 hbase-site.xml에 지정된 설정이 사용되지 않는다고 생각되지만 두 번째 노드는 사용할 수 없습니다. 쿼럼이 코드를 통해 지정되지 않은 경우 마스터에 문의하십시오.

config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", masterNodeIP);

hbase-site.xml을 내 코드의 클래스 경로에 포함시키는 방법에 대한 지침이나 링크를 크게 부탁드립니다. 필자는 Windows 컴퓨터에서 Eclipse로 개발하고 Linux 클러스터에 HBase 환경을 설치했습니다. 의존성 때문에 코드를 컴파일하기 위해 보통 Eclipse를 사용합니다.

이상적으로는 클러스터의 각 노드가 자체 구성 파일을 사용하도록합니다.

미리 감사드립니다.

해결법

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

    1.hbase-site.xml에 넣는 것에 상관없이 기본값을 사용한다면 아마도 classpath에있는 다른 파일에 의해 덮어 쓰여지고 있다는 뜻일 것입니다. 이것은 이미 hbase jar에 conf-site.xml이 있기 때문에 가능합니다.

    hbase-site.xml에 넣는 것에 상관없이 기본값을 사용한다면 아마도 classpath에있는 다른 파일에 의해 덮어 쓰여지고 있다는 뜻일 것입니다. 이것은 이미 hbase jar에 conf-site.xml이 있기 때문에 가능합니다.

    이 문제를 해결하려면 classpath를 편집하여 hbase-site.xml을 포함하는 디렉토리를 classpath 끝에 추가하여 아무것도 덮어 쓰지 않도록하십시오. 같은 것 :

    java -cp $CLASSPATH:/usr/lib/hbase/conf path.to.your.Mainclass
    

    너무 모호 해지면 Eclipse에서가 아니라 명령 줄에서 실행하는 것이 좋을 것입니다. 따라서 클래스 경로에 무엇이 있는지 정확히 알 수 있습니다.

    희망이 도움이됩니다.

  2. from https://stackoverflow.com/questions/14326308/how-to-include-hbase-site-xml-in-the-classpath by cc-by-sa and MIT license