需求
有一些特殊的场景,需要将Hive中的结构化数据表的数据导入到MySQL中.如果是使用HiveContext去导的话,需要编写代码,然后提交jar包,比较麻烦.可以直接使用Sqoop组件将Hive的数据导入到MySQL中.Sqoop的安装和使用在这里不再赘述了.
1.创建Hive表
创建的Hive表及其定义的字段如下:
create external table behavior1(
city string,
page string,
time string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY '|';
2.Hive表加载数据
在hive数据仓库中将从behavior表(其他保存数据的一个hive表)中查询回来的数据插入到表behavior1中:
insert overwrite table behavior1 select city,page,time from behavior;
3.验证加载数据是否成功
查询hive数据仓库中behavior1的表中是否有数据:
select * from behavior1 limit 10;
4.在MySQL中创建数据表
在MySQL中创建表格behavior以用来保存Hive导进来的数据,申明使用uft-8编码(因为hive中的数据有中文,最好使用utf8编码,为避免以后出现编码问题,即使数据内容现在没有中文,也是建议使用utf8编码):
create table behavior(
city char(100),
page char(100),
time char(100)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
5.测试Sqoop连接数据库
测试sqoop连接数据库是否正常: