使用sqoop从hive中导入数据到hbase

简单的操作

hbase中建表并注入数据

创建一个test的表

create 'test', {NAME=>'f1'}

插入数据

put 'test', 'a001', 'f1:uid', '001'
这里写图片描述

扫描test

scan 'test'
这里写图片描述

查看结构

describe 'test'
这里写图片描述

修改表

解锁表

disable 'test'

修改

alter 'test', NAME=>'f1', VERSION=>3

锁定表

enable 'test'
这里写图片描述

再次查看表

describe 'test'
这里写图片描述

清空表

truncate 'test'
这里写图片描述

再次扫描表

scan 'test'
这里写图片描述

删除表

解锁表

disable 'test'

删除表

drop 'test'

list查看,就已经没有’test’这个表了

list
这里写图片描述

sqoop从hive导入数据到hbase

在hive新建一张表

首先是操作过sogou数据了的,我需要导入的数据是基于之前操作的sogou的数据的

在hive中连接sogou数据库(之前创建的,翻之前的博客)

use sogou

在hive的sogou数据库下新建表

CREATE TABLE sogou.uid_cnt(
uid STRING,
cnt INT)
COMMENT 'This is the sogou search data of one day'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
这里写图片描述

查询并插入

INSERT OVERWRITE TABLE sogou.uid_cnt SELECT uid,count(*) as cnt from sogou.sogou_ext_20111230 group by uid;
这里写图片描述

使用 Sqoop 将数据导入 MySQL

mysql中新建数据库并连接

CREATE DATABASE my_test;
use my_test
这里写图片描述

mysql my_test中创建一个表uid_cnt

CREATE TABLE uid_cnt(
uid varchar(255) DEFAULT NULL,
cnt int(11) DEFAULT NULL
)DEFAULT CHARSET=utf8;

设置mysql的访问权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

进入sqoop安装目录开始导入数据

bin/sqoop export --connect jdbc:mysql://master:3306/my_test --username root -password 123456 --table uid_cnt --export-dir '/user/hive/warehouse/sogou.db/uid_cnt' --fields-terminated-by '\t'
这里写图片描述

查看mysql中之前创建的表的内容

select * from uid_cnt
这里写图片描述
这里写图片描述

hbase新建表

create 'uid_cnt', {NAME=>'f1', VERSON=>5}

使用 Sqoop 从mysql将数据导入 HBase

输入以下代码

bin/sqoop import --connect jdbc:mysql://master:3306/my_test --username root --password 123456 --table uid_cnt --hbase-table uid_cnt --column-family f1 --hbase-row-key uid --hbase-create-table -m 1
这里写图片描述
这里写图片描述

查看数据

scan 'uid_cnt'
这里写图片描述

这是通过mysql中转实现数据传递的


水印是我自己csdn的博客文章,有兴趣可以去看看。

相关文章

发表回复

您的电子邮箱地址不会被公开。