使用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'

这里写图片描述

扫描二维码关注公众号,回复: 1441453 查看本文章

再次扫描表

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中转实现数据传递的

猜你喜欢

转载自blog.csdn.net/Magic_Ninja/article/details/80555254
今日推荐