2012-10-02 4 views
2

hdfs 파일의 일부 정보로 hbase 테이블에 참여하려고합니다. 나는 hbase와 돼지에 상대적으로 새로운 사람입니다. 여기돼지 오류의 hbase 테이블에 조인 : 스키마에 대한 FileSystem 없음 : hbase

set hbase.zookeeper.quorum 'mprhdp2-dev.local' 
set hbase.zookeeper.property.clientPort 5100 
A = LOAD '/raw/JoinTest2.txt' USING PigStorage('\t') AS (Id:chararray, text:chararray); 
B = LOAD 'hbase://MediaInformationMock' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('MediaInformation:UmbrellaCode', '-loadKey true -caster=HBaseBinaryConverter') AS (Id:chararray, UmbrellaCode:chararray); 

J = JOIN B BY $0, A BY $0; 
DUMP J; 


2012-10-02 08:23:59,923 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1003: Unable to find an operator for alias J 
Details at logfile: /home/user1/pig_1349183747159.log 

는 로그 파일에 말씀입니다 :

Pig Stack Trace 
--------------- 
ERROR 2017: Internal error creating job configuration. 

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for alias J 
    at org.apache.pig.PigServer.openIterator(PigServer.java:857) 
    at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:682) 
    at  org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:303) 
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189) 
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165) 
    at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69) 
    at org.apache.pig.Main.run(Main.java:490) 
    at org.apache.pig.Main.main(Main.java:111) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:197) 
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store alias J 
    at org.apache.pig.PigServer.storeEx(PigServer.java:956) 
    at org.apache.pig.PigServer.store(PigServer.java:919) 
    at org.apache.pig.PigServer.openIterator(PigServer.java:832) 
    ... 12 more 
Caused by: org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobCreationException: ERROR 2017: Internal error creating job configuration. 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getJob(JobControlCompiler.java:739) 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.compile(JobControlCompiler.java:259) 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:180) 
    at org.apache.pig.PigServer.launchPlan(PigServer.java:1270) 
    at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1255) 
    at org.apache.pig.PigServer.storeEx(PigServer.java:952) 
    ... 14 more 
Caused by: java.io.IOException: No FileSystem for scheme: hbase 
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1416) 
    at org.apache.hadoop.fs.FileSystem.access$100(FileSystem.java:69) 
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1453) 
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1435) 
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:232) 
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:191) 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getTotalInputFileSize(JobControlCompiler.java:788) 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.estimateNumberOfReducers(JobControlCompiler.java:762) 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getJob(JobControlCompiler.java:600) 
    ... 19 more 

어떤 아이디어?

돼지 버전 0.10.0 HBase를 0.92.1 하둡 0.20.2-dev에

DUMP A: 
(1,A) 
(2,B) 
(3,C) 
(4,D) 
(5,E) 

DUMP B: 
(1,S) 
(10,C) 
(11,D) 
(12,D) 
(13,M) 
(14,N) 
(15,W) 
(16,I) 
(17,I) 
(18,R) 
(19,T) 
(2,S) 
(20,D) 
(21,I) 
(22,S) 
(23,S) 
(24,S) 
(25,S) 
(3,S) 
(4,S) 
(5,S) 
(6,S) 
(7,R) 
(8,S) 
(9,T) 
+0

[ERROR 1066 : 별칭에 대한 이터레이터를 열 수 없습니다.] (http://stackoverflow.com/questions/34495085/error-1066-unable-to-openiterator-for- alias-in-pig-generic-solution)은 일반적인 솔루션입니다 (http://stackoverflow.com/a/34495086/983722). –

답변

1

나는 당신이 당신의 PIG_CLASSPATHhbase-site.xml이없는 생각한다.

동물원, 구아바 및 hbase 병과 함께 추가하십시오. 교대로 돼지를

pig --conf $HBASE_HOME/conf my.pig 

으로 시작하고 스크립트 내에서 jar를 등록하십시오.