posts - 110, comments - 101, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          最近使用sqoop把數(shù)據(jù)從oracle導入到hbase 遇到各種問題 耗了很多時間
          遇到的異常在網(wǎng)上也沒找到過先例 可能有朋友也遇到了這樣的問題
          整理一下 留在這里 歡迎拍磚 看到的朋友 如果有更好的方法 可以回復 一起學習
          使用sqoop 導mysql的數(shù)據(jù)時 一切順利很方便 
          導oracle的時候 問題就來了
          --query命令: 使用這個命令的時候 需要注意的是 where后面的參數(shù),$CONDITIONS 這個參數(shù)必須加上
          而且存在單引號與雙引號的區(qū)別,如果--query后面使用的是雙引號 那么需要在$CONDITIONS\ \$CONDITIONS

          ./sqoop import --connect jdbc:oracle:thin:@192.168.8.130:1521:dcshdev --username User_data2 --password yhdtest123qa --query "select * from so_ext t where \$CONDITIONS " -m 4 --hbase-create-table --hbase-table hso --column-family so --hbase-row-key id --split-by id

          如果使用--columns指令來指定字段 也出現(xiàn)了問題
          因為在一行中寫太多命令是不可能的,--columns 如果字段太多在命令中寫也不方便
          所以使用shell腳本要方便的多
          那么在腳本中換行使用 \  來換行

          有個問題就是 使用--columns 指定的字段大小寫要注意 得使用小寫。
          如果使用大寫 導數(shù)據(jù)不會有異常 會成功的,hbase中表也會創(chuàng)建好,但是scan的時候 你會發(fā)現(xiàn)沒有數(shù)據(jù) 這個蛋疼吧
          --columns id,order_id,order_code
          而且每個字段之間用逗號分隔,但是不能有空格,在sqoop中沒有處理空格,如果在這個命令后的參數(shù)有空格的話
          就不能和oracle表中的字段對應上了 結(jié)果雖然沒有錯誤能夠顯示成功導入多了條數(shù)據(jù),但是scan的時候 會是0條數(shù)據(jù)

          關于導mysql和oracle的時候 還有個區(qū)別:
          導mysql表的數(shù)據(jù)時 不需要指定太多的命令就可以成功導入,但是oracle就需要很多命令 ,如--split-by 這個切分參數(shù)
          在導mysql的時候 就不需要 ,但是如果在導oracle的時候 不加上就會出錯了 不信你試試






          評論

          # re: sqoop mysql\oracle數(shù)據(jù)導入到hbase 各種異常解決 --columns指定字段 細節(jié)注意  回復  更多評論   

          2012-11-15 16:58 by 風雨無語
          我使用sqoop從oracle導入數(shù)據(jù)到hbase中,表創(chuàng)建了,但是沒有數(shù)據(jù),沒報錯,是什么原因

          # re: sqoop mysql\oracle數(shù)據(jù)導入到hbase 各種異常解決 --columns指定字段 細節(jié)注意  回復  更多評論   

          2013-05-15 18:29 by 趙坤
          我也是使用sqoop從oracle導入數(shù)據(jù)到hbase中,表創(chuàng)建了,但是沒有數(shù)據(jù),沒報錯,是什么原因

          # re: sqoop mysql\oracle數(shù)據(jù)導入到hbase 各種異常解決 --columns指定字段 細節(jié)注意  回復  更多評論   

          2014-04-22 13:38 by jacos
          Will not attempt to authenticate using SASL (unknown error)

          "main" java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
          at org.apache.sqoop.mapreduce.DelegatingOutputFormat.checkOutputSpecs(DelegatingOutputFormat.java:63)
          at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:456)

          這2個異常
          我的報這個錯誤。查詢mysql上的數(shù)據(jù)可以查詢出來,導入的時候就不行。

          # re: sqoop mysql\oracle數(shù)據(jù)導入到hbase 各種異常解決 --columns指定字段 細節(jié)注意  回復  更多評論   

          2014-07-02 15:53 by Hartwell
          @jacos
          你這個問題解決了嗎?
          我導入mysql的時候,也是報這個異常

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 铁力市| 崇义县| 商洛市| 老河口市| 富锦市| 莎车县| 碌曲县| 安宁市| 原阳县| 安西县| 家居| 雷波县| 通化市| 崇左市| 西昌市| 营山县| 武强县| 青冈县| 南城县| 页游| 襄汾县| 永靖县| 济宁市| 如皋市| 甘南县| 尉犁县| 南平市| 吴旗县| 钟祥市| 城市| 奉贤区| 河源市| 芮城县| 确山县| 霍州市| 兰西县| 铁岭市| 寿光市| 常宁市| 彭州市| 隆子县|