1.参考官网文档:http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_importing_data_into_hive_2
2.sqoop可以将mysql写入hive、HDFS、hbase中
3.sqoop可以将hive、HDFS、hbase数据写入mysql中
4.发音:死谷瀑
安装
- 解压
tar -zxvf sqoop-1.4.6.xxx.tar.gz -C /opt/bigdata - 复制
mv sqoop-1.4.6.xxx sqoop sqoop-1.4.6 - 配置环境
/etc/profile - 测试
sq - 配置 /conf目录
mv sqoop-env-template.sh sqoop-env.sh(不用修改。里面都是找hadoop环境,已经有了) - 拷贝
mysql驱动包到 /lib 目录下 - 查看版本
sqoop version - 测试连接mysql,连接成功会显示所有库
sqoop list-databases --connect jdbc:mysql://node01:3306 --username root --password aa123456
- sqoop也是一个MR
将mysql数据写入HDFS
语法: sqoop import --connect jdbc:mysql://ke01:3306/test --username root --password aa123456 --as-textfile --columns id,name --delete-target-dir -m 1 --table info --target-dir /sqoop 运行时会启动一个MR任务
测试:HIVE中验证数据 hive> dfs -cat /sqoop/*; 1,xiaoke 2,xiaowang 3,xiaoming 4,4
将命令放入文件中
vi option2 import --connect jdbc:mysql://ke01:3306/test --username root --password aa123456 --as-textfile --delete-target-dir -m 1 --target-dir /sqoop -e select * from info where id > 2 and $CONDITIONS $CONDITIONS是sql中的1=1 执行: sqoop --option-file option2 验证: dfs -cat /sqoop/* 3,xiaoming 4,4
sqoop写入到hive中
参考:7.2.12. Importing Data Into Hive
vi option3 import --connect jdbc:mysql://ke01:3306/test --username root --password aa123456 --as-textfile --delete-target-dir -m 1 --target-dir /sqoop -e select * from info where id > 2 and $CONDITIONS --hive-import --create-hive-table --hive-table h_info 运行: sqoop --options-file option3
MR运行步骤: sqoop先往hdfs中写数据,在写入hive(HDFS对应hive目录)中
也可以自己指定分隔符:
--input-fields-terminated-by
sqoop写入到HBase中
需要找到对应的sqoop版本和hbase版本,否则报错
参考:7.2.13. Importing Data Into HBase
将hive(hdfs)数据导入mysql
1.当数据是map、数组格式会把这个列当做一个字符串存入mysql
vi option4 export --connect jdbc:mysql://ke01:3306/test --username root --password aa123456 --columns id,name,hobby,address --export-dir /user/hive_ke/warehouse/psn1 -m 1 --table test
运行:
sqoop --options-file option4
如果目录/user/hive_ke/warehouse/psn1 是HDFS有分隔符则使用 --input-fields-terminated-by
浙公网安备 33010602011771号