sqoop mysql parquet_Sqoop抽取Hive Parquet表数据到MySQL异常分析
溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖片放大查看。
Fayson的github:https://github.com/fayson/cdhproject
1.問題描述
在CDH集群中我們需要將Hive表的數據導入到RDBMS數據庫中,使用Sqoop工具可以方便的將Hive表數據抽取到RDBMS數據庫中,在使用Sqoop抽取Hive Parquet表時作業執行異常。
Sqoop抽數腳本:
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抽數腳本修改為如下:
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
參數說明:
--table:MySQL庫中的表名
--hcatalog-database:Hive中的庫名
--hcatalog-table:Hive庫中的表名,需要抽數的表
--num-mappers:執行作業的Map數
2.修改后執行抽數作業
作業執行成功。
3.查看MySQL表數據
3.總結
目前通過Sqoop從Hive的parquet抽數到關系型數據庫的時候會報kitesdk找不到文件的錯,這是Sqoop已知的問題,參考SQOOP-2907:
https://issues.apache.org/jira/browse/SQOOP-2907
該jira目前并沒有修復,如果要實現該功能,需要參考第二章的做法,使用hcatalog參數指定到Hive表。
為天地立心,為生民立命,為往圣繼絕學,為萬世開太平。
溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖片放大查看。
您可能還想看
安裝
安全
數據科學
其他
推薦關注Hadoop實操,第一時間,分享更多Hadoop干貨,歡迎轉發和分享。
原創文章,歡迎轉載,轉載請注明:轉載自微信公眾號Hadoop實操
總結
以上是生活随笔為你收集整理的sqoop mysql parquet_Sqoop抽取Hive Parquet表数据到MySQL异常分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 长安渝北工厂机器人_长安工厂探秘!解密C
- 下一篇: php黄页,PHP 黄页的url