posts - 110, comments - 101, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          搜索

          •  

          最新評論

          最近使用sqoop把數據從oracle導入到hbase 遇到各種問題 耗了很多時間
          遇到的異常在網上也沒找到過先例 可能有朋友也遇到了這樣的問題
          整理一下 留在這里 歡迎拍磚 看到的朋友 如果有更好的方法 可以回復 一起學習
          使用sqoop 導mysql的數據時 一切順利很方便 
          導oracle的時候 問題就來了
          --query命令: 使用這個命令的時候 需要注意的是 where后面的參數,$CONDITIONS 這個參數必須加上
          而且存在單引號與雙引號的區別,如果--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指令來指定字段 也出現了問題
          因為在一行中寫太多命令是不可能的,--columns 如果字段太多在命令中寫也不方便
          所以使用shell腳本要方便的多
          那么在腳本中換行使用 \  來換行

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

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






          評論

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

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

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

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

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

          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上的數據可以查詢出來,導入的時候就不行。

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

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

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


          網站導航:
           
          主站蜘蛛池模板: 邵武市| 黎川县| 昭苏县| 海原县| 靖边县| 平原县| 白朗县| 桦甸市| 新建县| 庆城县| 乌鲁木齐县| 襄樊市| 茂名市| 江都市| 丽水市| 芦溪县| 双鸭山市| 浮梁县| 安义县| 华亭县| 德州市| 微山县| 濮阳市| 巴彦淖尔市| 娄烦县| 当阳市| 长阳| 吉隆县| 金寨县| 沙坪坝区| 六安市| 慈利县| 永登县| 葵青区| 静乐县| 青岛市| 泰来县| 昌邑市| 库伦旗| 东城区| 青海省|