amazon-web-services - 通过 AWS Glue Crawler 识别并存储在数据目录中的表异常

标签 amazon-web-services apache-spark amazon-s3 amazon-emr aws-glue

我正在努力建立公司的新数据湖,并试图找到最好和最新的选择来在这里工作。
所以,我找到了一个非常好的解决方案来使用 EMR + S3 + Athena + Glue。

我做的过程是:

1 - 运行 Apache Spark 脚本以生成由 Orc 存储的 S3 中按日期分区的 3000 万行。

2 - 运行 Athena 查询以创建外部表。

3 - 在 EMR 上检查了与 Glue 数据目录连接的表格,它运行良好。 Spark 和 Hive 都能够访问。

4 - 在按日期分区的其他文件夹中生成另外 3000 万行。兽人格式

5 - 运行标识新表的 Glue Crawler。添加到数据目录和 Athena 能够执行查询。但是 Spark 和 Hive 做不到。请参阅以下异常:

Spark Caused by: java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.hive.ql.io.orc.OrcStruct
hive Error: java.io.IOException: org.apache.hadoop.hive.ql.metadata.HiveException: Error evaluating audit_id (state=,code=0)
我正在检查是否有任何序列化问题,我发现了这个:

手动创建的表(配置):

输入格式 org.apache.hadoop.hive.ql.io.orc.OrcInputFormat

输出格式 org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat

Serde 序列化库 org.apache.hadoop.hive.ql.io.orc.OrcSerde

orc.compress 活泼的

使用 Glue Crawler 创建的表:

输入格式 org.apache.hadoop.mapred.TextInputFormat

输出格式 org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

Serde 序列化库 org.apache.hadoop.hive.ql.io.orc.OrcSerde

因此,这不适用于从 Hive 或 Spark 读取。它适用于雅典娜。我已经更改了配置,但对 Hive 或 Spark 没有影响。

有人遇到过这个问题吗?

最佳答案

好,

几周后,我发布了这个问题,AWS 解决了这个问题。正如我上面所展示的,问题是真实存在的,这是 Glue 的一个错误。

由于它是一个新产品,有时仍然会出现一些问题。

但这已得到妥善解决。现在查看表的属性:

ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'

关于amazon-web-services - 通过 AWS Glue Crawler 识别并存储在数据目录中的表异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45748816/

相关文章:

javascript - AWS Cognito 身份 JS : Forget/Remember/Do Not Remember Device

database - 使用 terraform 创建数据库模式

amazon-web-services - AWS 云信息 : Outputs ServiceName for Unnamed ECS Service

apache-spark - Spark 中的 xml 处理

amazon-web-services - 在 golang 中订阅 SNS 主题和/或 SQS 队列?

apache-spark - Amazon EMR 和 S3,org.apache.spark.sql.AnalysisException : path s3://. .../var/table 已存在

java - AWS S3 文件下载的 JAR 文件

apache-spark - 我什么时候应该重新分区 RDD?

apache-spark - AWS EMR Spark 作业重新启动 [AsyncEventQueue : Dropping event from queue appStatus. ]

amazon-web-services - 查找 S3 存储桶所有者