hbase实战 与mysql,HBase实战:Sqoop集成:MySQL TO HBase

1.1.利用Sqoop在HBase和RDBMS中进行数据的转储。

相关参数:

参数

描述

--column-family

Sets the target column family for the import 设置导入的目标列族。

--hbase-create-table

If specified, create missing HBase tables 是否自动创建不存在的HBase表(这就意味着,不需要手动提前在HBase中先建立表)

--hbase-row-key

Specifies which input column to use as the row key.In case, if input table contains composite key, then

must be in the form of a comma-separated list of composite key attributes.mysql中哪一列的值作为HBase的rowkey,如果rowkey是个组合键,则以逗号分隔。(注:避免rowkey的重复)

--hbase-table

Specifies an HBase table to use as the target instead of HDFS.指定数据将要导入到HBase中的哪张表中

--hbase-bulkload

Enables bulk loading.是否允许bulk形式的导入。

1.2 案例

1.目标:

将RDBMS中的数据抽取到HBase中

2.分步实现:

(1) 配置sqoop-env.sh,添加如下内容:

export HBASE_HOME=/opt/module/hbase-1.3.1

eb893c8001ea76e466f97fc3371decb6.png

(2) 在Mysql中新建一个数据库db_library,一张表book

mysql> CREATE DATABASE db_library;

mysql> CREATE TABLE db_library.book(

id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,

name VARCHAR(255) NOT NULL,

price VARCHAR(255) NOT NULL);

952bec2aba98b95a0b11c560cad5c8b6.png

(3) 向表中插入一些数据

mysql> INSERT INTO db_library.book (name, price) VALUES('Lie Sporting', '30');

mysql> INSERT INTO db_library.book (name, price) VALUES('Pride & Prejudice', '70');

mysql> INSERT INTO db_library.book (name, price) VALUES('Fall of Giants', '50');

e9343ddb2c24f24714c10871ec513c29.png

插入数据

39686604ab866262a63481bc68eec7e7.png

(4) 执行Sqoop导入数据的操作

手动创建HBase表

hbase> create 'hbase_book','info'

(5) 在HBase中scan这张表得到如下内容

hbase> scan 'hbase_book'

5fbdd215bc2401a3bbaecd7b700a8446.png

思考:尝试使用复合键作为导入数据时的rowkey。

$ bin/sqoop import

--connect jdbc:mysql://hadoop1:3306/db_library

--username root

--password 000000

--table book

--columns "id,name,price"

--column-family "info"

--hbase-create-table

--hbase-row-key "id"

--hbase-table "hbase_book"

--num-mappers 1

--split-by id

提示:sqoop1.4.6只支持HBase1.0.1之前的版本的自动创建HBase表的功能

462de07d9f65150e093d79c355c7c713.png

(6)结果:

36e469dc0cc5d737770469a99a993f1c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值