15.sqoop数据从mysql里面导入到HDFS里面

表数据

在mysql中有一个库userdb中三个表:emp, emp_add和emp_contact

表emp

id

name

deg

salary

dept

1201

gopal

manager

50,000

TP

1202

manisha

Proof reader

50,000

TP

1203

khalil

php dev

30,000

AC

1204

prasanth

php dev

30,000

AC

1205

kranthi

admin

20,000

TP

表emp_add:

id

hno

street

city

1201

288A

vgiri

jublee

1202

108I

aoc

sec-bad

1203

144Z

pgutta

hyd

1204

78B

old city

sec-bad

1205

720X

hitec

sec-bad

表emp_conn:

 

id

phno

email

1201

2356742

gopal@tp.com

1202

1661663

manisha@tp.com

1203

8887776

khalil@ac.com

1204

9988774

prasanth@ac.com

1205

1231231

kranthi@tp.com

 

分别创建三个表

create table emp(
id int,
name varchar(20),
deg varchar(20),
salary  int,
dept varchar(20)
);

 

 导入数据

insert into emp values(1201,'gopal','manager',50000,'TP');
insert into emp values(1202,' manisha ',' Proof reader',50000,'TP');
insert into emp values(1203,' khalil','php dev',30000,'AC');
insert into emp values(1204,' prasanth',' php dev',30000,'AC');
insert into emp values(1205,' kranthi',' admin',20000,'TP');

 

 

 

create table emp_add(
id int,
hno varchar(20),
street varchar(20),
city varchar(20)
);

 

 

导入数据

insert into emp_add values(1201,'288A','vgiri','jublee');
insert into emp_add values(1202,'1801','aoc','sec-bad');
insert into emp_add values(1203,'144Z','pguttai','hyd');
insert into emp_add values(1204,'78B','old city','sec-bad');
insert into emp_add values(1205,'720X','hitec','sec-bad');

 

 

 

 

create table emp_conn(
id int,
phno int,
email varchar(20)
);

 

 

 导入数据

insert into emp_conn values(1201,'2356742','gopal@tp.com');
insert into emp_conn values(1202,'1661663','manisha@tp.com');
insert into emp_conn values(1203,'8887776','khalil@ac.com');
insert into emp_conn values(1204,'9988774','prasanth@ac.com');
insert into emp_conn values(1205,'1231231','kranthi@tp.com');

 

 

 删除HDFS的目录

 

 

 从MySQL数据库服务器中的emp表导入HDFS

bin/sqoop import \
--connect jdbc:mysql://node1:3306/userdb \
--username sqoop \
--password sqoop \
--table emp --m 1

 

 

 

查看HDSF上的内容

 

 

 

 接下来把Mysql的数据导入到Hive里面

 先启动Hive

 

 在导入之前先把HDFS的/user/hadoop/emp删除,因为Hive的数据是存放在HDFS上

 

 导入到hive表里面

[hadoop@node1 sqoop]$ bin/sqoop import --connect jdbc:mysql://node1:3306/userdb --username sqoop --password sqoop --table emp --hive-import --m 1

 

 

 

 查看HDFS文件

 

 查看hive里面的表

 

 

从mysql数据库中导入到HDFS中的指定目录

bin/sqoop import \
--connect jdbc:mysql://node1:3306/userdb \
--username sqoop \
--password sqoop \
--target-dir /queryresult \
--table emp_add --m 1

 

 

 

导入表数据子集

我们可以导入表的使用Sqoop导入工具,"where"子句的一个子集。它执行在各自的数据库服务器相应的SQL查询,并将结果存储在HDFS的目标目录。

 

 下面的命令用来导入emp_add表数据的子集。子集查询检索员工ID和地址,居住城市为:Secunderabad

bin/sqoop import \
--connect jdbc:mysql://node1:3306/userdb \
--username sqoop \
--password sqoop \
--where "city ='sec-bad'" \
--target-dir /wherequery \
--table emp_add --m 1

 

 

 

 

 

查看HDFS文件内容

 

转载于:https://www.cnblogs.com/braveym/p/10882860.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值