2017-05-15 6 views
1

돼지 스크립트에서 hbase 원격 서버의 데이터를 읽고 쓰고 싶습니다. 우리는 Hortonworks HDP 2.5를 사용하고 있습니다.돼지 - 원격 hbase 서버에서 데이터 읽기/쓰기

다음은 시나리오입니다.

우리는 Hive 용 클러스터와 Hbase 용 클러스터 두 개를 가지고 있습니다. 하이브 클러스터의 일부인 에지 노드에 액세스 할 수 있습니다.

코드 (MapReduce 작업 & 돼지 스크립트)는 Hive 클러스터에서 실행됩니다.

요구 사항의 일부로 Hbase 테이블에서 데이터를 읽고 쓸 필요가 있습니다.

그물에 해결책이 하나 있지만 작동하지 않습니다. http://grokbase.com/t/cloudera/cdh-user/137at5cg72/pig-stores-into-remote-hbase

이 솔루션은 돼지 스크립트 안에 hbase 서버의 zookeeper quorum을 등록 할 것을 제안합니다. 하지만 구문이 작동하지 않습니다.

set hbase.zookeeper.quorum '108.168.251.xxx-static.reverse.softlayer.com<http://108.168.251.xxx-static.reverse.softlayer.com:8020/hbase>' 

... 

STORE raw_rec INTO 'hbase://my_table<http://108.168.251.xxx-static.reverse.softlayer.com:8020/hbase>' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('score:val'); 

하지만 이는 작동하지 않습니다. 영숫자 문자로 오류가 발생하는 것은 네임 스페이스에서 허용되는

는 기본 org.apache.pig를 사용하여 돼지 내부 원격 HBase를 클러스터에서 데이터 읽기/쓰기 할 수있는 방법이 있다면 알려 주시기 바랍니다 (<> 허용되지 않는 기호) .backend.hadoop.hbase.hbasestorage

미리 감사드립니다.

답변

0

돼지가 설치된 클라이언트 컴퓨터에서 아래에 친절하게 설정하십시오. 2181이 zk 밀폐 포트라고 가정합니다. MY_TABLE 로컬 클러스터의 HBase를에 존재하는 것처럼 :

export PIG_OPTS="$PIG_OPTS -Dhbase.zookeeper.property.clientPort=2181 -Dhbase.zookeeper.quorum=108.168.251.xxx-static.reverse.softlayer.com" 

그런 다음 직접 "// HBase를"하지 않고 테이블 이름을 사용합니다.

STORE raw_rec INTO 'my_table' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('score:val');