傳統(tǒng)的應(yīng)用管理系統(tǒng),也就是與關(guān)系型數(shù)據(jù)庫的使用RDBMS應(yīng)用程序的交互,是產(chǎn)生大數(shù)據(jù)的來源之一。這樣大的數(shù)據(jù),由關(guān)系數(shù)據(jù)庫生成的,存儲在關(guān)系數(shù)據(jù)庫結(jié)構(gòu)關(guān)系數(shù)據(jù)庫服務(wù)器。
當(dāng)大數(shù)據(jù)存儲器和分析器,如MapReduce, Hive, HBase, Cassandra, Pig等,Hadoop的生態(tài)系統(tǒng)等應(yīng)運而生圖片,它們需要一個工具來用的導(dǎo)入和導(dǎo)出的大數(shù)據(jù)駐留在其中的關(guān)系型數(shù)據(jù)庫服務(wù)器進行交互。在這里,Sqoop占據(jù)著Hadoop生態(tài)系統(tǒng)提供關(guān)系數(shù)據(jù)庫服務(wù)器和Hadoop HDFS之間的可行的互動。
Sqoop:“SQL 到 Hadoop 和 Hadoop 到SQL”
Sqoop是Hadoop和關(guān)系數(shù)據(jù)庫服務(wù)器之間傳送數(shù)據(jù)的一種工具。它是用來從關(guān)系數(shù)據(jù)庫如MySQL,Oracle到Hadoop的HDFS從Hadoop文件系統(tǒng)導(dǎo)出數(shù)據(jù)到關(guān)系數(shù)據(jù)庫。它是由Apache軟件基金會提供。
下圖描述了Sqoop的工作流程。
導(dǎo)入工具從RDBMS到HDFS導(dǎo)入單個表。表中的每一行被視為HDFS的記錄。所有記錄被存儲在文本文件的文本數(shù)據(jù)或者在Avro和序列文件的二進制數(shù)據(jù)。
導(dǎo)出工具從HDFS導(dǎo)出一組文件到一個RDBMS。作為輸入到Sqoop文件包含記錄,這被稱為在表中的行。那些被讀取并解析成一組記錄和分隔使用用戶指定的分隔符。