Hadoop - sqoop Export/Import 分区 table
Hadoop - sqoop Export/Import Partitioned table
谁能解释如何将分区 table 从配置单元导出到 MYSQL 数据库?
以及如何从 mysql 导入分区为 table 的配置单元?
我已阅读 google 中的文档,但不确定可以使用的最新技术。
谢谢
sqoop 到 hive 分区导入
1。在 mysql 中创建一个包含 4 个字段(id、姓名、年龄、性别)
的 table
CREATE TABLE `mon2`
(`id` int, `name` varchar(43), `age` int, `sex` varchar(334))
2。使用 csv abc.csv
将数据插入 mysql table
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
hive 到带分区的 sqoop 导出
1。为加载数据创建 hive_temp table
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。使用要分区的特定列创建分区 table。
create table hive_part1
(id int, name string, age int)
partitioned by (gender string)
row format delimited fields terminated by ',';
4。在 hive_temp table
中添加一个分区
alter table hive_part1 add partition(gender='m');
5。将数据从 temp 复制到 hive_part table
insert overwrite table hive_part1 partition(gender='m')
select id, name, age from hive_temp where gender='m';
6。 sqoop 导出命令
在 mysql
中创建一个 table
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;
希望对你有用
:)
谁能解释如何将分区 table 从配置单元导出到 MYSQL 数据库?
以及如何从 mysql 导入分区为 table 的配置单元?
我已阅读 google 中的文档,但不确定可以使用的最新技术。
谢谢
sqoop 到 hive 分区导入
1。在 mysql 中创建一个包含 4 个字段(id、姓名、年龄、性别)
的 tableCREATE TABLE `mon2`
(`id` int, `name` varchar(43), `age` int, `sex` varchar(334))
2。使用 csv abc.csv
将数据插入 mysql table1,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
hive 到带分区的 sqoop 导出
1。为加载数据创建 hive_temp table
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。使用要分区的特定列创建分区 table。
create table hive_part1
(id int, name string, age int)
partitioned by (gender string)
row format delimited fields terminated by ',';
4。在 hive_temp table
中添加一个分区alter table hive_part1 add partition(gender='m');
5。将数据从 temp 复制到 hive_part table
insert overwrite table hive_part1 partition(gender='m')
select id, name, age from hive_temp where gender='m';
6。 sqoop 导出命令
在 mysql
中创建一个 tablemysql> 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;
希望对你有用 :)