我正在使用hadoop流式传输,我想将输入格式作为OrcNewFormat。 我正在执行命令: -
hadoop jar hadoop-streaming.jar -libjars /usr/hdp/2.2.4.2-2/hive/lib/hive-exec.jar -input / user / orcfiles -output / streamf -mapper' cat&# 39; -inputformat org.apache.hadoop.hive.ql.io.orc.OrcNewInputFormat -outputformat org.apache.hadoop.hive.ql.io.orc.OrcNewOutputFormat
但是我得到了以下异常:
Exception in thread "main" java.lang.RuntimeException: class org.apache.hadoop.hive.ql.io.orc.OrcNewInputFormat not org.apache.hadoop.mapred.InputFormat
at org.apache.hadoop.conf.Configuration.setClass(Configuration.java:2150)
at org.apache.hadoop.mapred.JobConf.setInputFormat(JobConf.java:702)
at org.apache.hadoop.streaming.StreamJob.setJobConf(StreamJob.java:796)
at org.apache.hadoop.streaming.StreamJob.run(StreamJob.java:128)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.streaming.HadoopStreaming.main(HadoopStreaming.java:50)
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.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
来自此链接
http://hive.apache.org/javadocs/r1.2.0/api/
我可以看到Class OrcNewInputFormat扩展了org.apache.hadoop.mapreduce.InputFormat,但是从异常我可以看出类org.apache.hadoop.hive.ql.io.orc.OrcNewInputFormat不是org.apache.hadoop .mapred.InputFormat。
我在这里缺少什么?
答案 0 :(得分:0)
现在我的工作正常,因为我提供了错误的类名。
答案 1 :(得分:0)
这是一个非常受欢迎的问题,可以查看一些观点,但在正确的类名方面仍然缺乏“答案”。完成它:
正确的参数部分是-inputformat org.apache.hadoop.hive.ql.io.orc.OrcInputFormat -outputformat org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
答案 2 :(得分:0)
对于我来说,在运行Pig命令之前,我必须在环境变量下删除/标记为false。
export HADOOP_USE_CLIENT_CLASSLOADER='true'