1

我们有一个运行 Hive 0.13.1 的 emr 服务器(我知道它很陈旧,但是这个集群有很多依赖项,因此我们无法摆脱它)无论如何,我们处理了类似的事情使用具有最新版本 hive 的不同 emr 集群在 parquet 中存储 10 TB 的 TSV 数据。这是促进数据处理的临时措施。

现在我们回到旧的 emr 做 TSV 到 parquet 的增量处理。我们使用 aws 红移光谱和胶水对这些数据进行查询。Glue 爬取数据所在的 s3 路径,从而为我们提供了一个可以使用的模式。

现在,旧 emr 处理的数据给我们带来了关于 Parquet 模式不兼容的问题。

当我们尝试读取由新配置单元和旧配置单元处理的数据组成的镶木地板数据时,我们得到的错误是,

[2018-08-13 09:40:36] error: S3 Query Exception (Fetch) [2018-08-13 09:40:36] code: 15001 [2018-08-13 09:40:36] context: Task failed due to an internal error. File '<Some s3 path >/parquet/<Some table name>/caldate=2018080900/8e71ebbe-b398-483c-bda0-81db6f848d42-000000 has an incompatible Parquet schema for column [2018-08-13 09:40:36] query: 11500732 [2018-08-13 09:40:36] location: dory_util.cpp:724 [2018-08-13 09:40:36] process: query1_703_11500732 [pid=5384]

我的预感是因为不同的蜂巢版本或者它可能是一个红移光谱错误。

有没有人遇到过同样的问题?

4

1 回答 1

0

我认为这篇特别的帖子将帮助您解决这个问题。它讨论了架构由不同版本编写并由另一个版本读取的问题。

https://slack.engineering/data-wrangling-at-slack-f2e0ff633b69

于 2018-08-15T10:03:38.853 回答