1. 程式人生 > >從Navicat匯出oracle建表語句,應用sqoop將oracle中的表資料匯入到hive

從Navicat匯出oracle建表語句,應用sqoop將oracle中的表資料匯入到hive

                            ORACLE庫的操作

首先選擇navicat作為這個檔案的工具,作為資料庫表結構的匯入和匯出工具。

 

 

匯出的時候 會連結構和資料都匯出來,會形成一個sql檔案  也可以只倒檢視或者表都可以的。

但是以匯出的這個檔案匯入的時候 會有這樣的問題。就是在匯入的時候,在檢視匯入的時候  會有問題,就是很多檢視會有依賴關係  這樣就需要在匯入庫的時候 先建立有依賴的檢視,然後再執行就可以了,有很多檢視會有檢視依賴 所以不要一下子都執行 這樣就不知道是不是先建立的檢視。

 sqooporacle的表匯入到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  /user/root/ 就能看到 already exsist 這個檔案了 ,然後執行 hadoop fs -rm -r /user/root/LZS/ 刪除它 再次執行。

Hadoop fs –ls +路徑 檢視檔案

Hadoop fs –rm –r 路徑 級聯刪除檔案