PIG - 找到接口 org.apache.hadoop.mapreduce.JobContext,但预期类

Posted

技术标签:

【中文标题】PIG - 找到接口 org.apache.hadoop.mapreduce.JobContext,但预期类【英文标题】:PIG - Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected 【发布时间】:2014-02-19 06:45:39 【问题描述】:

我试图从 hive 加载一个表。 我正在为此使用 Hcatalog。

我使用

登录 hive
pig -useHCatalog

我从 hive 和 hadoop 中导出几乎所有的罐子

register 'hdfs://localhost:8020/user/pig/jars/hive-jdbc-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-exec-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-common-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-metastore-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/mysql-connector-java-5.1.28-bin.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-beeline-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-builtins-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-cli-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-contrib-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-hbase-handler-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-hwi-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-metastore-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-pdk-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-serde-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-service-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hive-shims-0.10.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/antlr-2.7.7.jar';
register 'hdfs://localhost:8020/user/pig/jars/antlr-runtime-3.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/avro-1.7.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/hcatalog-core-0.5.0-incubating.jar';
register 'hdfs://localhost:8020/user/pig/jars/hcatalog-pig-adapter-0.5.0-incubating.jar';
register 'hdfs://localhost:8020/user/pig/jars/avro-ipc-1.7.4-tests.jar';
register 'hdfs://localhost:8020/user/pig/jars/avro-mapred-1.7.4-hadoop2.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-cli-1.2.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-codec-1.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-collections-3.2.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-compress-1.4.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-configuration-1.6.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-dbcp-1.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-io-2.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-lang-2.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-logging-1.0.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-logging-api-1.0.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-logging-1.0.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-pool-1.5.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/datanucleus-api-jdo-3.2.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/datanucleus-core-3.2.2.jar';
register 'hdfs://localhost:8020/user/pig/jars/datanucleus-rdbms-3.2.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/derby-10.4.2.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/guava-11.0.2.jar';
register 'hdfs://localhost:8020/user/pig/jars/hbase.jar';
register 'hdfs://localhost:8020/user/pig/jars/jackson-xc-1.8.8.jar';
register 'hdfs://localhost:8020/user/pig/jars/activation-1.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/ant-contrib-1.0b3.jar';
register 'hdfs://localhost:8020/user/pig/jars/asm-3.2.jar';
register 'hdfs://localhost:8020/user/pig/jars/avro-compiler-1.7.4.jar';
register 'hdfs://localhost:8020/user/pig/jars/cloudera-jets3t-2.0.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-beanutils-1.7.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-beanutils-core-1.8.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-digester-1.8.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-el-1.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-httpclient-3.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-io-2.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-lang-2.5.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-logging-1.1.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-math-2.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/commons-net-3.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/jersey-core-1.8.jar';
register 'hdfs://localhost:8020/user/pig/jars/jersey-json-1.8.jar';
register 'hdfs://localhost:8020/user/pig/jars/jersey-server-1.8.jar';
register 'hdfs://localhost:8020/user/pig/jars/jets3t-0.6.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/jettison-1.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/jetty-6.1.26.cloudera.2.jar';
register 'hdfs://localhost:8020/user/pig/jars/jetty-util-6.1.26.cloudera.2.jar';
register 'hdfs://localhost:8020/user/pig/jars/jsch-0.1.42.jar';
register 'hdfs://localhost:8020/user/pig/jars/jsp-api-2.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/jsr305-1.3.9.jar';
register 'hdfs://localhost:8020/user/pig/jars/junit-4.8.2.jar';
register 'hdfs://localhost:8020/user/pig/jars/kfs-0.2.2.jar';
register 'hdfs://localhost:8020/user/pig/jars/kfs-0.3.jar';
register 'hdfs://localhost:8020/user/pig/jars/log4j-1.2.17.jar';
register 'hdfs://localhost:8020/user/pig/jars/mockito-all-1.8.5.jar';
register 'hdfs://localhost:8020/user/pig/jars/paranamer-2.3.jar';
register 'hdfs://localhost:8020/user/pig/jars/protobuf-java-2.4.0a.jar';
register 'hdfs://localhost:8020/user/pig/jars/servlet-api-2.5.jar';
register 'hdfs://localhost:8020/user/pig/jars/slf4j-api-1.6.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/stax-api-1.0.1.jar';
register 'hdfs://localhost:8020/user/pig/jars/xmlenc-0.52.jar';
register 'hdfs://localhost:8020/user/pig/jars/zookeeper-3.4.5-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/original-parquet-pig-1.2.5-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/original-parquet-pig-bundle-1.2.5-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/original-parquet-thrift-1.2.5-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/parquet-hive-1.2.5-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/parquet-pig-1.2.5-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/parquet-pig-bundle-1.2.5-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hadoop-core-2.0.0-mr1-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hadoop-core.jar';
register 'hdfs://localhost:8020/user/pig/jars/hadoop-mapreduce-client-core-2.0.0-cdh4.5.0.jar';
register 'hdfs://localhost:8020/user/pig/jars/hadoop-mapreduce-client-core.jar';

我也试过这个命令

ant clean jar -Dhadoopversion=23'

是版本不匹配的问题吗?

我正在使用 Hadoop 2.0.0-cdh4.5.0 和 pig-0.12.0-src

请帮忙

【问题讨论】:

【参考方案1】:

是的,这是一个兼容性问题。

在 Hadoop 1.x 中:JobContext is a class 在 Hadoop 2.x 中:JobContext is an interface

您可以看到 Hadoop 2 未列为与 Pig 0.12 兼容:

Requirements
Mandatory

Unix and Windows users need the following:

Hadoop 0.20.2, 020.203, 020.204, 0.20.205, 1.0.0, 1.0.1, or 0.23.0, 0.23.1 

http://pig.apache.org/docs/r0.12.0/start.html

【讨论】:

【参考方案2】:

你也可以尝试构建一个 Hadoop 2.x 版本的 Pig

ant clean jar-withouthadoop -Dhadoopversion=23

【讨论】:

以上是关于PIG - 找到接口 org.apache.hadoop.mapreduce.JobContext,但预期类的主要内容,如果未能解决你的问题,请参考以下文章

Pig Elephant-Bird 找到接口 org.apache.hadoop.mapreduce.JobContext,但是应该有类

Hbase常用api

Pig 错误:无法找到或加载主类 org.apache.pig.Main

有啥好的 Pig Accumulator 接口实现的例子吗?

PIG 需要找到最大值

如何使用 PIG 在给定数据集中找到最大年份?