發現我們安裝羣集Hadoop
服務器andwe使用Hue
作爲我們的界面,我們的目標是從MS SQL Server
sqooping數據Hadoop
。我們發現了一個教程here爲MS SQL Server JDBC驅動程序類不在色調
但是我得到了Hue
發現我們安裝羣集Hadoop
服務器andwe使用Hue
作爲我們的界面,我們的目標是從MS SQL Server
sqooping數據Hadoop
。我們發現了一個教程here爲MS SQL Server JDBC驅動程序類不在色調
但是我得到了Hue
的follwowing錯誤,我發現與http://capnjosh.com/
幫助解決辦法,如果你使用Sqoop東西在基於網頁的界面中,您實際使用的是Sqoop2
您必須自己下載並安裝SQL Server的JDBC驅動程序 - curl -L'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz'| tar xz - sudo cp sqljdbc_4.0/enu/sqljdbc4.jar/var/lib/sqoop2/ - 當你在這裏時,你也可以把它放在sqoop目錄中:sudo cp sqljdbc_4.0/enu /sqljdbc4.jar的/ var/lib中/ sqoop/
Sqoop2主目錄爲/ var/lib中/ sqoop2/
重啓Sqoop2在JDBC驅動程序文件
5A複製後服務。 「連接器」是Sqoop與Hadoop中各種進程的通信方式。除非你有更多的經驗,否則它應該是「generic-jdbc-connector」
5b。類路徑是「com.microsoft.sqlserver.jdbc.SQLServerDriver」
對於作業的操作:
架構名稱:我剛剛離開這個空白,並在TSQL查詢我而不糊想要 - 如果您在下面指定TSQL語句,那麼這需要是空白的
表名:我留下這個空白,而是在TSQL中完成所有工作。 - 如果你在下面指定一個TSQL語句,那麼這需要是空的。
表SQL語句:粘貼到你的查詢中(你可以在SSMS中製作它並粘貼它)。然後,將其附加到它的末尾:+和+ $ {CONDITIONS}。 $ {CONDITIONS}擴展爲您可以在此字段下指定的分區列名稱的某個值範圍。
表列名稱:如果要限制實際提取的列,請將它們放入。
分區列名稱:確保以某種方式對此列進行索引 - Sqoop首先查詢最小值和最大值,然後發出一系列查詢,根據此列值返回所有行的均勻分佈的部分。例如交易表;我在分區列名中指定了交易日期列; sqoop獲取最小和最大日期;然後,Sqoop發出一系列查詢,用「where transDate> ='2015-01-01'和transDate <'2015-04-01'」(爲每個查詢移動該窗口)替換$ {CONDITIONS}。每個查詢都可以發送從你集羣中的任何節點(儘管我打賭你可以限制那些節點)12.分區中的空值列:如果你確實有空值,這有助於Sqoop.13。你可以手動指定查詢Sqoop用來獲取min/(默認情況下,它看起來像這樣「select min(),max()from()」。
如果您在Hue/Sqoop2中創建的連接混亂,請注意您必須鍵入再次輸入密碼
如果您遇到錯誤,請不要與之對抗 - 您必須通過SSH登錄並查看/var/log/sqoop2/sqoop2.log
如果您的工作失敗,並且在SQL Server上的SQL Server Profiler中查詢,您只能看到帶有「where ...(1 = 0)...」的查詢請檢查您的防火牆規則:羣集中的所有節點都需要能夠與SQL Server實例通話。是的,Sqoop將在您的羣集中分發各種分區查詢:)