Hadoop 在清管器中使用JsonLoader

Hadoop 在清管器中使用JsonLoader,hadoop,apache-pig,hadoop2,bigdata,Hadoop,Apache Pig,Hadoop2,Bigdata,即使在PIG中注册了使用JsonLoader所需的4个JAR,我还是得到了以下错误 REGISTER 'hdfs:///user/flume/elephant-bird-hadoop-compat-4.1.jar'; REGISTER 'hdfs:///user/flume/elephant-bird-pig-4.1.jar'; REGISTER 'hdfs:///user/flume/elephant-bird-core-4.1.jar'; REGISTER 'hdfs:///user/flu

即使在PIG中注册了使用JsonLoader所需的4个JAR,我还是得到了以下错误

REGISTER 'hdfs:///user/flume/elephant-bird-hadoop-compat-4.1.jar';
REGISTER 'hdfs:///user/flume/elephant-bird-pig-4.1.jar';
REGISTER 'hdfs:///user/flume/elephant-bird-core-4.1.jar';
REGISTER 'hdfs:///user/flume/json-simple-1.1.1.jar';

load_tweets = LOAD '/user/flume/tweets/' USING 
com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;

我做错了什么?

您的JAR文件似乎没有注册

使用导入:[, java.lang.,org.apache.pig.builtin.,org.apache.pig.impl.builtin.]

你在本地模式下运行猪吗<代码>清管器-x本地?否则,您的文件是否放在HDFS上

如果不是本地的,并且您正在读取HDFS,请将JAR文件上传到那里,然后使用

[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not 
resolve com.twitter.elephantbird.pig.load.JsonLoader using imports: [, 
java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]

grunt> hadoop fs -ls /user/flume    
...... /user/flume/elephant-bird-hadoop-compat-4.1.jar
...... /user/flume/elephant-bird-pig-4.1.jar
...... /user/flume/elephant-bird-core-4.1.jar
...... /user/flume/json-simple-1.1.1.jar
...... /user/flume/tweets

就我个人而言,我会用Spark来表示JSON文件。我在mapreduce模式下使用pig,我的JAR在HDFS中。我甚至注册了第四个Jar-elephant-bird-core-4.1仍然不起作用。这是正确的。分布式映射程序不能全部读取本地文件系统。并使用
寄存器'hdfs:///path/file.jar“
我将尝试一下。我将所有jar都放在HDFS中,然后尝试运行。仍然不起作用:(
REGISTER 'hdfs:///path/file.jar'