java - Pig - JsonMetadata - 找不到架构文件

标签 java hadoop apache-pig

当 Pig 在某些版本的 pig 上评估 LOAD 语句时,有一个主要的滞后时间。

在切换 Pig 版本后(在集群升级期间),Pig 的 Grunt(以及通过文件脚本)在每个 LOAD 语句上花费 30 多秒。这与通常处理每个 LOAD 语句所需的 <1 秒形成鲜明对比。 Pig 的调试显示 LOAD 语句在不同版本之间以大致相同的方式求值,但不同之处特别有趣。

在版本 0.9.2(带有 Java 8)中,LOAD 语句的处理时间不到 1 秒。但是在版本 0.11.1 和 0.12.0 中,加载语句的处理时间超过 30 秒,主线不同的是这条:

[main] DEBUG org.apache.pig.builtin.JsonMetadata - Could not find schema file for /logs/visits/*/*visits_v15*.lzo

直到命令处理完成后才显示调试消息,这让我怀疑模式数据的加载是挂断整个过程的原因。当我指定一个确切的文件时,LOAD 语句在 0.11.1 和 0.12.0 上在 <1 秒内完成,但仍然显示警告:

[main] DEBUG org.apache.pig.builtin.JsonMetadata - Could not find schema file for /logs/visits/2014-08-01/2014-08-01-23-45-07.PDT.visits_v15.server.log.lzo

示例 Pig 脚本:

SET debug 'on';
REGISTER s3://path/to/elephant-bird.jar;
v15_data = LOAD '/logs/visits/2014-08-01/2014-08-01-23-45-07.PDT.visits_v15.server.log.lzo';

我是否使用 Elephant Bird 并不重要,因为出现相同的调试消息并且性能特征相同。

每个文件中大约有 60 列,每天写入数千个文件。奇怪的是,仅使用“DUMP v15_data;”运行上面相同样式的脚本。经常给出带有这种错误类型的失败作业:

java.io.IOException: Deserialization error: invalid stream header:

测试的 pig 版本: 0.11.1 0.12.0 0.13.0 - 我相信我之前测试过这个,但不如 0.11.1 或 0.12.0 彻底

最佳答案

在为这个问题苦苦挣扎了一段时间之后,我发现一个解决方案是使用“-noschema”标志。所以 使用 PigStorage('-noschema')

关于java - Pig - JsonMetadata - 找不到架构文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25493470/

相关文章:

java - spring 中对/oauth/token 的选项请求未授权 401

c# - 为什么 float 和 int 具有如此不同的最大值,即使它们的位数相同?

hadoop - Flume 通过网络获取日志

hadoop - 重复创建和删除配置单元表的影响

hadoop - Pig脚本中最大的存储语句最大数量是多少?

java - 在hadoop生态系统中,我使用Pig并陷入以下查询中?

java - 用于基于流程的编程的 Pentaho Kettle

java - 自定义jsp标签未调用

hadoop - 查询注册表

hadoop - 如何将数据分类到 Pig 中的 Zebra 表中?