3. Sqoop
3.1环境
在以上环境完成以后如果要对关系型数据库进行交互,那么需要Sqoop。以上安装的是组件服务组件中检查一下是不是有Sqoop或者Sqoop2。这个是与关系型数据库交互的服务组件。如果没有。按照下图进行增加。推荐使用Sqoop,这个属于客户端类型,上手比较简单。
选中Sqoop Client组件,进行安装。角色推荐放在主节点(hbase、hive所在的机器)
3.2支持
连接mysql需要相应的包,包名mysql-connector-java-5.1.26-bin.jar可以去下载或者下载更新的。
推荐放在主节点的/opt/cloudera/parcels/CDH-5.4.3-1.cdh5.4.3.p0.6/lib/hadoop/ 红色部分是CDH版本不同可能数字会有点不一样。
3.3Sqoop连接mysql
示例:
sqoop list-databases --connect jdbc:mysql://172.20.2.105:p/ --username root --password p
sqoop list-tables --connect jdbc:mysql://172.20.2.105:p/mysql --username root --password P
红色部分是变量,根据实际情况自己填写。
3.4 mysql导入hive
先创建表结构
sqoop create-hive-table --connect jdbc:mysql://172.20.2.105:p/test --table yyy --username root --password P --hive-table yyy
红色部分是变量,根据实际情况自己填写。
再导数据
sqoop import --connect jdbc:mysql://172.20.2.105:p/test --username root --password P --table yyy --hive-import
mysql的表必须有主键,才能导入。
3.5 hive导入mysql
sqoop export --connect jdbc:mysql://172.20.2.105:p/test --username root --password P --table zzz --export-dir /user/hive/warehouse/yyy --input-fields-terminated-by '\0001'
红色部分是变量,根据实际情况自己填写。
导出路径的地址用命令:hadoop fs -lsr / 进行查看。
导入之前mysql中的表结构也要建立起来才能导入成功。