栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ERROR tool.ImportTool: Import failed: java.io.IOException: Hive exited with status 1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ERROR tool.ImportTool: Import failed: java.io.IOException: Hive exited with status 1

sqoop的 迁移数据到hive的报错

常见原因:

原因1:

未将hive中的hive-common-*.jar , hive-exec-*.jar(*为你的hive下的文件号)以及mysql-connect-java-*.jar(*为你mysql对应版本的对应的文件号)拷贝至sqoop安装目录下的lib文件中

解决方法:将hive安装目录下的lib文件中的hive-common-*.jar 和hive-exec-*.jar拷贝至sqoop安装目录下的lib文件下,之后将对应版本的mysql-connect-java-*.jar下载移动至sqoop安装目录下的lib文件下

mysql-connect-java对应表(资料来源于官网MySQL :: MySQL Connector/J 5.1 Developer Guide :: 2 Connector/J Versions, and the MySQL and Java Versions They Require):

Connector/J versionJDBC versionMySQL Server versionJRE RequiredJDK Required for CompilationStatus
5.13.0, 4.0, 4.1, 4.25.61, 5.71, 8.01JRE 5 or higher1JDK 5.0 AND JDK 8.0 or higher2, 3General availability
8.04.25.6, 5.7, 8.0JRE 8 or higherJDK 8.0 or higher2General availability. Recommended version.

原因2:

libthrift jar 包不兼容的原因(hbase与hive中的libthrift 版本不同)

解决方法一:查看hbase和hive安装目录下的lib目录中的libthrift版本是否一致,不一致可任选其一改为一致,之后将libthrift *.jar复制到sqoop安装目录下的lib文件夹中

解决方法二:将Sqoop配置文件中的 HBASE_HOME 设置为空,让Sqoop不能加载hbase版本的libthrift(不建议使用)

疑难杂症:

情况一:mysql表的编码格式与hive表中的编码格式不同(未尝试可能不准,视情况使用)

首先:hive的元数据是由mysql管理的,mysql默认编码是latin1

但是,因为MySQL通过my.cnf一般情况下设置为utf-8编码,所以需要将库改为latin1

alter database 数据库名 character set utf8;

如果数据库中有中文字体,为了保存那些utf8的中文(防止乱码),要将mysql中存储注释的那几个字段的字符集单独修改为utf8。

情况二(*):第三方连接工具(mobaxterm)问题:这是我遇到的最无语的问题了,直接上图

首先在第三方连接工具中是报此错的:

回到VM虚拟机执行导出导入命令,是成功的,啥操作都不做再回到mobaxterm执行

任然报此错了。。。。。。。

 

可见mobaxterm(其他第三方连接工具未使用过不知是否也有类似情况)执行此命令是有问题的,所有如果你也是用第三方连接工具进行操作,在配置没问题下报错找不出原因的话,建议直接进linux系统操作。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862597.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号