sqoop从mysql数据库导入表数据到hive方法及其报错解决 Hive exited with status 1

以下为我总结出来的可能的错误原因
1.在sqoop安装文件的 sqoop-env.sh中hive_home的地址未指向正确的hive地址

解决方法:修改env.sh文件中的hive_home

2.在sqoop安装文件的 sqoop-env.sh中配置了hbase_home与hive_home,而安装的hbase和hive版本不匹配造成

解决方法:修改hbase_home,使其指向一个不存在的路径(随便写一个不存在的就行),从而使sqoop调用hive时无法通过错误的路径引用hbase。

以下为我使用的导入表数据到hive的代码,通过hdfs作为传输中介:
这个命令不用事先创建hive表

sqoop import –connect jdbc:mysql://localhost:3306/mysqldb  --username root --password  123456 --table mysql_table_name   --fields-terminated-by '\t' --target-dir /sqoop/hive/data  --num-mappers 1  --hive-database default --hive-import --hive-table hive_table_name

其中 ,
mysqldb 为原表所在的mysql数据库名,mysql_table_name为原表名
root 为数据库用户名,123456为数据库密码
/sqoop/hive/data 为建立在hdfs上的一个文件夹,data(不能先前存在)为中转文件夹,如果全过程成功传输的话,data文件夹会自动建立再删除。
default 为传入hive中的数据库名,hive_table_name为传入hive中的表名。

下面为运行成功的报告截图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值