從Navicat匯出oracle建表語句,應用sqoop將oracle中的表資料匯入到hive
ORACLE庫的操作
首先選擇navicat作為這個檔案的工具,作為資料庫表結構的匯入和匯出工具。
匯出的時候 會連結構和資料都匯出來,會形成一個sql檔案 也可以只倒檢視或者表都可以的。
但是以匯出的這個檔案匯入的時候 會有這樣的問題。就是在匯入的時候,在檢視匯入的時候 會有問題,就是很多檢視會有依賴關係 這樣就需要在匯入庫的時候 先建立有依賴的檢視,然後再執行就可以了,有很多檢視會有檢視依賴 所以不要一下子都執行 這樣就不知道是不是先建立的檢視。
用sqoop從oracle的表匯入到hive中的命令
sqoop import --hive-import --connect "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.87.116)(PORT=1521)))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVICE_NAME=bonc)))" --table LZS --hive-table TEST.LZS --username dm --password dm --verbose -m 1
注意 在倒出的時候 oracle在那臺機器上,就在那臺機器上執行這個命令 否則會報錯,如圖
Oracle庫在172.16.87.116上 在hadoop111上沒有相適應的庫
成功了 !!!!!
剛開始會報一個錯 什麼outputformat file directory have already exists 如果有報錯有這個檔案 那麼可以在hdfs 上先把這個檔案刪除了 再執行一邊即可 如果在50070介面看的話 會因為許可權不足而無法檢視, 所以得用命令來看 hadoop fs –ls / 找到你要找的檔案 它報錯會像這個樣子 hdfs://nameservice1/user/root/** z 這個樣子的
Hadoop fs –ls +路徑 檢視檔案
Hadoop fs –rm –r 路徑 級聯刪除檔案