`
dacoolbaby
  • 浏览: 1265770 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Sqoop环境变量异常

阅读更多

在通过Oozie调用sqoop action从DB导入数据到hive表的时候,发现了异常。

28167 [Thread-30] INFO  org.apache.sqoop.hive.HiveImport  - FAILED: SemanticException [Error 10028]: Line 2:17 Path is not legal ''hdfs://cnsz141195.app.paic.com.cn:9000/user/hduser0401/table_name'': Move from: hdfs://cnsz141195.app.paic.com.cn:9000/user/hduser0401/table_name to: hdfs://CNSZ141195.app.paic.com.cn:9000/user/hive/warehouse/eshop.db/t_ahhs_product_info is not valid. Please check that values for params "default.fs.name" and "hive.metastore.warehouse.dir" do not conflict.
28202 [main] ERROR org.apache.sqoop.tool.ImportTool  - Encountered IOException running import job: java.io.IOException: Hive exited with status 44

 

使用sqoop命令行执行却没有报错。

 

我翻查了源代码,发现Hive会做一个强制校验,校验urischeme值,特别是在sqoop的时候,会生成一个Hive脚本,在做load data local inpath 的时候进行scheme的校验。

我也翻查了所有读取配置,都是配置成一样的DNS,大写的。

(Scheme也就是一个hdfs地址的NameNode地址部分。)

 

如果发现Scheme不一样,如,大小写不一致,就会出现Path is not legal Exception

 

机器名规范要求大写,那DNS也隐射的值也要一致大写吗?这样有可能会导致load data local失败的。

 

这里作为一个隐患提出来。

 

Hive的校验代码:

// only in 'local' mode do we copy stuff from one place to another.

    // reject different scheme/authority in other cases.

    if (!isLocal

        && (!StringUtils.equals(fromURI.getScheme(), toURI.getScheme()) || !StringUtils

        .equals(fromURI.getAuthority(), toURI.getAuthority()))) {

      String reason = "Move from: " + fromURI.toString() + " to: "

          + toURI.toString() + " is not valid. "

          + "Please check that values for params \"default.fs.name\" and "

          + "\"hive.metastore.warehouse.dir\" do not conflict.";

      throw new SemanticException(ErrorMsg.ILLEGAL_PATH.getMsg(ast, reason));

}

 

如果有知道的朋友请告诉我,怎么解决这个问题,谢谢~

 

分享到:
评论

相关推荐

    sqoop.zip解决报空指针的问题所需要的jar

    这可以通过修改环境变量`HADOOP_CLASSPATH`或在`sqoop-env.sh`文件中设置`SQOOP_CLASSPATH`来完成。 2. **版本匹配**:确保你使用的`java-json.jar`版本与CDH 6.2.1版本的Sqoop兼容。通常,你可以查看官方文档或...

    sqoop-cdh安装包

    3. **配置环境变量**:编辑`~/.bashrc`或`~/.bash_profile`,添加SQOOP_HOME环境变量,并将其指向Sqoop的安装目录。同时,确保PATH变量包含了SQOOP_HOME/bin。 ```bash export SQOOP_HOME=/usr/local/sqoop ...

    sqoop2 java API从oracle导数据到HDFS开发总结

    - **编辑`/etc/profile`文件**:添加如下内容以配置Java环境变量和sqoop环境变量。 ```bash export JAVA_HOME=/opt/jdk1.7.0_79 export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=...

    sqoop2 java API从oracle导数据到HDFS开发总结新

    接下来,需要在`/etc/profile`文件中添加相应的环境变量配置,确保所有必要的路径都已正确设置。示例如下: ```bash export JAVA_HOME=/opt/jdk1.7.0_79 export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/...

    java-json.jar

    这可能是由于配置错误、环境变量未正确设置、依赖库缺失或版本不兼容等原因。对于"java-json.jar"这个特定的文件,它很可能是Sqoop在处理JSON数据时使用的库,因为JSON是常见的数据交换格式,特别是在大数据处理中。...

    Apache_Mahout_Cookbook(高清版)

    2. **配置JAVA_HOME环境变量**:设置JAVA_HOME为JDK安装目录。 3. **安装Hadoop**:下载Hadoop二进制包,并解压至指定目录。 4. **配置Hadoop环境**:编辑`hadoop-env.sh`等配置文件,指向JDK路径。 **实例代码(伪...

    Schedulis安装文档.pdf

    它已被集成到DataSphere Studio数据应用开发门户,支持Command Shell以及Linkis(包括Hadoop MR、Hive、Spark、Sqoop、Python)等多种大数据任务。Schedulis还具备数据检查、任务间依赖以及完善的告警和执行策略,...

    大数据技术与应用赛题库

    - 安装Hive并配置相关环境变量。 - 配置`hive-site.xml`文件,指定存储位置、HDFS路径等。 - 启动Hive服务,并使用HQL进行数据操作。 - **实践意义**:通过Hive可以更方便地管理和查询大规模数据集,适用于数据...

    大数据-互联网大厂面试真题附含答案03.pdf

    8. **Hive与MySQL交互**:Hive可以通过 Sqoop 或者 Hive的外部表功能从MySQL导入数据。在表关联的问题上,通常取决于数据量和实时性需求,如果数据量大且实时性要求不高,可以选择在Hive中做关联操作。 9. **HBase...

    大数据培训课程安排.pdf

    应⽤场景,如何学习⼤数据库,虚拟机概念和安装等)、Linux常见命令(⽂件管理、系 统管理、磁盘管理)、Linux Shell编程(SHELL变量、循环控制、应⽤)、Hadoop⼊门(Hadoop组成、单机版环境、⽬录结构、 HDFS界⾯、...

Global site tag (gtag.js) - Google Analytics