NO IMAGE

1.Sqoop匯入底層工作原理

(1)在匯入前,Sqoop使用JDBC來檢查將要匯入的資料表。

(2)Sqoop檢索出表中所有的列以及列的SQL資料型別。

(3)把這些SQL型別的對映到java資料型別,例如(VARCHAR、INTEGER)———>(String,Integer)。

(4)在MapReduce應用中將使用這些對應的java型別來儲存欄位的值。

(5)Sqoop的程式碼生成器使用這些資訊來建立對應表的類,用於儲存從表中抽取的記錄。

注意:對於匯入來說,更關鍵的是DBWritable介面的序列化方法,這些方法能使(生成的類)和JDBC進行互動。

2.Sqoop匯出底層工作原理

(1)在匯出前,sqoop會根據資料庫連線字串來選擇一個匯出方法  ————>對於大部分系統來說,sqoop會選擇JDBC。

(2)Sqoop會根據目標表的定義生成一個java類。

(3)這個生成的類能夠從文字中解析出記錄,並能夠向表中插入型別合適的值(除了能夠讀取ResultSet中的列)。

(4)然後啟動一個MapReduce作業,從HDFS中讀取源資料檔案。

(5)使用生成的類解析出記錄,並且執行選定的匯出方法。