Pig Job 使用 Elephant Bird jsonLoader 时挂起

Posted

技术标签:

【中文标题】Pig Job 使用 Elephant Bird jsonLoader 时挂起【英文标题】:Pig Job hangs when using Elephant Bird jsonLoader 【发布时间】:2016-10-20 15:03:02 【问题描述】:

这是this的延续

我的新猪脚本是:

register /usr/hdp/current/pig-client/lib/piggybank.jar
register /opt/elephantbird-jars/elephant-bird-core-4.5.jar
register /opt/elephantbird-jars/elephant-bird-hadoop-compat-4.5.jar
register /opt/elephantbird-jars/elephant-bird-pig-4.5.jar
register /opt/elephantbird-jars/json-simple-1.1.1.jar

data_input = LOAD 'local/path/for/hdfs/files' USING com.twitter.elephantbird.pig.load.JsonLoader() AS (json:map[]);

x = FOREACH data_input GENERATE json#'actor__id' AS actor_id,    json#'actor__image__url' AS actor_image_url, json#'actor__displayName' AS actor_displayname, json#'actor__verification__adHocVerified' AS actor_verification, json#'actor__url' AS actor_url;

STORE x INTO '/tmp/user_posts' USING JsonStorage();

此代码在本地模式下工作:pig -x local user_posts.pig

但在 mapreduce 模式下失败:pig -x mapreduce user_posts.pig

我将 jar 移动到完全相同位置的所有数据节点。我不知道在哪里可以检查。有人可以指点一下吗?

【问题讨论】:

【参考方案1】:

你到处都找不到;

REGISTER '/me/home/elephant-bird-core-4.12.jar';
REGISTER '/me/home/elephant-bird-pig-4.12.jar';
REGISTER '/me/home/elephant-bird-hadoop-compat-4.12.jar';

【讨论】:

【参考方案2】:

这是我的机器有问题,而猪没有任何问题。我重新启动了机器,一切顺利。

【讨论】:

如果您同意这个问题不太可能帮助未来的访问者,请删除它以保持网站清洁。

以上是关于Pig Job 使用 Elephant Bird jsonLoader 时挂起的主要内容,如果未能解决你的问题,请参考以下文章

Elephant Bird Pig TypeRef ClassNotFoundException

PIG 中 Elephant-Bird UDF 中的 JSON 数组字段处理

无法使用 Pig 中的 Elephant Bird 访问带有包和元组的嵌套 JSON

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

象鸟构建失败

使用 Apache PIG 读取多行 JSON