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的一些簡單介紹。
更多詳情請查看http://www.mojuedu.com
推薦閱讀:
※Pyspark實例——Spark On YARN將HDFS的數據寫入Redis
※數據分析會騙人么?
※第三章:大數據技術在配電網中的應用(國內外現狀)
※大數據計數原理1+0=1這你都不會算(五)No.55
※如何讓產品改版評估更智能更高效?
TAG:大數據 |