Исключение с таблицей, идентифицированной с помощью AWS Glue Crawler и сохраненной в Каталоге данных
Я работаю над созданием нового озера данных компании и стараюсь найти лучший и самый последний вариант для работы здесь.
Итак, я нашел довольно приятное решение для работы с EMR + S3 + Athena + Clue.
Процесс, который я сделал, это:
1 - Запустите Apache Spark script, чтобы создать 30 миллионов строк, разделенных по дате на S3, хранящихся в Orc.
2 - Запустите запрос Athena для создания внешней таблицы.
3 - Проверьте таблицу на EMR, связанную с Каталогом данных клея, и она отлично работает. И Spark, и Hive смогли получить доступ.
4 - Создайте еще 30 миллионов строк в другой папке, разделенной по дате. В формате Orc
5 - Раскройте сканер клея, который идентифицирует новую таблицу. Добавлен в каталог данных, и Афина смогла выполнить запрос. Но Spark и Hive не могут этого сделать. См. Исключение ниже:
Спарк
Caused by: java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.hive.ql.io.orc.OrcStruct
Улей
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 serialization lib org.apache.hadoop.hive.ql.io.orc.OrcSerde
orc.compress SNAPPY
Таблица, созданная с помощью сканера клея:
Формат ввода org.apache.hadoop.mapred.TextInputFormat
Формат вывода org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Serde serialization lib org.apache.hadoop.hive.ql.io.orc.OrcSerde
Итак, это не работает, чтобы читать из Hive или Spark. Он работает для Афины. Я уже изменил конфигурации, но не влиял на Hive или Spark.
Кто-нибудь столкнулся с этой проблемой?
Ответы
Ответ 1
Ну,
Через несколько недель, когда я опубликовал этот вопрос, AWS исправил проблему. Как я показал выше, проблема была реальной, и это было ошибкой от Клей.
Поскольку это новый продукт и все еще есть некоторые проблемы несколько раз.
Но это было решено должным образом. Теперь просмотрите свойства таблицы:
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'