研究背景
最近实习项目需要使用到kylin建立数据立方体,kylin是一个基于hive的OLAP系统,主要功能是可以通过预计算的方式将存储在hdfs上的文件设定为多维立方体缓存到HBase中,将需要的查询结果作为数据立方体预先存储在hbase中,是一种以空间换时间的快速查询方法。
甲方公司目前使用的是mysql存储数据,并且数据会定期删除。目前需要考虑使用工具将mysql中的数据导入到Hive中,同时考虑到数据定期删除,还需要设置定时任务以及增量导入等问题。
sqoop介绍
概念
sqoop是一款apache旗下的“hadoop和关系型数据库数据传输”工具。主要功能涉及mysql,Oracle数据导入到HDFS、Hive、Hbase等数据存储系统。简单来说,是一个命令行工具,使用java语言编写,源码使用ant编译。
工作机制
本质上,sqoop是将sql查询结果转换为MR程序存储至HDFS。
安装步骤
1、官网下载sqoop
http://sqoop.apache.org/
目前只有sqoop1 版本支持直接将mysql、Oracle数据导入hive。
sqoop2中仅支持将关系型数据库中的数据上传至hdfs,再由hive等命令将hdfs上的文件load进入hive中。
所以目前我们仍然使用旧版本的sqoop
2、解压后修改sqoop-env.sh文件
export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.7.5
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.7.5
#set the path to where bin/hbase is available
export HBASE_HOME=/home/hadoop/apps/hbase-1.2.6
#Set the path to where bin/hive is available
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.3-bin
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/home/hadoop/apps/zookeeper-3.4.10/conf
3、sqoop/lib目录下加入mysql驱动包
这里我们使用mysql5.1-connect-jdbc.jar
4、配置系统环境变量
#Sqoop
export SQOOP_HOME=/home/hadoop/apps/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin
5、验证安装是否成功
sqoop-version
Sqoop基本命令
由于我需要使用sqoop将mysql的数据导入到hive中,所以我主要使用的命令为sqoop -import
将mysql表导入hive(主要命令列举)
单个维度分区
sqoop import \
--connect jdbc:mysql://hadoop-master:3306/mysql-hive \
--username root \
--password gzudb604 \
--table mysql_hive_te