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