我编写了一个用Java执行嵌入式猪句的程序.我执行了java语句registryQuery.但是当我尝试存储结果时,我发现了找不到org.apache.hadoop.mapred.localClientProtocolProvider的错误.我不明白这个错误.
附上句子:
这是java代码
pigServer.registerQuery("source = load '"+ inputFile + "' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage( " + "'datos:bikes', '-loadKey true')"+ "as (id1:int, bikes:int) ;"); Path output = new Path("consulta1"); pigServer.store("source","consulta1");
这是java异常:
14/06/07 04:01:27 INFO pigstats.ScriptState: Pig features used in the script: UNKNOWN 14/06/07 04:01:27 WARN conf.Configuration: mapred.textoutputformat.separator is deprecated. Instead, use mapreduce.output.textoutputformat.separator 14/06/07 04:01:27 INFO mapReduceLayer.MRCompiler: File concatenation threshold: 100 optimistic? false 14/06/07 04:01:27 INFO mapReduceLayer.MultiQueryOptimizer: MR plan size before optimization: 1 14/06/07 04:01:27 INFO mapReduceLayer.MultiQueryOptimizer: MR plan size after optimization: 1 Exception in thread "main" java.util.ServiceConfigurationError: org.apache.hadoop.mapreduce.protocol.ClientProtocolProvider: Provider org.apache.hadoop.mapred.LocalClientProtocolProvider not found at java.util.ServiceLoader.fail(ServiceLoader.java:214) at java.util.ServiceLoader.access$400(ServiceLoader.java:164) at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:350) at java.util.ServiceLoader$1.next(ServiceLoader.java:421) at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:90) at org.apache.hadoop.mapreduce.Cluster.(Cluster.java:83) at org.apache.hadoop.mapreduce.Cluster. (Cluster.java:76) at org.apache.hadoop.mapred.JobClient.init(JobClient.java:478) at org.apache.hadoop.mapred.JobClient. (JobClient.java:457) at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:152) at org.apache.pig.PigServer.launchPlan(PigServer.java:1266) at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1251) at org.apache.pig.PigServer.storeEx(PigServer.java:933) at org.apache.pig.PigServer.store(PigServer.java:900) at org.apache.pig.PigServer.store(PigServer.java:868) at bicing.pig.PigEstadisticas.runMyQuery(PigEstadisticas.java:97) at bicing.pig.PigEstadisticas.main(PigEstadisticas.java:45)
什么是org.apache.hadoop.mapred.LocalClientProtocolProvider?
有人能帮帮我吗?
这是一个老问题,但由于这可以帮助别人,我正在回答它.
造成这个问题的原因就是上课
org.apache.hadoop.mapred.LocalClientProtocolProvider
在您的课程路径中找不到.我在我的设置中通过添加以下maven依赖项来解决此错误.
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-common</artifactId> <version>2.4.1</version> </dependency>
就本课程的功能而言,我目前没有更多信息,因为我自己正在学习hadoop和Pig.