sqoop:hive_to_mysql

本文介绍了如何在Linux下启动MySQL和Hive集群,创建表,处理数据(包括从文本文件到HDFS,Hive查询,以及使用Sqoop将Hive数据导入MySQL并解决字符编码问题)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 启动集群
  2. 在root用户下启动MySQL;ps  -ef | grep mysql查看3306是否启动:

  1. 启动hive,use bigdata02,show create table student:

得到文件目录/user/hive/warehouse/bigdata02.db/student

  1. 创建表student

 create table bigdata02.student

(

xh String,

    xm String

    )

    row format delimited fields terminated by  ','  stored as textfile

     ;

  1. 在根目录下创建一个数据vim studentdata:

20117701,张仲景

20117702,华佗

20117703,扁鹊

20117704,李时珍

  1. 将studentdata的数据上传到hdfs中:

 hadoop fs -put studentdata  /user/hive/warehouse/bigdata02.db/student

在hive中查看:

  1. 在hive中建一张课程表:

create table bigdata02.course

(

kch String,

xh String,

kcmc String,

xf String

)

 row format delimited fields terminated by  ','  stored as textfile

location ‘/course01’;

  1. 在根目录下创建一个数据:vim coursedata:

C001 ,20117703,ETL技术,2

C002 ,20117702,数据可视化,3

C001,20117703,ETL技术,2

C003 ,20117702,MySQL ,2

C004,20117 703,Linux,2

C001,20117701,ETL技术,2

  1. 将coursedata的数据上传到hdfs中:

在hive中查看:

  1. 前端的需求:

扁鹊同学选修了哪些课程,课程学分是多少

 SELECT

     s.xm,c.kcmc,c.xf

     FROM student s

     JOIN course c

     ON s.xh=c.xh

     WHERE s.xm="扁鹊";

  1. 为查询结果创建一个表:

create table bigdata02.jgb

(

xm String,

kcmc String,

xf String

)

 row format delimited fields terminated by  ','  stored as textfile;

接着再执行:

INSERT INTO bigdata02.jgb

 SELECT

     s.xm,c.kcmc,c.xf

     FROM student s

     JOIN course c

     ON s.xh=c.xh

     WHERE s.xm="扁鹊";

执行结果如下:

查询表jgb数据:

select * from jgb;

  1. 查看结果表存储再hdfs得目录:

  SHOW create table jgb;

获取导入路径:

/user/hive/warehouse/bigdata02.db/jgb/000000_0

  1. 将数据导入MySQL:

①在MySQL得db02数据库中创建表:

create table hive_to_mysql(name VARCHAR(50),cname VARCHAR(50),score int);

sqoop export -connect jdbc:mysql://192.168.43.216:3306/db02 -username root -password 123456  -table hive_to_mysql --fields-terminated-by ','

--export-dir /user/hive/warehouse/bigdata02.db/jgb/000000_0

导入成功:

在MySQL中查看:

存在中文乱码,输入指令查看SHOW VARIABLES LIKE 'character%';

在/etc/my.cnf文件中添加:

[mysqld]

character-set-server=utf8mb4

再在MySQL中查看:

查看表没有乱码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值