sqoop將oracle匯入到hbase經驗之談

2021-08-01 16:50:53 字數 1313 閱讀 8005

之前公司有個專案,通過sqoop,將oracle的資料匯入到hbase。真個過程出現過很多問題,現在我將我匯入的過程跟遇到的問題和解決方法寫下來,希望能幫助大家

先測試sqoop是否能連線到oracle

sqoop list-tables --connect jdbc:oracle:thin:@ip:1521:*** --username *** --password ***
如果能成功,將會列出oracle中的表

sqoop import --connect jdbc:oracle:thin:@ip:*** --username *** --password *** --table tablename --hbase-table *** --hbase-bulkload --column-family family --hbase-row-key id --split-by id -m 40 --columns id,name,age
匯入過程問題即解決問題1: 

–table tablename 

表名必須大寫, 否則報錯 : 

error during import: no primary key could be found for table *

問題2: 

–hbase-row-key id 中的id,必須在–columns中顯示,否則報錯: 

could not insert row with null value for row-key column

問題3: 

–columns id,name,age, 後面列的顯示,列名跟逗號之間必須沒有空格,否則報錯: 

error parsing arguments for import 

unrecognized argument

問題4 

oracle中的表,必須有主鍵,不然會報錯。如果確實沒有主鍵,則需要加上 –split-by id。oracle中哪個列作為hbase的rowkey,則–split-by後面跟上什麼,我這裡是用id

引數解釋

hbase-bulkload : hbase中快速將資料匯入hbase的功能。快速的原因,可以參考hbase官網介紹:第69節 : 69. bulk loading 

-m : sqoop實際也是mapreduce,這個-m就是值map的個數。預設是4 

將Excel匯入到Oracle

private void btninsert click object sender,eventargs e dataset ds 插入資料庫方法 private void insertdbmeth 如果查到了資料,才使控制分頁按鈕生效 if odr 0 conn.close catch excep...

使用sqoop將mysql資料匯入到hive中

首先準備工具環境 hadoop2.7 mysql5.7 sqoop1.4 hive3.1 準備一張資料庫表 接下來就可以操作了。一 將mysql資料匯入到hdfs 首先我測試將zhaopin表中的前100條資料匯出來,只要id jobname salarylevel三個字段。再hdfs上建立目錄 h...

將資料匯入到Oracle中

1.create table people age int,id int 2.建立資料檔案peopledate.txt.資料為 20,1 30,2 3.建立命令檔案 loaddata.ctl 內容為 sqlldr userid dbname dbpasswd control loaddata.ctl...