王昱棋

导航

sqoop碰到的问题

sqoop碰到的问题

背景:从Oracle接入数据,一张表一千多万,数据量13G左右。

  1. 报错,表名找不到,将表名改成大写的

  2. Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
    

    因为sqoop缺少java-json.jar包,下载jar包,把java-json.jar添加到../sqoop/lib目录就可以。

  3. Import failed: java.io.IOException: Generating splits for a textual index column allowed only in case of "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" property passed asa parameter
    

    需要指定 --split-by 主键 并指定 "-Dorg.apache.sqoop.splitter.allow_text_splitter=true"参数即可

  4. Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly
    

    把 hive目录下的hive-common-***.jar包拷贝到/sqoop/lib下

    cp ${HIVE_HOME}/lib/hive-common-3.0.0.jar ${SQOOP_HOME}/lib/ 
    
  5. FAILED: SemanticException [Error 10101]: A non-native table cannot be used as target for LOAD
    

    说明sqoop导入的目标表是一个外部表,把这个外部表删掉,或者指定另外的表名即可。

  6. 还需要下载Oracle驱动包,放到/sqoop/lib下,下载地址

最后的sqoop的语句为:

sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" -- hive-import --connect jdbc:oracle:thin:@ip:1521:lisgg1 --username name --password passwd --table tablename --hive-database default --hive-table hivetablename -m 3 --split-by contno

以上碰到的问题解决办法不唯一,列出的为个人觉得比较简单的解决方式,上述网站可能需要FQ

posted on 2019-01-31 17:23  王昱棋  阅读(1915)  评论(0编辑  收藏  举报