利用Sqoop實現MySQL與HDFS資料互導

2021-08-11 13:17:19 字數 1744 閱讀 4885

利用sqoop將mysql中的資料表匯入到hdfs端:(**的主鍵要存在)

首先在mysql的test資料庫中有如下**person:

在終端輸入以下命令即可實現將person表匯入到hdfs端:

sqoop import \

--connect jdbc:

mysql://localhost/test \

--username root --password 147369 \

--table person \

--target-dir /vagrant/person_hdfs \

--null-non-string '\\n';

其中import表示匯入資料,connect行命令表示連線mysql的test資料庫,username和password為mysql的使用者名稱和密碼,table為要匯入的**,target-dir為hdfs的目標位置,null-non-string 『\n』會將資料庫表中的null值轉化為hive和impala中的\n,便於相容。

執行結果如下:

前往hdfs網頁檢視:

利用sqoop將hdfs端的資料表匯入到mysql:

1.檢視hdfs端資料的內容:

可知:person目錄下的資料以』,』為分界符。我們的目標是將person目錄下的全部資料匯入到mysql。

2.在mysql中建立相應格式的**:

use test

create

table p(id int

primary

key, age int, *** int);

3.在終端輸入以下命令即可實現將hdfs端person目錄下的資料匯入到mysql中:

sqoop

export

\> -

-connect

jdbc:mysql://localhost/test

\> -

-username

root--

password

147369

\> -

-tablep\

> -

-export

-dir

/user/hive/warehouse/person/*

\> -

-input

-fields

-terminated-by

',';

其中export命令表示匯出資料,table為mysql中test資料庫的**p,export-dir為hdfs端需要匯出的目錄,input-fields-terminated-by 『,』表示hdfs端需要匯出的資料的分界符為』,』。

4.前往mysql資料庫檢視:

bingo,這樣我們就利用sqoop實現mysql與hdfs資料互導。

利用Sqoop將MySQL資料匯入Hive中

參考 1.list databases sqoop list databases connect jdbc mysql username sqoop password sqoop 2.用sqoop建立hive表 sqoop create hive table connect jdbc mysql x...

sqoop從mysql到hive實現定時增量匯入

1 第一次全量抽取,並建立hive表 keberos認證 kinit kt hdfs.keytab hdfs 從oracle導資料到hive sqoop import connectjdbc oracle thin xx.xx.xx.xx 1521 xx username password tabl...

Sqoop匯出MySQL資料

匯入所有表 sqoop import all tables connect jdbc mysql ip port dbname username username password password m 1 hive import 匯入乙個表 sqoop import connect jdbc my...