本文是基于教程大数据案例——本地文件上传hive数据库,对数据在Hive,MySQL,HBase之间的互导进行进阶版的学习。数据集:淘宝用户点击商品操作数据集,共30万条记录。如果没有安装MySQL,HBase,Sqoop请参考博文安装:Ubuntu安装MySQL及常用操作,Ubuntu安装HBase及常用操作,Ubuntu安装Sqoop1。
一、Hive预操作
1、创建临时表user_action
hive> create table dblab.user_action(id STRING,uid STRING, item_id STRING, behavior_type STRING, item_category STRING, date DATE, province STRING) COMMENT 'Welcome to xmu dblab! ' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
2、将small_user表中的数据插入到user_action(执行时间:10秒左右)
hive> INSERT OVERWRITE TABLE dblab.user_action select * from dblab.small_user;
查询命令是否成功插入。select * from user_action limit 10;
二、使用Sqoop将数据从Hive导入MySQL
1、启动hadoop集群、MySQL服务
start-all.sh
service mysql start
2、将前面生成的临时表数据从 HDFS 导入到 MySQL 中,步骤如下:(1)~(4)操作都是在 MySQL 交互客户端执行。
(1)登录 MySQL,回车并输入密码
mysql –u hive –p
(2)创建数据库
mysql> show databases; #显示所有数据库
mysql> create database dblab; #创建dblab数据库
mysql> use dblab; #使用数据库
注意:查看数据库的编码show variables like "char%";
,请确认当前编码为utf8,否则无法导入中文,请参考Ubuntu安装MySQL及常用操作修改编码。
(3)创建表,并设置其编码为utf-8
mysql> CREATE TABLE `dblab`.`user_action` (`id` varchar(50),`uid` varchar(50),`item_id` varchar(50),`behavior_type` varchar(10),`item_category