sqoop mysql parquet_Sqoop抽取Hive Parquet表数据到MySQL异常分析
溫馨提示:要看高清無(wú)碼套圖,請(qǐng)使用手機(jī)打開(kāi)并單擊圖片放大查看。
Fayson的github:https://github.com/fayson/cdhproject
1.問(wèn)題描述
在CDH集群中我們需要將Hive表的數(shù)據(jù)導(dǎo)入到RDBMS數(shù)據(jù)庫(kù)中,使用Sqoop工具可以方便的將Hive表數(shù)據(jù)抽取到RDBMS數(shù)據(jù)庫(kù)中,在使用Sqoop抽取Hive Parquet表時(shí)作業(yè)執(zhí)行異常。
Sqoop抽數(shù)腳本:
sqoopexport \
--connect jdbc:mysql://localhost:3306/test_db \
--username root \
--password123456\
--table mytest_parquet \
--export-dir /user/hive/warehouse/mytest_parquet \
-m1
異常日志:
17/12/1701:18:52 ERROR sqoop.Sqoop: Got exception running Sqoop: org.kitesdk.data.DatasetNotFoundException: Descriptor location does not exist: hdfs://nameservice1/user/hive/warehouse/mytest_parquet/.metadataorg.kitesdk.data.DatasetNotFoundException:Descriptor location does not exist: hdfs://nameservice1/user/hive/warehouse/mytest_parquet/.metadataatorg.kitesdk.data.spi.filesystem.FileSystemMetadataProvider.checkExists(FileSystemMetadataProvider.java:562)atorg.kitesdk.data.spi.filesystem.FileSystemMetadataProvider.find(FileSystemMetadataProvider.java:605)atorg.kitesdk.data.spi.filesystem.FileSystemMetadataProvider.load(FileSystemMetadataProvider.java:114)atorg.kitesdk.data.spi.filesystem.FileSystemDatasetRepository.load(FileSystemDatasetRepository.java:197)atorg.kitesdk.data.Datasets.load(Datasets.java:108)atorg.kitesdk.data.Datasets.load(Datasets.java:140)atorg.kitesdk.data.mapreduce.DatasetKeyInputFormat$ConfigBuilder.readFrom(DatasetKeyInputFormat.java:92)atorg.kitesdk.data.mapreduce.DatasetKeyInputFormat$ConfigBuilder.readFrom(DatasetKeyInputFormat.java:139)atorg.apache.sqoop.mapreduce.JdbcExportJob.configureInputFormat(JdbcExportJob.java:84)atorg.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java:429)atorg.apache.sqoop.manager.SqlManager.exportTable(SqlManager.java:931)atorg.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:80)atorg.apache.sqoop.tool.ExportTool.run(ExportTool.java:99)atorg.apache.sqoop.Sqoop.run(Sqoop.java:147)atorg.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)atorg.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)atorg.apache.sqoop.Sqoop.runTool(Sqoop.java:234)atorg.apache.sqoop.Sqoop.runTool(Sqoop.java:243)atorg.apache.sqoop.Sqoop.main(Sqoop.java:252)[ec2-user@ip-172-31-22-86~]$
2.解決方法
1.將Sqoop抽數(shù)腳本修改為如下:
sqoopexport \
--connect jdbc:mysql://ip-172-31-22-86.ap-southeast-1.compute.internal:3306/test_db \
--username testuser \
--password password \
--table mytest_parquet \
--hcatalog-database default \
--hcatalog-table mytest_parquet --num-mappers1
參數(shù)說(shuō)明:
--table:MySQL庫(kù)中的表名
--hcatalog-database:Hive中的庫(kù)名
--hcatalog-table:Hive庫(kù)中的表名,需要抽數(shù)的表
--num-mappers:執(zhí)行作業(yè)的Map數(shù)
2.修改后執(zhí)行抽數(shù)作業(yè)
作業(yè)執(zhí)行成功。
3.查看MySQL表數(shù)據(jù)
3.總結(jié)
目前通過(guò)Sqoop從Hive的parquet抽數(shù)到關(guān)系型數(shù)據(jù)庫(kù)的時(shí)候會(huì)報(bào)kitesdk找不到文件的錯(cuò),這是Sqoop已知的問(wèn)題,參考SQOOP-2907:
https://issues.apache.org/jira/browse/SQOOP-2907
該jira目前并沒(méi)有修復(fù),如果要實(shí)現(xiàn)該功能,需要參考第二章的做法,使用hcatalog參數(shù)指定到Hive表。
為天地立心,為生民立命,為往圣繼絕學(xué),為萬(wàn)世開(kāi)太平。
溫馨提示:要看高清無(wú)碼套圖,請(qǐng)使用手機(jī)打開(kāi)并單擊圖片放大查看。
您可能還想看
安裝
安全
數(shù)據(jù)科學(xué)
其他
推薦關(guān)注Hadoop實(shí)操,第一時(shí)間,分享更多Hadoop干貨,歡迎轉(zhuǎn)發(fā)和分享。
原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自微信公眾號(hào)Hadoop實(shí)操
總結(jié)
以上是生活随笔為你收集整理的sqoop mysql parquet_Sqoop抽取Hive Parquet表数据到MySQL异常分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 长安渝北工厂机器人_长安工厂探秘!解密C
- 下一篇: mysql 检查记录存在_Mysql 插