当前位置:  开发笔记 > 编程语言 > 正文

Hadoop-sqoop导出/导入分区表

如何解决《Hadoop-sqoop导出/导入分区表》经验,为你挑选了1个好方法。

谁能解释如何将分区表从配置单元导出到MYSQL数据库?

以及如何从mysql导入到配置单元分区表?

我已经阅读了google中的文档,但不确定可以使用的最新技术。

谢谢



1> 小智..:

sqoop到配置单元分区导入

1.在mysql中创建一个具有4个字段(ID,名称,年龄,性别)的表

CREATE TABLE `mon2`
(`id` int, `name` varchar(43), `age` int, `sex` varchar(334))

2.使用csv abc.csv将数据插入mysql表

1,mahesh,23,m
2,ramesh,32,m
3,prerna,43,f
4,jitu,23,m
5,sandip,32,m
6,gps,43,f

mysql> source location_of_your_csv/abc.csv

3.现在启动您的hadoop服务并转到$ SQOOP_HOME并为分区配置单元导入编写sqoop导入查询。

sqoop import \
--connect jdbc:mysql://localhost:3306/apr \
--username root \
--password root \
-e "select id, name, age from mon2 where sex='m' and \$CONDITIONS" \
--target-dir /user/hive/warehouse/hive_part \
--split-by id \
--hive-overwrite \
--hive-import \
--create-hive-table \
--hive-partition-key sex \
--hive-partition-value 'm' \
--fields-terminated-by ',' \
--hive-table mar.hive_part \
--direct

蜂巢以分区导出输出

1.创建hive_temp表以加载数据

create table hive_temp
(id int, name string, age int, gender string)
row format delimited fields terminated by ',';

2.加载数据

load data local inpath '/home/zicone/Documents/pig_to_hbase/stack.csv' into table hive_temp;

3.创建一个具有要分区的特定列的分区表。

create table hive_part1
(id int, name string, age int)
partitioned by (gender string)
row format delimited fields terminated by ',';

4.在hive_temp表中添加一个分区

alter table hive_part1 add partition(gender='m');

5.将数据从temp复制到hive_part表

insert overwrite table hive_part1 partition(gender='m')
select id, name, age from hive_temp where gender='m';

6. sqoop导出命令

在mysql中创建表

mysql> create table mon3 like mon2;

sqoop export \
--connect jdbc:mysql://localhost:3306/apr \
--table mon3 \
--export-dir /user/hive/warehouse/mar.db/hive_part1/gender=m \
-m 1 \
--username root \
--password root

现在转到mysql终端并运行

select * from mon3;

希望对你有帮助 :)

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有