gpt4 book ai didi

java - Avro 文件写入 HDFS 导致 block 大小无效

转载 作者:可可西里 更新时间:2023-11-01 14:58:04 26 4
gpt4 key购买 nike

从 HDFS 读回文件时,我经常看到这些错误:

{"id":"646626691524096003","user_friends_count":{"int":83},"user_location":{"string":"他の星から副都心線経由"},"user_description":{"string":"Exception in thread "main" org.apache.avro.AvroRuntimeException: java.io.IOException: Block size invalid or too large for this implementation: -40
at org.apache.avro.file.DataFileStream.hasNextBlock(DataFileStream.java:275)
at org.apache.avro.file.DataFileStream.hasNext(DataFileStream.java:197)
at org.apache.avro.tool.DataFileReadTool.run(DataFileReadTool.java:77)
at org.apache.avro.tool.Main.run(Main.java:84)
at org.apache.avro.tool.Main.main(Main.java:73)
Caused by: java.io.IOException: Block size invalid or too large for this implementation: -40
at org.apache.avro.file.DataFileStream.hasNextBlock(DataFileStream.java:266)
... 4 more

当我们尝试使用各种工具读回它们时,例如:

$ java -jar ~/avro-tools-1.7.7.jar tojson FlumeData.1443002797525

将它们写入 HDFS 的机器是一台连接不稳定的笔记本电脑,因此它很可能会定期断开连接,但损坏的文件并不是真正预料到的 - 在这种情况下,文件似乎达到了大约 11% 的无效 block 大小(vim估计)通过文件的方式。

FWIW 我认为它即将读出的特定用户描述是针对 Twitter 用户 @MyTime0627 的。

最佳答案

你可以查看这篇文章。我也遇到了这个问题。JSON SerDe 和 Avro SerDe 不能同时处理一个事件。

Cloudera 5.4.2: Avro block size is invalid or too large when using Flume and Twitter streaming

关于java - Avro 文件写入 HDFS 导致 block 大小无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32748459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com