sqoop1.4.5将mysql中的数据导入到HBase中

什么是sqoop?

关于发音,困扰了我很久,一番类比之后,决定读为“丝库坡”,英语老师看见了会不会疯掉,呵呵,我就是这样一个逗x。

 

书归正传:
Sqoop【SQL-To-Hadoop】是将关系型数据库的数据(MySQL or Oracle or Postgre)导入到HDFS及其子系统中(Hive, HBase)的工具

 

sqoop有两个版本,sqoop1和sqoop2,两者特性不同,本文仅介绍sqoop1的使用,其实是精力有限

 

sqoop1.4.5的搭建过程如下:

1. 软件的版本:

hadoop-1.0.3
zookeeper-3.4.4
hbase-0.94.0
sqoop-1.4.5

 

2. 基础的Hadoop上搭建Hbase的步骤略过

 

3. 解压压缩包并重命名
cd /usr/local/
tar -xzvf sqoop-1.4.5.bin__hadoop-1.0.0.tar.gz
mv sqoop-1.4.5.bin__hadoop-1.0.0 sqoop

 

4. 将mysql的jdbc驱动,复制到sqoop项目的lib目录下
使用的mysql驱动包版本: mysql-connector-java-5.1.34-bin.jar
注意: mysql connector 5.1.32以下版本mysql jar有bug

 

5. 重命名配置文件并指定其参数
cd  /usr/local/sqoop/conf
mv sqoop-env-template.sh sqoop-env.sh
本次使用到了hadoop hbase及zookeeper,因此需要指定如下参数
export HADOOP_COMMON_HOME=/usr/local/hadoop
#指定hadoop-*-core.jar文件的位置
export HADOOP_MAPRED_HOME=/usr/local/hadoop
export HBASE_HOME=/usr/local/hbase
export ZOOCFGDIR=/usr/local/zookeeper/conf

 

6. 尝试用sqoop连接到Mysql数据库

#列出Mysql的dbName下的所有表

/usr/local/sqoop/bin/sqoop list-tables --connect jdbc:mysql://ip:3306/dbName --username XXX --password XXX

 

7. 数据导入

带主键的全列操作
/usr/local/sqoop/bin/sqoop import --connect jdbc:mysql://ip:3306/dbName --username XXX --password XXX --table MysqlTableName --hbase-table HBaseTableName  --column-family HBase_CF --hbase-create-table

 

带主键的部分列操作
/usr/local/sqoop/bin/sqoop import --connect jdbc:mysql://ip:3306/dbName --username XXX --password XXX --table MysqlTableName --hbase-table HBaseTableName --columns column1,column2 --column-family HBase_CF --hbase-create-table

 

无主键的部分列导入,将其中一个设为rowkey
/usr/local/sqoop/bin/sqoop import --connect jdbc:mysql://ip:3306/dbName --username XXX --password XXX --table MysqlTableName --hbase-table HBaseTableName --columns column1,column2 --column-family HBase_CF --hbase-row-key column1 --hbase-create-table

 

8.源码中代码结构图如下

原理是利用mapreduce的job向hbase中写入数据



 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值