Sqoop (二)Sqoop 的簡單使用案例

2021-10-01 16:21:01 字數 4076 閱讀 8460

二、匯出資料

三、指令碼打包

在sqoop中,「匯入」概念指:從非大資料集群(rdbms)向大資料集群(hdfs,hive,hbase)中傳輸資料,叫做:匯入,即使用import關鍵字

確定mysql服務開啟正常

在mysql中新建一張表並插入一些資料

$ mysql -uroot -p000000

mysql>

create

database company;

mysql>

create

table company.staff(id int(4

)primary

keynot

null

auto_increment

, name varchar

(255

), *** varchar

(255))

;mysql>

insert

into company.staff(name, ***)

values

('thomas'

,'male');

mysql>

insert

into company.staff(name, ***)

values

('catalina'

,'female'

);

匯入資料

(1)全部匯入

$ bin/sqoop import \

--connect jdbc:mysql:

//hadoop102:

3306

/company \

--username root \

--password 000000 \

--table staff \

--target-dir /user/company \

--delete

-target-dir \

--fields-terminated-by "\t"

(2)查詢匯入

$ bin/sqoop import \

--connect jdbc:mysql:

//hadoop102:

3306

/company \

--username root \

--password 000000 \

--target-dir /user/company \

--delete

-target-dir \

--fields-terminated-by "\t" \

--query 'select name,*** from staff where id <=1 and $conditions;'

如果query後使用的是雙引號,則$conditions前必須加轉義字元,防止shell識別為自己的變數。

(3)匯入指定列

$ bin/sqoop import \

--connect jdbc:mysql:

//hadoop102:

3306

/company \

--username root \

--password 000000 \

--target-dir /user/company \

--delete

-target-dir \

--fields-terminated-by "\t" \

--columns id,*** \

--table staff

(4)使用sqoop關鍵字篩選查詢匯入資料

$ bin/sqoop import \

--connect jdbc:mysql:

//hadoop102:

3306

/company \

--username root \

--password 000000 \

--target-dir /user/company \

--delete

-target-dir \

--fields-terminated-by "\t" \

--table staff \

--where "id=1"

$ bin/sqoop import \

--connect jdbc:mysql:

//hadoop102:

3306

/company \

--username root \

--password 000000 \

--table staff \

--hive-import \

--fields-terminated-by "\t" \

--hive-overwrite \

--hive-table staff_hive

$ bin/sqoop import \

--connect jdbc:mysql:

//hadoop102:

3306

/company \

--username root \

--password 000000 \

--table company \

--columns "id,name,***" \

--column-family "info" \

--hbase-create-table \

--hbase-row-key "id" \

--hbase-table "hbase_company" \

--split-by id

hbase> create 'hbase_company,'info'
(5) 在hbase中scan這張表得到如下內容

hbase> scan 『hbase_company』
在sqoop中,「匯出」概念指:從大資料集群(hdfs,hive,hbase)向非大資料集群(rdbms)中傳輸資料,叫做:匯出,即使用export關鍵字

$ bin/sqoop export \

--connect jdbc:mysql:

//hadoop102:

3306

/company \

--username root \

--password 000000 \

--table staff \

--export

-dir /user/hive/warehouse/staff_hive \

--input-fields-terminated-by "\t"

使用opt格式的檔案打包sqoop命令,然後執行

建立乙個.opt檔案

$ mkdir opt

$ touch opt/job_hdfs2rdbms.opt

編寫sqoop指令碼

$ vi opt/job_hdfs2rdbms.opt

export

--connect

jdbc:mysql:

//hadoop102:

3306

/company

--username

root

--password

000000

--table

staff1--

export

-dir

/user/hive/warehouse/staff_hive

--input-fields-terminated-by

"\t"

執行該指令碼

$ bin/sqoop --options-file opt/job_hdfs2rdbms.opt

Sqoop(二) Sqoop匯入 匯出資料

1.2 rdbms hive 1.3 rdbms hbase 2.匯出資料 在sqoop中,匯入 概念指 從非大資料集群 rdbms 向大資料集群 hdfs,hive,hbase 中傳輸資料,叫做 匯入,即使用import關鍵字。sqoop import connect jdbc mysql top...

sqoop 簡單語句

1.上傳sqoop 2.安裝和配置 搭好集群,幾乎不用配置sqoop 在新增sqoop到環境變數 將資料庫連線驅動拷貝到 sqoop home lib裡 3.使用 第一類 資料庫中的資料匯入到hdfs上 sqoop import connect jdbc mysql username root pa...

sqoop的簡單實用

sqoop安裝 安裝在一台節點上就可以了。1.上傳sqoop 2.安裝和配置 在新增sqoop到環境變數 將資料庫連線驅動拷貝到 sqoop home lib裡 3.使用 第一類 資料庫中的資料匯入到hdfs上 sqoop import connect jdbc mysql 192 168.1 10...