Hadoop学习全程记录——使用sqoop将mysql中数据导入到hive中
接上一篇文章:Hadoop学习全程记录——hive入门
hive是Facebook的产品,最早研发它的目的是用它来对Facebook网站每天产生的海量日志进行分析。有时我们需要分析的数据可能存在数据库中,这时我们可以利用sqoop将mysql中数据导入到hive中。
操作系统:在windows下使用wubi安装了ubuntu 10.10
hadoop版本:hadoop-0.20.2.tar.gz
zookeeper版本:zookeeper-3.3.3.tar.gz
hive版本:hive-0.6.0 .tar.gz
sqoop版本:sqoop-1.2.0-CDH3B4.tar.gz
其中sqoop是将mysql数据导入hive的工具。这篇文章http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4/SqoopUserGuide.html比较详细得介绍了sqoop的使用。
主要的使用命令为:
$ sqoop import --connect jdbc:mysql://IP:PORT/DATABASE --username USERNAME --password PASSWORD --table TABLE --hive-import
通过上面的命令我们就能把数据库DATABASE中的TABLE表导入到hive中了,在hive环境使用命令:
hive> show tables;
就能发现多了一个TABLE表了,接下来就可以使用hive对表中数据进行分析了。
在使用过程中可能遇到的问题:
- sqoop依赖zookeeper,所以必须配置ZOOKEEPER_HOME到环境变量中。
- sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar,所以你需要下载hadoop-0.20.2-CDH3B4.tar.gz,解压缩后将hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2-CDH3B4.jar复制到sqoop-1.2.0-CDH3B4/lib中。
- sqoop导入mysql数据运行过程中依赖mysql-connector-java-*.jar,所以你需要下载mysql-connector-java-*.jar并复制到sqoop-1.2.0-CDH3B4/lib中。
只要注意这几点,我们就能使用sqoop将mysql中的表数据导入到hive进行并行计算分析了,当然只有在mysql中存在海量数据时才使用这个方法,一般数据量时,使用mysql的SQL语句已经足够了。