s3 _ $ folder $ объект, вызывающий проблемы в "MSCK REPAIR TABLE" на EMR 5.11.2 и выше - PullRequest
0 голосов
/ 27 сентября 2018

EMR создаст _$folder$ объект для каждой папки, хранящейся в S3, это неизбежно

( Избегайте создания _ $ folder $ keys в S3 с помощью hadoop (EMR) ).

Например, в каталоге «day = 09» EMR сохраняет результат в папке «data_hour = 23» и создает объект "data_hour=23_$folder$".

Недавно я обновляю версию EMRс 5.8.2 до 5.11.2 , и объект _$folder$ начинает вызывать проблемы.

Журнал ошибок, как показано ниже.Тот же код никогда не выдает никаких ошибок в 5.8.2:

2018-09-26T05:54:41,720 ERROR [abc729c3-4ed5-4e46-906f-e8fdd6de9d4b 
main([])]: metadata.HiveMetaStoreChecker 
(HiveMetaStoreChecker.java:checkPartitionDirs(552)) - 
org.apache.hadoop.hive.ql.metadata.HiveException: MSCK finds a file 
rather than a directory when it searches for hdfs://ip-10-0-0-240.eu- 
west-1.compute.internal:8020/XXX/XXX/day=09/data_hour=23_$folder$

Моя задача, в основном, копировать данные из S3 в Hadoop с использованием s3-dist-cp и запускать сценарии Hive для этих данных ежедневно, исохраняет результат на S3 для выполнения на следующий день.

Ошибка происходит в предложении " MSCK REPAIR TABLE " в сценарии Hive.И только идентификаторы разделов имеют проблемы.

Например, у "day = 09" есть объект "day = 09_ $ folder $" вместе с ним в S3, это нормально, так как "day = 09" не является идентификатором раздела.

После удаления объекта _ $ folder $ ошибок не возникает.

Однако, поскольку EMR всегда будет создавать объект _ $ folder $ для вновь сохраненных данных.И эти объекты _ $ folder $ будут вызывать проблемы при выполнении на следующий день.

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...