您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 关系型数据库到hadoop数据迁移
关系型数据库到Hadoop数据迁移—sqoop批量数据导入技术战略发展部 张延凤1 1.Email: zhangyanfeng@neusoft.com 目录1. 目的 ......................................................................................................................................... 4 2. sqoop版本及安装 ................................................................................................................ 4 2.1 sqoop版本及安装 ............................................................................................................. 4 2.2 sqoop安装......................................................................................................................... 4 3. sqoop导入到hive ............................................................................................................... 5 3.1 hive简单介绍 ..................................................................................................................... 5 3.2 hivemetadataDB更换成mysql .................................................................................. 5 3.3 hivemetadataDB更换成mysql .................................................................................. 6 3.4 增量导入示例 ...................................................................................................................... 7 3.5 验证导入到Hive中的数据 ............................................................................................... 7 3.6 Hive查询出来的结果导入到HDFS指定目录下 ............................................................ 8 3.7 分隔符的故事 ...................................................................................................................... 8 3.8 问题总结 .............................................................................................................................. 9 4. sqoop导入数据到HDFS ..................................................................................................... 9 4.1 导入示例 .............................................................................................................................. 9 4.2 增量导入示例 ...................................................................................................................... 9 5. Sqoop导入数据到HBase ................................................................................................. 10 5.1 HBase简单介绍 ............................................................................................................... 10 5.2 导入示例 ............................................................................................................................ 10 5.3 增量导入示例 .................................................................................................................... 10 5.4 问题总结 ............................................................................................................................ 11 6. Hive和HBase整合 ............................................................................................................ 11 6.1 为什么需要整合Hive和HBase .................................................................................... 11 6.2 整合步骤 ............................................................................................................................ 11 6.3 问题总结 ............................................................................................................................ 12 1.目的sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop中,也可以将hadoop中的数据转移到关系型数据库中。下文中我们将以iSpace存储在MySQL中的生产数据导入到hadoop为例性进行说明。本质上sqoop是一个hadoop的一个jobClient,负责定义hadoopjob,然后将job提交到hadoop集群,只不过这个jobClient为了支持了能通过命令行来配置各种各样的job,做了很多处理。2.sqoop版本及安装2.1sqoop版本及安装我们使用的hadoop版本是Cloudera的Hadoop2.0.0-cdh4.0.0,sqoop的版本是1.4.1-cdh4.0.0。Sqoopuserguide地址:如果在apache上的hadoop安装sqoop,请留意版本问题。download以后,直接解压即可2.2sqoop安装sqoop安装依赖于hadoop,我们在CDH4环境下对sqoop进行安装,关于CDH4的安装不是本文介绍的重点,此处从略。 我们在ubuntu10.0464位上安装了CDH4,选择集群中的一个节点,执行sudoapt-getinstallsqoop,sqoop默认安装路径是/usr/lib/sqoop,执行一下sqoopversion命令,显示sqoop1.4.1-cdh4.0.0,即sqoop安装成功。ispace生产数据存储在mysql中,所以我们还需要把mysql驱动mysql-connector-5.1.8.jar,下载复制到sqoop下的lib文件夹中。在/usr/lib/sqoop/bin目录下,执行,sqooplist-databases--connectjdbc:mysql://192.168.161.121:3306--usernameroot–P结果会列出所连接到的mysql中所有database。下面我们就可以利用sqoop批量导入数据了。3.sqoop导入到hive3.1hive简单介绍hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。特别提醒hive8.0以前只有全量插入,我们安装的是hive-0.8.1+59,已经支持增量插入。Hive不支持一条一条的用insert语句进行插入操作,也不支持update的操作。数据是以load的方式,加载到建立好的表中。数据一旦导入,则不可修改。要么drop掉整个表,要么建立新的表,导入新的数据。 3.2hivemetadataDB更换成mysqlHive默认是采用Derby来存储其Metadata信息的,由于derby是个文件数据库,所以无法同时启动多个Hive进程,无法提供多用户访问,这样的体验是非常糟糕的。我们把metadataDB更换为为mysql。修改hive的配置文件hive-site.xml propertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://10.1.202.99:3306/hive?createDatabaseIfNotExist=true/valuedescriptionJDBCconnectstringforaJDBCmetastore/description/propertypropertynamejavax.jdo.option.ConnectionDriverName/namevalu
本文标题:关系型数据库到hadoop数据迁移
链接地址:https://www.777doc.com/doc-1450534 .html