sqoop导出到mysql需要的驱动包是?
你输入sqoopimport的目录在哪里?如果在/usr/sqoop下输入该命令,请在/usr/sqoop下输入hiv
如何用sqoop将hive分区表信息导入到mysql命令?
问题分析:
hive中分区表的底层是HDFS多个目录下的单个文件,hive导出数据的本质是导出HDFS的文件。
hive中的分区表,因为分区字段(静态分区)不在文件中,所以在导出sqoop时不能直接导出。
思路:在hive中创建一个临时表,复制分区表,然后将分区字段转换成普通字段,再用sqoop导出tmp表,实现需求。
步骤如下:
文章目录
1.创建目标表(分区表)
1.1查看表格结构
2.输入数据
3.查询表dept_partition
4.创建临时表。
5.查询临时表
6.检查表结构(此时,分区表已经转换为非分区表)
钟健表部门_分区
8.使用sqoop导入到MySQL。
查询验证已成功导出。
1.创建目标表(分区表)
hivegt创建表`dept_partition`(
`deptno`int,
`dname;字符串,
`loc;字符串)
由(`month`string)行格式分隔的字段以t结尾
一个
2
三
四
五
一个
2
三
四
五
1.1查看表格结构
hivegt显示创建表dept_partition
一个
一个
--
|createtab_stmt|
--
|创建表“dept_partition”(|
|`deptno`int,|
|`dname;字符串,|
|`loc`string)|
|分区者(|
|`月`字符串)
一个
2
三
四
五
六
七
八
九
一个
2
三
四
五
六
七八
九
2.输入数据
hivegt将path/user/hive/hive_db/data/dept.txt中的数据加载到表dept_partition中
一个
一个
10会计1700
20研究1800
30销售1900
40操作1700
一个
2
三
四
一个
2
三
四
3.查询表dept_partition
hivegtselect*fromdept_partition
一个
一个
-----
|dept_|dept_partition.dname|dept_partition.loc|dept_|
-----
|10|会计|1700|2019-10-19|
|20|研究|1800|2019-10-19|
|30|销售|1900|2019-10-19|
|40|运营|1700|2019-10-19|
|10|会计|1700|2019-10-20|
|20|研究|1800|2019-10-20|
|30|销售|1900|2019-10-20|
|40|运营|1700|2019-10-20|
-----
一个
2
三
四
五
六
七
八
九
10
11
12
一个
2
三
四
五
六
七
八
九
10
11
12
4.创建临时表。
希韦特将表tmp_dept_partition创建为select*fromdept_partition
一个
一个
5.查询临时表
hivegtselect*fromtmp_dept_partition
一个
一个
-----
|tmp_dept_|tmp_dept_partition.dname|tmp_dept_partition.loc|tmp_dept_|
-----
|10|会计|1700|2019-10-19|
|20|研究|1800|2019-10-19|
|30|销售|1900|2019-10-19|
|40|运营|1700|2019-10-19|
|10|会计|1700|2019-10-20|
|20|研究|1800|2019-10-20|
|30|销售|1900|2019-10-20|
|40|运营|1700|2019-10-20|
-----
一个
2
三
四
五
六
七
八
九
10
11
12
一个
2
三
四
五
六
七
八
九
10
11
12
6.检查表结构(此时,分区表已经转换为非分区表)
hivegt显示创建表tmp_dept_partition
一个
一个
---
|createtab_stmt|
--
|创建表“tmp_dept_partition”(|
|`deptno`int,|
|`dname;字符串,|
|`loc;字符串,|
|`月`字符串)
一个
2
三
四
五
六
七
八
一个
2
三
四
五
六
七
八
钟健表部门_分区
如果存在dept_partition,mysqlgt将删除表
创建表dept_partition(
`deptno`int,
`dname;varchar(20),
`loc;varchar(20),
`month;varchar(50))
一个
2
三
四
五
六
一个
2
三
四
五
六
8.使用sqoop导入到MySQL。
bin/sqoop导出
-连接JDBC:mysql://Hadoop01:3306/partitionb
-用户名root
-密码123456
-表部门分区
-映射器数量1
-export-目录/用户/配置单元/仓库/配置单元_数据库.数据库/tmp_部门_分区
-输入字段-终止者