mysql数据导入导出到hdfs
mysql导入到hdfs bin/sqoop help import 查看帮助
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior0.ibeifeng.com:3306/study \
--username root \
--password 123456 \
--table my_user \
--target-dir /output1 \
--query 'select id, account from my_user where $CONDITIONS' \
--num-mappers 1 \
--as-parquetfile
如果没有指定路径会默认存储在/user/beifeng/下面即是用户主目录
==============================================================
hdfs导出到mysql bin/sqoop help export help查看帮助
bin/sqoop export \
--connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--export-dir /user/beifeng/sqoop/exp/user/ \
--num-mappers 1
导出的目录下的文件要以逗号分隔,因为mysql表默认是以逗号分隔的,或者加上一个参数指定输出分隔符,就会以指定的分隔符来区分不同的字段;
导出到mysql中的表是已存在的
mysql数据导入导出到hive
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--fields-terminated-by '\t' \
--delete-target-dir \
--num-mappers 1 \
--hive-import \
--hive-database default \
--hive-table user_hive
实质上是首先导入数据到hdfs上,然后用一个load语句加载数据到hive
===============================================================
bin/sqoop export \
--connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user2 \
--export-dir /user/hive/warehouse/user_hive \
--num-mappers 1 \
--input-fields-terminated-by '\t'