本节书摘来异步社区《Hadoop实战手册》一书中的第1章,第1.5节,作者: 【美】Jonathan R. Owens , Jon Lentz , Brian Femiano 译者: 傅杰 , 赵磊 , 卢学裕 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.5 使用Sqoop从HDFS导出数据到MySQL
Sqoop是Apache基金会下的一个项目,是庞大Hadoop生态圈中的一部分。在很多方面Sqoop和distcp很相似(见1.3节)。这两个工具都是构建在MapReduce之上的,利用了MapReduce的并行性和容错性。与集群间的数据复制不同,Sqoop设计通过JDBC驱动连接实现Hadoop集群与关系数据库之间的数据复制。
它的功能非常广泛,本节将以网络日志条目为例展示如何使用Sqoop从HDFS导入数据到MySQL数据库。
准备工作
本例使用Sqoop V1.3.0版本。
在本节假设你已经启动了一个MySQL实例,并且能够访问Hadoop集群。mysql.user表配置了你运行Sqoop的那台机器上被允许连接的用户。访问http://dev.mysql.com/doc/refman/5.5/en/installing.html获取更多关于MySQL安装与配置的相关信息。
将MySQL JDBC驱动包复制到$SQOOP_HOME/libs目录下。该驱动包可以从http://dev.mysql.com/downloads/connector/j/ 下载。
按照1.1节介绍的导入weblog_entires.txt文件到HDFS的方式操作。
操作步骤
完成以下步骤实现将HDFS数据导出到MySQL表中。
1.在MySQL实例中创建一个新数据库:
CREATE DATABASE