標籤:

sqoop簡單介紹

大家都知道,大數據可以迅速地處理龐大的數據,那麼這些大數據是怎樣進行Hadoop和傳統數據之間的轉換呢?下面我就帶大家來認識一下sqoop。

說道sqoop它是一款開源的工具,主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型資料庫中。

那麼下面來講一下sqoop的項目源於哪一年,sqoop項目開始於2009年,最早是作為Hadoop的一個第三方模塊存在,後來為了讓使用者能夠快速部署,也為了讓開發人員能夠更快速的迭代開發,sqoop獨立成為一個apache項目。

下面給大家簡單的介紹一下說sqoop中常用的命令:

Sqoop大約有13種命令,和幾種通用的參數(都支持這13種命令),這裡先列出這13種命令。

接著列出Sqoop的各種通用參數,然後針對以上13個命令列出他們自己的參數。Sqoop通用參數又分Common arguments,Incremental import arguments,Output line formatting arguments,Input parsing arguments,Hive arguments,HBase arguments,Generic Hadoop command-line arguments,下面簡單說明:

序號

命令/command

說明

1

impor

ImportTool

從關係型資料庫中導入數據(來自表或者查詢語句)到HDFS中

2

export

ExportTool

將HDFS中的數據導入到關係型資料庫中

3

codegen

CodeGenTool

獲取資料庫中某張表數據生成Java並打成jar包

4

create-hive-table

CreateHiveTableTool

創建Hive表

5

eval

EvalSqlTool

查看SQL執行結果

6

import-all-tables

ImportAllTablesTool

導入某個資料庫下所有表到HDFS中

7

job

JobTool

8

list-databases

ListDatabasesTool

列出所有資料庫名

9

list-tables

ListTablesTool

列出某個資料庫下所有表

10

merge

MergeTool

11

metastore

MetastoreTool

12

help

HelpTool

查看幫助

13

version

VersionTool

查看版本

這裡就介紹一下command

還有很多就不一一說明,如果感興趣可以到官網查看相關文章

下面給大家舉一些在應用中的一些例子:

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

sqoop list-databases –connect jdbc:mysql://localhost:3306/ –username root –password 123456

2)連接mysql並列出test資料庫中的表

sqoop list-tables –connect jdbc:mysql://localhost:3306/test –username root –password 123456

命令中的test為mysql資料庫中的test資料庫名稱 username password分別為mysql資料庫的用戶密碼

3)將關係型數據的表結構複製到hive中,只是複製表的結構,表中的內容沒有複製過去。

sqoop create-hive-table –connect jdbc:mysql://localhost:3306/test

–table sqoop_test –username root –password 123456 –hive-table

test

其中 –table sqoop_test為mysql中的資料庫test中的表 –hive-table

test 為hive中新建的表名稱

4)從關係資料庫導入文件到hive中

sqoop import –connect jdbc:mysql://localhost:3306/zxtest –username

root –password 123456 –table sqoop_test –hive-import –hive-table

s_test -m 1

5)將hive中的表數據導入到mysql中,在進行導入之前,mysql中的表

hive_test必須已經提起創建好了。

sqoop export –connect jdbc:mysql://localhost:3306/zxtest –username

root –password root –table hive_test –export-dir

/user/hive/warehouse/new_test_partition/dt=2012-03-05

6)從資料庫導出表的數據到HDFS上文件

./sqoop import –connect

jdbc:mysql://10.28.168.109:3306/compression –username=hadoop

–password=123456 –table HADOOP_USER_INFO -m 1 –target-dir

/user/test

7)從資料庫增量導入表數據到hdfs中

./sqoop import –connect jdbc:mysql://10.28.168.109:3306/compression

–username=hadoop –password=123456 –table HADOOP_USER_INFO -m 1

–target-dir /user/test –check-column id –incremental append

–last-value 3

這些就是sqoop的一些簡單介紹。

更多詳情請查看mojuedu.com


推薦閱讀:

Pyspark實例——Spark On YARN將HDFS的數據寫入Redis
數據分析會騙人么?
第三章:大數據技術在配電網中的應用(國內外現狀)
大數據計數原理1+0=1這你都不會算(五)No.55
如何讓產品改版評估更智能更高效?

TAG:大數據 |