Hadoop学习全程记录——使用sqoop将MySQL中数据导入到Hive中

接上一篇文章:Hadoop学习全程记录——hive入门  见 http://www.linuxidc.com/Linux/2012-01/51992.htm

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的使用。 

主要的使用命令为: 
Java代码  
  1. $ sqoop import --connect jdbc:mysql://IP:PORT/DATABASE --username USERNAME --password PASSWORD --table TABLE --hive-import  


通过上面的命令我们就能把数据库DATABASE中的TABLE表导入到hive中了,在hive环境使用命令: 
Java代码  Hadoop学习全程记录——使用sqoop将MySQL中数据导入到Hive中
  1. 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语句已经足够了。 

相关推荐