问题标签 [elephantbird]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1011 浏览

hadoop - 从象鸟中写入可以被 ProtobufPigLoader 读取的数据

对于我的一个项目,我想分析大约 2 TB 的Protobuf对象。我想通过“象鸟”库在猪脚本中使用这些对象。但是,我并不完全清楚如何将文件写入 HDFS,以便 ProtobufPigLoader 类可以使用它。

这就是我所拥有的:

猪脚本:

导入工具(部分):

导入工具运行良好。我在使用 ProtobufPigLoader 时遇到了一些问题,因为我无法使用 hadoop-lzo 压缩库,并且没有修复(请参阅此处)ProtobufPigLoader 无法正常工作。我遇到的问题是DUMP raw_data;返回Unable to open iterator for alias raw_dataILLUSTRATE raw_data;返回No (valid) input data found!

对我来说,ProtobufPigLoader 似乎无法读取 ProtobufBlockWriter 数据。但是用什么代替呢?如何将外部工具中的数据写入 HDFS,以便 ProtobufPigLoader 对其进行处理。

替代问题:改用什么?如何将相当大的对象写入 Hadoop 以使用 Pig 使用它?对象不是很复杂,但在列表中包含大量子对象(Protobuf 中的重复字段)。

  • 我想避免使用任何文本格式或 JSON,因为它们对于我的数据来说太大了。我希望它会使数据膨胀 2 或 3 倍(很多整数,很多我需要编码为 Base64 的字节字符串)..
  • 我想避免对数据进行规范化,以便将主对象的 id 附加到每个子对象(这是现在所做的,因为这也会增加空间消耗并使后续处理中需要连接。

更新:

  • 我没有使用protobuf loader类的生成,而是使用反射类型的loader
  • protobuf 类位于已注册的 jar 中。DESCRIBE正确显示类型。
0 投票
2 回答
4392 浏览

java - JSON 对象跨越多行,如何在 Hadoop 中拆分输入

我需要摄取大型 JSON 文件,其记录可能跨越多行(不是文件)(完全取决于数据提供者的编写方式)。

Elephant-Bird 采用 LZO 压缩,我知道数据提供者不会这样做。

Dzone 文章http://java.dzone.com/articles/hadoop-practice假设 JSON 记录将位于同一行。

任何想法,除了压缩 JSON... 文件将是巨大的... 关于如何正确拆分文件以使 JSON 不会中断。

编辑:行,而不是文件

0 投票
2 回答
1585 浏览

apache-pig - ElephantBird 包构建失败:

我下载了 ElephantBird 源代码并尝试通过运行“mvn package”进行构建,但出现以下错误:

我使用的是 mvn 版本 3.0.3,我在 Mac 和 Ubuntu 中尝试过,但我得到了同样的错误。

编辑1:

感谢 Lorand 的评论,我通过升级协议缓冲区解决了上述问题。我还安装了 Thrift 0.7.0,但现在在大象猪构建期间我遇到了另一个编译失败:

0 投票
0 回答
113 浏览

hadoop - 大象鸟编译失败:缺少 hadoop-compat/target/classes 目录

我正在尝试使用 ElephantBird 向 Pig 添加序列文件存储功能。我已经从 GitHub 克隆了 ElephantBird 包,但是当我尝试使用 编译时mvn package,出现以下错误:

我不明白发生了什么,因为我没有编辑过任何目录。我刚刚按照ElephantBird 自述文件的 QuickStart 下列出的前 2 条说明进行操作。我检查了问题日志,其他人似乎没有发生这种情况。为什么是我?

0 投票
1 回答
2085 浏览

hadoop - 从 HDFS 加载数据不适用于 Elephantbird

我正在尝试用猪中的大象鸟处理数据,但我没有成功加载数据。这是我的猪脚本:

我得到的输出是

该文件存在并且可以访问:

这似乎是 Cloudera 4.6.0 附带的猪版本的普遍问题:问题似乎是说

运行另一个用户定义的函数来加载数据时,我遇到了类似的错误:

当我强制猪进入本地模式(''-x local'')时,我得到更明显的错误

所以我猜,Hadoop pig 使用的版本似乎与 Cloudera 附带的版本不兼容。

0 投票
1 回答
477 浏览

hadoop - 尝试使用 LzoPigStorage 和大象鸟加载索引 LZO 文件

我有一个默认 LZO 压缩的日志文件和一个使用 Hadoop-LZO 生成的 .index 文件,但是当我运行一个简单的 Pig 文件以使用 LzoPigStorage 检索前 100 条记录时,我得到以下异常:

我正在运行 Hadoop 2.0、Pig 0.11 和大象鸟 2.2.3

0 投票
1 回答
406 浏览

thrift - 象鸟构建失败

因为我想用象鸟在 PIG 中读/写 JSON 文件,所以下载了 EB for Mac

并尝试使用

并且构建失败如下,

我已经检查了这个链接ElephantBird package build failure:并下载了 thrift 0.9 并尝试在 pom.xml 中指定绝对路径

请就如何运行它提出任何建议。

0 投票
1 回答
1418 浏览

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

我正在使用 CDH4 运行 Hadoop 2.0,并使用 Oracle Java 1.6 r31 构建了大象鸟库

我的猪脚本:

结果:

0 投票
2 回答
780 浏览

apache-pig - 象鸟猪 TypeRef ClassNotFoundException

我正在尝试使用大象鸟 4.1 将协议缓冲区中编码的数据处理为其猪表示。相关猪代码:

每当我尝试进行转换时,它都会因以下堆栈跟踪而惨遭失败:

我怀疑这可能与包含适当的罐子有关,据我所知,这些依赖项应该在大象鸟核心中。

0 投票
2 回答
682 浏览

java - 构建象鸟时出错

我正在尝试构建 Twitter 的大象鸟包,以便可以将其与 Pig 一起使用,但出现错误:

这是我的系统的 Maven 信息:

我已经安装了 Thrift 和 protobuf。

编辑按照 Jigar 的建议,我修复了这里遇到的第一个与 protobuf 版本有关的构建错误。我还更新了导致错误的 pom 文件中的 Thrift 版本号。但我仍然收到以下错误: