在通过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会做一个强制校验,校验uri的scheme值,特别是在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从MySQL导数据到HDFS上,如果报错空指针异常,需要的jar包。正常情况只要安装java-json.jar就可以。如果不行就都安装上。如果你用的是阿里云的EMR,安装完之后还报错的话,需求确认你的jar包中是否含有hive开头...
1、sqoop的解压并配置环境变量: tar -zxvf /bigdata/sqoop-1.4.6-cdh5.13.2.tar.gz -C /usr/local 配置环境变量: vi /etc/profile export SQOOP_HOME=/usr/local/sqoop-1.4.6-cdh5.13.2 export PATH=$PATH:$SQOOP_...
Hadoop hbase hive sqoop集群环境安装配置及使用文档
大数据环境搭建———>Sqoop安装与配置
1.sqoop基本概念 2.配置sqoop环境 3.sqoop的典型应用 4.sqoop的原理 5、sqoop环境的配置步骤 6、理解sqoop的原理 7、熟练使用sqoop导入导出数据
1.sqoop基本概念 2.配置sqoop环境 3.sqoop的典型应用 4.sqoop的原理
sqoop安装详解以及sqoop内容介绍使用介绍 集群介绍 sqoop:是一个工具,主要用于导入导出,实现MySQL到Hadoop之间数据的转换 2、导入数据:从结构化数据(Mysql,oracle,db2,)导入到半结构化或非结构化hadoop中...
写在前面 我在直接下载https://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.7.0.tar.gz 解压使用会出现几个bug,之前也是出现了,然后也没有来...这是因为sqoop缺少java-json.jar包 下载java-json.jar包: http
运行Sqoop报错:找不到或无法加载主类 org.apache.sqoop.sqoop 将sqoop-1.4.7.jar包放到Sqoop的lib目录下,问题解决。
sqoop-cdh安装过程及异常处理,并提供安装使用的工具包
sqoop连接sqlserver的驱动工具,没有这个sqoop是连不上滴
sqoop框架开发工具使用的jar,目前版本有1.4.6和1.4.7两个jar包,启动Sqoop时,抛出异常:Error: Could not find or load main class .usr.local.sqoop-1.4.7.sqoop-1.4.7.jar 则可以下载资源将sqoop-1.4.7.jar放到...
Sqoop集群搭建.Sqoop集群搭建.Sqoop集群搭建.Sqoop集群搭建.Sqoop集群搭建.Sqoop集群搭建.Sqoop集群搭建.Sqoop集群搭建.Sqoop集群搭建.
NULL 博文链接:https://mazhilin.iteye.com/blog/2421559
sqoop-1.4.6.jar,sqoop报错找不到加载类的时候 将该文件放入sqoop的lib文件夹下
02_CDH版本框架的环境部署 03_Sqoop的介绍及其实现原理 04_Sqoop的安装部署及连接测试 05_Sqoop将MySQL数据导入到HDFS(一) 06_Sqoop将MySQL数据导入到HDFS(二) 07_Sqoop中的增量导入与Sqoop job 08_Sqoop将MySQL...
Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特点以批处理的方式加快数据传输
sqoop的常用指令操作
sqoop数据导出工具
sqoop框架开发工具使用的jar sqoop-1.4.6.jar 手动安装到maven <groupId>org.apache.sqoop <artifactId>sqoop <version>1.4.6 </dependency>