Sqoop导入失败,同时将AVRO数据从SQL Server导入HDFS

时间:2020-08-28 15:56:11

标签: 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”:“对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 “},fileSystem = DFS [DFSClient [clientName = DFSClient_attempt_1597813536070_m_000000_0_960843231_1,ugi = username(auth:SIMPLE)]],avroParquet Writer=parquet.avro.AvroParquetWriter@7b122839} 原因:java.lang.ClassCastException:无法将java.lang.String强制转换为java.lang.Number

表- 创建表“ticket”id字符串, create_date字符串, modified_date字符串) 行格式序列 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 存储为INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 输出格式 '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”:“记录”, “ name”:“ AutoGeneratedSchema”, “ doc”:“ QueryResult的批量导入”, “字段”:[{ “ name”:“ id”, “ type”:[“ null”,“ string”], “默认”:null, “ columnName”:“ id”, “ sqlType”:“ 1” },{ “ name”:“ create_date”, “ type”:[“ null”,“ string”], “默认”:null, “ columnName”:“ create_date”, “ sqlType”:“ 93” },{ “ name”:“ modified_date”, “ type”:[“ null”,“ string”], “默认”:null, “ columnName”:“ modified_date”, “ sqlType”:“ 93” }], “ tableName”:“ QueryResult” }

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我的AVRO元数据文件出现问题。我重新创建了它,并使用以下命令将其添加到Hive表中。

更改表table_name设置serdeproperties('avro.schema.url'='hdfs://user/hive/warehouse/schema.db/table_name/1.avsc');