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 $ будут вызывать проблемы при выполнении на следующий день.
Есть предложения?