目录
先在本机MySQL建好例表:
将MySQL中的数据导入到HDFS中
启动Hadoop集群
bin/zkServer.sh start
sbin/start-all.sh
sbin/hadoop-daemon.sh start zkfc
执行导入命令
sqoop import --connect jdbc:mysql://192.168.213.1:3306/test?serverTimezone=Hongkong\&characterEncoding=UTF-8 --username hive --P --table user_info --columns "user_id,user_name,password,true_name,added_time" --target-dir /sqoop/mysql
查看导入结果
hadoop fs -ls /sqoop/mysql
可以看到,MySQL中的表user_info已经导入到了HDFS中
将HDFS中的数据导出到MySQL中
接下来使用上面案例生成的/sqoop/mysql/part-m-00000中的数据导出到MySQL
新建表
执行导出命令
sqoop export --connect jdbc:mysql://192.168.213.1:3306/test?serverTimezone=Hongkong\&characterEncoding=UTF-8 --username hive --P --table user_info_2 --export-dir /sqoop/mysql/part-m-00000
查看导出结果
导出成功
上述测试也可以将/sqoop/mysql下的所有有数据一起导出,只需要将"/sqoop/mysql/part-m-00000"改为"/sqoop/mysql/*"即可
将MySQL中的数据导入到HBase中
这里还是使用上面的user_info
表进行演示
启动HBase
start-hbase.sh
新建HBase表
hbase shell
create 'user_info','baseinfo'
执行导入命令
sqoop import --connect jdbc:mysql://192.168.213.1:3306/test?serverTimezone=Hongkong\&characterEncoding=UTF-8 --username hive --P --query "SELECT * FROM user_info WHERE 1 = 1 AND \$CONDITIONS" --hbase-table user_info --column-family baseinfo --hbase-row-key user_id --split-by added_time --m 2
查看导入结果
scan 'user_info'
可以看到,数据已成功导入