#hadoop #avro #sqoop
#hadoop #avro #sqoop
Вопрос:
Я новичок в AVRO и пытаюсь импортировать данные формата AVRO с SQL Server в HDFS.
Ошибка: org.kitesdk.data.Исключение DatasetOperationException: не удалось добавить {«id»: «D22C2475», «create_date»: «2020-08-22 14:34:06.0″, » modified_date»: «2020-08-22 14:34:06.0″} для ParquetAppender{path=job_1597813536070/mr/attempt_1597813536070_m_000000_0/.d55262cf-e49b-4378-addc-0f85698efb47.parquet.tmp»>hdfs://nameservice1/tmp/schema/.temp/job_1597813536070/mr/attempt_1597813536070_m_000000_0/.d55262cf-e49b-4378-addc-0f85698efb47.parquet.tmp , schema={«type»:»record»,»name»:»AutoGeneratedSchema»,»doc»: «Импорт Sqoop из QueryResult»,»fields»:[{«name»:»id»,»type»:[«null»,»string»],»default»:null,»columnName»:»id»,»sqlType»:»1″},{«name»:»create_date»,»type»:[«null»,»long»],»default»:null,»columnName»:»create_date»,»sqlType»:»93″},{«name»:»modified_date»,»type»:[«null»,»long»],»default»:null,»columnName»:»modified_date»,»sqlType»:»93″}],»tableName»:»QueryResult»} , Файловая система=DFS[DFSClient[имяклиЕнта=DFSClient_attempt_1597813536070_m_000000_0_960843231_1, ugi=имя пользователя (auth: ПРОСТОЙ)]], avroParquetWriter=parquet.avro.AvroParquetWriter@7b122839} Вызвано: java.lang.ClassCastException: java.lang.Строка не может быть преобразована в java.lang.Number
ТАБЛИЦА — СОЗДАТЬ ТАБЛИЦУ “ticket”
( id
строка, create_date
string, modified_date
string) В ФОРМАТЕ СТРОКИ SERDE ‘org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe’ ХРАНИТСЯ КАК INPUTFORMAT ‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat’ OUTPUTFORMAT ‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat’ TBLPROPERTIES ( ‘COLUMN_STATS_ACCURATE’=’true’, ‘avro.schema.url’=’hdfs://nameservice1/user/hive/warehouse/schema.db/ticket/.metadata/schemas/1.avsc’ , ‘kite.compression.type’=’snappy’);
Метаданные файла AVRO — hdfs://nameservice1/user/hive/warehouse/schema.db/ticket/.metadata/schemas/1.avsc’ { «type»: «record», «name»: «AutoGeneratedSchema», «doc»: «Sqoop импорт QueryResult», «fields»: [ { «name»: «id», «type»: [ «null», » string» ], «default» : null, «ColumnName»: «id», «sqlType»: «1» }, { «name» : «create_date», «type» : [ «null», «string»], «default» : null, «ColumnName» : «create_date», «sqlType»: «93» }, { «name» : «modified_date», «type»: [ «null», «string» ], «default» : null, «ColumnName» : «modified_date», «sqlType» : «93» }], «tableName» : «QueryResult» }
Ответ №1:
Я исправил проблему. Возникла некоторая проблема с моим файлом метаданных AVRO. Я воссоздал его и добавил в таблицу Hive с помощью приведенной ниже команды.
изменить имя_таблицы, установить serdeproperties (‘avro.schema.url’ = ‘hdfs://user/hive/warehouse/schema.db/имя_таблицы/1.avsc’);