导入到HDFS
全部导入
sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--target-dir /user/test1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t'
查询导入
sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--target-dir /user/test1 \
--delete-target-dir \
--m 1 \
--fields-terminated-by '\t' \
--query 'select * from students where $CONDITIONS'
注意:sql语句末尾必须加上$CONDITIONS
导入指定列
sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--target-dir /user/test1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t' \
--columns id,sex
提示:columns中如果涉及到多列,用逗号分隔,分隔时不要添加空格
关键字筛选查询导入数据
sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--target-dir /user/test1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t' \
--where "id=2"
导入到Hive
1. 直接导入到hive
sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--m 1 \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table students
提示:Hive中的表要存在,不存在不会自动创建
2. 导入到HDFS然后load到Hive
1.导入到HDFS
sqoop import \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--table students \
--target-dir /user/test1 \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t'
2.load 到Hive
load data inpath '/user/test1' into table hive表名字
导出到MySQL
sqoop export \
--connect jdbc:mysql://hadoop01:3306/test1 \
--username root \
--password 1234 \
--export-dir /user/test1 \
--table students \
--input-fields-terminated-by '\t'
--m 1
提示:导出数据时MySQL表必须存在
使用sqoop进行HDFS、Hive与MySQL的数据导入导出
这篇博客介绍了如何使用sqoop工具进行数据操作,包括从不同源导入到HDFS和Hive,以及将数据导出到MySQL。详细步骤涵盖了全量导入、查询导入、指定列导入、以及使用关键字筛选导入数据到Hive,并讨论了直接导入和通过HDFS中转加载到Hive的方法,同时也强调了导出到MySQL时目标表必须存在的要求。
1090

被折叠的 条评论
为什么被折叠?



