2014-10-29 3 views
1

Pig 0.13.0 및 Hadoop 2.5.1을 실행 중이며 둘 다 Apache 배포판에서 설치됩니다. Horton 또는 Cloudera의 패키지가 아닙니다.PIG/Hadoop 문제 : ERROR 2081 :로드 기능을 설정할 수 없습니다.

나는 Pig를 로컬에서 실행할 때 잘 작동하도록 할 수 있지만 (Hadoop 인스턴스에서 실행하려고 할 때 나는 어려움을 겪고있다. 인터넷.

이 명령을

movies = LOAD '/home/hduser/pig-tutorial-master/movies_data.csv' USING PigStorage(',') as (id,name,year,rating,duration); 
DUMP movies; 

하는 로컬 잘 실행 작동합니다.

grunt> movies = LOAD '/home/hduser/pig-tutorial-master/movies_data.csv' USING PigStorage(',') as (id,name,year,rating,duration); 
2014-10-29 18:16:26,281 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2014-10-29 18:16:26,281 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 

하지만 $> DUMP movies하려고 할 때 그것이 나에게이 추적 제공 :

grunt> dump movies 
2014-10-29 18:17:15,419 [main] INFO org.apache.pig.tools.pigstats.ScriptState - Pig features used in the script: UNKNOWN 
2014-10-29 18:17:15,420 [main] INFO org.apache.pig.newplan.logical.optimizer.LogicalPlanOptimizer - {RULES_ENABLED=[AddForEach, ColumnMapKeyPrune, GroupByConstParallelSetter, LimitOptimizer, LoadTypeCastInserter, MergeFilter, MergeForEach, PartitionFilterOptimizer, PushDownForEachFlatten, PushUpFilter, SplitFilter, StreamTypeCastInserter], RULES_DISABLED=[FilterLogicExpressionSimplifier]} 
2014-10-29 18:17:15,445 [main] WARN org.apache.pig.data.SchemaTupleBackend - SchemaTupleBackend has already been initialized 
2014-10-29 18:17:15,469 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2081: Unable to setup the load function. 
Details at logfile: /usr/local/pig/pig_1414606194436.log 

을 내가 하둡/MR 모드에서 실행하면, 내가 코드의 첫 번째 줄을 실행할 때 잘 작동하는 것 같다 ERROR 2081은 내가 진단하려고 시도하지만 올바른 방향으로 나를 가리키는 데 도움이되는 것을 찾을 수 없습니다. 어디에서 시작해야하는지에 대한 아이디어가 있습니까? 나는 이것이 Hadoop 설치와 관련이 있다고 생각하지만 돼지는 아니지만 잘 모르겠습니다. 어떤 제안이 도움이 될 것입니다.

감사합니다,

마크

편집 :

ERROR 2081: Unable to setup the load function. 

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for alias movies 
    at org.apache.pig.PigServer.openIterator(PigServer.java:912) 
    at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:752) 
    at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:372) 
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:228) 
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203) 
    at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66) 
    at org.apache.pig.Main.run(Main.java:542) 
    at org.apache.pig.Main.main(Main.java:156) 
    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:606) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212) 
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store alias movies 
    at org.apache.pig.PigServer.storeEx(PigServer.java:1015) 
    at org.apache.pig.PigServer.store(PigServer.java:974) 
    at org.apache.pig.PigServer.openIterator(PigServer.java:887) 
    ... 12 more 
Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR 0: Exception while executing (Name: movies: Store(hdfs://localhost:54310/tmp/temp-1276361014/tmp-2000190966:org.apache.pig.impl.io.InterStorage) - scope-1 Operator Key: scope-1): org.apache.pig.backend.executionengine.ExecException: ERROR 2081: Unable to setup the load function. 
    at org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:289) 
    at org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore.getNextTuple(POStore.java:143) 
    at org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.runPipeline(FetchLauncher.java:160) 
    at org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.launchPig(FetchLauncher.java:81) 
    at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:275) 
    at org.apache.pig.PigServer.launchPlan(PigServer.java:1367) 
    at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1352) 
    at org.apache.pig.PigServer.storeEx(PigServer.java:1011) 
    ... 14 more 
Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR 2081: Unable to setup the load function. 
    at org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad.getNextTuple(POLoad.java:127) 
    at org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:281) 
    ... 21 more 
Caused by: org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost:54310/home/hduser/pig-tutorial-master/movies_data.csv 
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:321) 
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:264) 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextInputFormat.listStatus(PigTextInputFormat.java:36) 
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:385) 
    at org.apache.pig.impl.io.ReadToEndLoader.init(ReadToEndLoader.java:190) 
    at org.apache.pig.impl.io.ReadToEndLoader.<init>(ReadToEndLoader.java:146) 
    at org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad.setUp(POLoad.java:95) 
    at org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad.getNextTuple(POLoad.java:123) 
    ... 22 more 
================================================================================ 
+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

ERROR 2081에 대한 솔루션을 찾고 후, 로그 파일의 오류보고 시작 : 여기에 전체 로그 출력은 더 가깝게. MR 모드에서 로컬 파일에 액세스하려고 시도하는 문제였습니다. MR vs. Local에서 데이터에 액세스하는 방법에 대해 설명서에서 아무 것도 눈치 채지 못했지만 그게 문제였습니다.

MR에서 실행중인 경우 hdfs : // hostname : 54310을 통해 파일에 액세스해야합니다. 로컬에서는 경로를 사용하여 액세스 할 수 있습니다.

이 S.O. 질문은 내 해결책이었다 : how to load files on hadoop cluster using apache pig?.

0

만약 hadoop 2.6.0과 돼지 0.14 돼지를 0.13으로 낮추면 도움이 될 수 있습니다. 이것은 나를 위해 일했다.

1

hadoop 클러스터의 쓸모없는 쉘에서 pig 명령을 실행하는 경우 다음 속성을 설정하십시오. set opt.fetch false; 위의 속성이 사실로 설정되어 기본적으로 맵리 듀스 모드로 실행됩니다 덤프 위의 속성을 설정하여

.

관련 문제