目录
部署前提
一、创建数据上传到hive中
创建学生表数据:vim stu.txt
创建课程表数据:vim course.txt
在hive中创建学生表和课程表:
上传数据到hdfs上的hive中:
二、处理hive中的数据
查询学生姓名和课程信息,创建结果表stu_result:
插入数据:
三、在mysql中创建结果表
四、将hive中处理好的结果同步到mysql
处理mysql乱码(1)
处理mysql乱码(2)
部署前提:
启动Hadoop集群,MySQL
一、创建数据上传到hive中
-
创建学生表数据:vim stu.txt
name,id,age(姓名,学号,年龄):
张三,2001,18
李四,2002,22
王五,2003,20
老六,2004,22
-
创建课程表数据:vim course.txt
id,kcmc,xf(学号,课程名称,学分):
2001,大数据,2
2002,ETL,3
2003,python,1
2004,C语言,2
-
在hive中创建学生表和课程表:
create table hive_db03.stu
(
name string,
id string,
age string
)
row format delimited fields terminated by ',' stored as textfile;
create table hive_db03.course
(
id string,
kcmc string,
xf string
)
row format delimited fields terminated by ',' stored as textfile;
查看创建的两个表:
show tables;
-
上传数据到hdfs上的hive中:
hdfs dfs -put stu.txt /user/hive/warehouse/hive_db03.db/stu
hdfs dfs -put course.txt /user/hive/warehouse/hive_db03.db/course
二、处理hive中的数据
-
查询学生姓名和课程信息,创建结果表stu_result:
create table hive_db03.stu_result
(
name string,
kcmc string,
xf string
)
row format delimited fields terminated by ',' stored as textfile;
-
插入数据:
insert into hive_db03.stu_result select m.name,n.kcmc,n.xf from hive_db03.stu m join hive_db03.course n on m.id=n.id;
三、在mysql中创建结果表:
-
登录:
create table db3.stu_result
(
name varchar(50),
kcmc varchar(50),
xf varchar(20)
);
(注:hive中的string对应MySQL中的varchar)
四、将hive中处理好的结果同步到mysql
sqoop export -connect jdbc:mysql://192.168.43.21:3306/db3 -username sqoop03 -password 123456 -table stu_result -export-dir /user/hive/warehouse/hive_db03.db/stu_result -input-fields-terminated-by ','
-
处理mysql乱码(1)
-
修改mysql配置文件/etc/my.cnf,增加如下信息
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
-
重启mysql:
-
重新创建数据库(注意:一定要重新创建数据库,以前创建的数据库编码并未改变)
-
调用数据库:
-
创建表:
-
查看新建的数据库与表编码,已经变成utf8:
-
重新同步数据:
sqoop export -connect jdbc:mysql://192.168.43.21:3306/db3 -username sqoop03 -password 123456 -table stu_result -export-dir /user/hive/warehouse/hive_db03.db/stu_result -input-fields-terminated-by ','
-
查询:
-
处理mysql乱码(2)
将原数据库编码格式改变(与上面方法不同的是需要每个数据库修改编码)
- 删除原表:drop table xxx;
- 改变数据库编码:alter database db03 character set "utf8";
- 重新创表:create table xxx;
以上就是简单的sqoop导出过程!文章来源:https://www.toymoban.com/news/detail-774514.html
文章来源地址https://www.toymoban.com/news/detail-774514.html
到了这里,关于Sqoop将hive处理的数据导出到MySQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!