Sqoop語句簡單案例應用

2021-08-04 23:24:14 字數 3768 閱讀 9396

sqoop

中文手冊

:1)列出mysql資料庫中的所有資料庫

bin/sqoop list-databases \

--connect jdbc:mysql://vampire04:3306 \

--username root \

--password 123456

2)mysql

àhdfs

連線mysql

資料匯出到

hdfs

①  

常規匯入

bin/sqoopimport \

--connect jdbc:mysql://vampire04:3306/sqoop \

--username root \

--password 123456 \

--table  user \

--target-dir  /input/import2 \

//指定資料匯入到

hdfs

上的目錄

--fields-terminated-by ","

bin/sqoop import \

--connect  jdbc:mysql://vampire04:3306/sqoop \

--username root \

-p \                      

//不使用明文指定資料庫連線密碼

--table  user \

--target-dir  /input/import \      

--delete-target-dir \       

//如果目標目錄已存在,則先刪除

-m 1 \                        

//指定使用匯入資料的

map個數

--fields-terminated-by ","  

//目標檔案的分隔符

②  

query

,where

子句必須有

$conditons(

固定寫法

)  查詢匯入方式

bin/sqoop import \

--connect jdbc:mysql://vampire04:3306/sqoop\

--username root \

-p \

--query 'select id,account from user whereaccount="fff" and  $conditions'\

--target-dir /sqoop/query1 \

-m 1 \

--delete-target-dir \

--fields-terminated-by  "\t"

③  

--columns 

匯入部分字段資料

bin/sqoop import \

--connect jdbc:mysql://vampire04:3306/sqoop\

--username root \

-p \

--table user \

--columns "id,account" \

--target-dir /sqoop/query1 \

-m 1 \

--delete-target-dir \

--fields-terminated-by  "\t"

④  

增量匯入

注意:2.--check-column

不是使用

char/nchar/varchar/varnchar/ longvarchar/longnvarchar

這樣的資料型別

3.incremental

支援兩種模式

bin/sqoop import \

--connect jdbc:mysql://vampire04:3306/sqoop\

--username root \

-p  \

--table user \

--target-dir /sqoop/incremental \

--fields-terminated-by  "|" \

--check-column id \

--last-value 3

3)

mysql-> hive 

連線mysql

匯入到hive

bin/sqoop import \

--connect jdbc:mysql://vampire04:3306/sqoop \

--username root \

--password 123456 \

--table  user \

-m 1 \

--delete-target-dir \

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

--hive-import \

--hive-overwrite \

--hive-database sqoop \

--hive-table user

總結:1.hive

中的database

要先建立

2.hive

中的表會自動建立

3.資料是由

mysql

先匯入到當前使用者在

hdfs

的使用者主目錄下,然後再載入到

hive

表中4)

從hdfs

、hive

表匯出到

mysql

bin/sqoop export \

--connect jdbc:mysql://vampire04:3306/sqoop\

--username root \

-p \

--table use2 \

--export-dir/user/hive/warehouse/test.db/hivey \

--fields-terminated-by "\t"

需要先在

mysql

中建好錶

,字段個數和字段型別要一致

.總結:1.從

hive

表和hdfs

匯出資料其實是一回事,都是要匯出到

hdfs

上的目錄

2.--fields-terminated-by

對於hive

表就是建立時候的字段分隔符,對於

hdfs

上的檔案而言就是該檔案的分隔符

)可以將

sqoop

的命令選項寫在檔案,通過【

--options-file

】指定檔案,進行執行程式。

vim sqoop_script

export

--connect

jdbc:mysql://vampire04:3306/testdb

--username

root

--password

root123

--table

hive2mysql

1--export-dir

/user/hive/warehouse/db01.db/dept

--fields-terminated-by

"\t"

$ bin/sqoop --options-file  ~/sqoop_script

Sqoop的簡單案例應用

在sqoop中,匯入 概念指 從非大資料集群 rdbms 向大資料集群 hdfs,hive,hbase 中傳輸資料,叫做 匯入,即使用import關鍵字。1 確定mysql服務開啟正常 2 在mysql中新建一張表並插入一些資料 mysql uroot p000000 mysql create da...

sqoop 簡單語句

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

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

二 匯出資料 三 指令碼打包 在sqoop中,匯入 概念指 從非大資料集群 rdbms 向大資料集群 hdfs,hive,hbase 中傳輸資料,叫做 匯入,即使用import關鍵字。確定mysql服務開啟正常 在mysql中新建一張表並插入一些資料 mysql uroot p000000 mysq...