表数据
在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
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(
idint,
name varchar(20),
deg varchar(20),
salaryint,
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(
idint,
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(
idint,
phnoint,
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文件内容