一、场景描述
上一篇博客研究了不用sqoop将mysql中的数据导入到hive中,发现有一定的局限性,数据量较少还好,要是数据表过多,就显的很繁琐,所有我想简化这个步骤,利用sqoop来导入。
毕竟 sqoop(SQL-to-Hadoop)是前辈们专门研究出来的,用于关系数据库与非关系数据库之间做数据传输的。
因为我的hadoop环境是自己安装的,目前还没有sqoop环境,所以我需要先安装sqoop环境,下面做一个详细的介绍,从sqoop的安装,到将mysql数据导入到hive的详细全过程。
二、sqoop1.4.7安装
1、sqoop就是一个工具, 只需要在一个节点上进行安装即可。
如果你的Sqoop工具要与Hive、Hbase等系统或者MySQL进行交互,你安装的Sqoop软件的节点一定要包含以上你要使用的集群或者软件系统的安装包
因为我只安装了mysql,hive,暂时还没有安装Hbase,所以在下面配置好环境变量 用sqoop version查看sqoop版本时会有错误信息(不影响sqoop的正常使用,下文会介绍解决方式)。
2、下载安装包
Sqoop安装包下载地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.7/版本说明
sqoop-1.4.6 与 sqoop-1.4.7 是 sqoop1
sqoop-1.99.4—-是 sqoop23、安装过程
上传解压安装包
#将sqoop安装包上传到linux的某个目录下
[root@hadoop01 ]#cd /opt/sqoop/ [root@hadoop01 sqoop]# rz #解压 [root@hadoop01 sqoop]# tar -zxvf sqoop-1.4.7.bin__hadoop2.6.0.tar.gz #重命名 [root@hadoop01 sqoop]# mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop-1.4.7
修改sqoop的sqoop-env.sh配置文件
#注意:没有此文件,需拷贝sqoop-env-template.sh重命名为sqoop-env.sh [root@hadoop01 sqoop]# cd /opt/app/Sqoop/sqoop-1.4.7/conf/ [root@hadoop01 sqoop]# cp sqoop-env-template.sh sqoop-env.sh [root&