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文件內容

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM