文章插图
将 MySQL 的数据导入到 HDFS 中
/usr/local/service/sqoop/bin/sqoop-import --connect jdbc:mysql://$mysqlIP/test --username root -P --table sqoop_test -m 4 --target-dir /sqoop --fields-terminated-by 't'
- --connect 用于连接 MySQL 数据库
- -P是指手动输出密码,可以用--password直接明文跟上密码
- test是数据库名,-P表示之后需要输入密码
- --table 为想要导出的表名,--target-dir 为导出到 HDFS 中的路径
- /sqoop文件夹在执行命令之前并未创建,如果文件夹已经存在会出错 。
- --target-dir后还可以跟cos路径,直接导出到cos中,同样的,如果cos中的目录已经存在也会报错 。
- -m 4是指使用4个map并行来跑,对应的hdfs中会使用4个分区来存储这些数据
- --split-by id是指通过id字段进行hash分片
/usr/local/service/sqoop/bin/sqoop-export --connect jdbc:mysql://$mysqlIP/test --username root -P --table sqoop_test -m 4 --export-dir /sqoop --input-fields-terminated-by 't'
- 同上,--export-dir也支持跟cos路径 。
- --table对应的表必须存在 。
Append
/usr/local/service/sqoop/bin/sqoop-export --connect jdbc:mysql://$mysqlIP/test --username root -P --table sqoop_test --check-column id--incremental append --last-value 3 --export-dir /sqoop --input-fields-terminated-by 't'
lastmodified/usr/local/service/sqoop/bin/sqoop-export --connect jdbc:mysql://$mysqlIP/test --username root -P --table sqoop_test --check-column time--incremental lastmodified --merge-key id --last-value '2020-10-21 16:02:29' --export-dir /sqoop --input-fields-terminated-by 't'
将关系型数据库导入到 Hive 中使用hive-import/usr/local/service/sqoop/bin/sqoop-import --connectjdbc:mysql://$mysqlIP/test --username root -P --table sqoop_test --hive-import --hive-database db_sqoop_test --hive-table sqoop_test
使用hcatalog(推荐使用此方式)如果hive存储格式不是text,就必须用这种方式/usr/local/service/sqoop/bin/sqoop-import --connectjdbc:mysql://$mysqlIP/test --username root -P --table sqoop_test --hcatalog-database test_dlm --hcatalog-table table_name --hive-partition-key dt --hive-partition-value 201905
如果hive表有分区,就必须带上--hive-partition-key和--hive-partition-value参数将 Hive 导出到关系型数据库中MySQL 中的表字段名字和 Hive 中的表字段名字必须完全一致
使用 HDFS 中的 Hive 数据使用hdfs文件的方式,需要保证分隔符能正确分割内容,否则会报错
/usr/local/service/sqoop/bin/sqoop-export --connect jdbc:mysql://$mysqlIP/test--username root -P --table table_from_hive --export-dir /usr/hive/warehouse/hive_to_sqoop.db/hive_test
使用 Hcatalog 进行导出(推荐使用此方式)/usr/local/service/sqoop/bin/sqoop-export --connect jdbc:mysql://$mysqlIP/test--username root -P --table table_from_hive --hcatalog-database hive_to_sqoop --hcatalog-table hive_test--hive-partition-key dt --hive-partition-value 201905
常见异常报错处理如果失败,可以到yarn manager resource上去看错误日志格式不对
Error: JAVA.io.IOException: Can't export data, please check failed map task logs at org.Apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:122) at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146) at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:175) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1844) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:169) Caused by: java.lang.RuntimeException: Can't parse input data: '50.00' at bill_detail_song_201905_sqoop_cos.__loadFromFields(bill_detail_song_201905_sqoop_cos.java:2925) at bill_detail_song_201905_sqoop_cos.parse(bill_detail_song_201905_sqoop_cos.java:2410) at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:89) ... 10 more Caused by: java.lang.NumberFormatException: For input string: "50.00" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:589) at java.lang.Long.valueOf(Long.java:803) at bill_detail_song_201905_sqoop_cos.__loadFromFields(bill_detail_song_201905_sqoop_cos.java:2616) ... 12 more
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 模拟CDN的浏览器扩展程序,改善在线隐私
- sync-player使用websocket实现异地同步播放
- trouble shooting 问题跟踪
- 为什么有些公司不让用Lombok?
- 星露谷物语阿尔比盖在哪
- MYSQL使用初步流程介绍
- 使用charles嗅探https请求,你的API并不安全
- 拍熟西瓜的声音 西瓜声音脆的熟还是闷的熟
- 小动物之星隐藏任务 小动物之星隐藏任务
- Node/JavaScript中的模板引擎