sqoop1.4.7 将Hive数据导入到MySQL(本质是将HDFS文件导入到MySQL)

介绍

本案例是将hive中的数据,导入到 MySQL中

本质:由于 Hive数据库中的数据存储在 HDFS 上,本质上,是将 HDFS 中的文件,导入到MySQL中

启动服务

登录 hadoop1,执行下面命令:

cd /program/bin

启动 hadoop

./hadoop.sh start

启动hive

./hive.sh start

Hive准备工作

详见:hive教程:select查询语句-准备数据(dept、emp)

MySQL 准备

建库

创建 scott 数据库

mysql -uroot -proot -e 'create database if not exists  scott;'

创建表

mysql -uroot -proot -e 'create table scott.dept(deptno int ,dname varchar(255),loc varchar(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;'

全部导入

将 hive 表中,HDFS 中的文件导入到MySQL 中

cd /program/sqoop-1.4.7
bin/sqoop export --connect jdbc:mysql://hadoop1:3306/scott --username root --password root --table dept --export-dir '/user/hive/warehouse/dept'  --input-fields-terminated-by ','

解释

  • sqoop export:Sqoop 核心指令,用于将 HDFS/Hive 数据导出到关系型数据库(此处为 MySQL)

  • --connect jdbc:mysql://hadoop1:3306/weibo:MySQL 连接串:指定数据库地址(hadoop1:3306)、目标数据库名(weibo)

  • --username root MySQL 登录用户名(root)

  • --password root MySQL 登录密码(root,明文存在安全风险,后文优化)

  • --table weibo:目标 MySQL 表名(数据导入到 weibo 表)

  • --export-dir '/user/hive/warehouse/weibo_uid_wbcnt':HDFS 数据源路径(Hive 表 weibo_uid_wbcnt 的默认存储路径)

  • --input-fields-terminated-by '\t':HDFS 数据文件的字段分隔符(制表符 \t,需与 Hive 表存储格式一致)

查询MySQL数据

登录 hadoop1 服务器:

执行下面命令,登录 MySQL:

mysql -uroot -p

然后输入密码

查询表

select * from scott.dept;


原文出处:/show_1GW2MtugJyyL.html