Hadoop大数据处理技术基础与实践(第3版)课件 第10章-Hadoop与RDBMS数据迁移工具Sqoop_第1页
Hadoop大数据处理技术基础与实践(第3版)课件 第10章-Hadoop与RDBMS数据迁移工具Sqoop_第2页
Hadoop大数据处理技术基础与实践(第3版)课件 第10章-Hadoop与RDBMS数据迁移工具Sqoop_第3页
Hadoop大数据处理技术基础与实践(第3版)课件 第10章-Hadoop与RDBMS数据迁移工具Sqoop_第4页
Hadoop大数据处理技术基础与实践(第3版)课件 第10章-Hadoop与RDBMS数据迁移工具Sqoop_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

--Hadoop与RDBMS数据迁移工具sqoop学习目标

·了解Sqoop的背景

·了解Sqoop的安装

·了解Sqoop的相关功能

·掌握Hive和Sqoop两者之间的关系

Sqoop是实现Hadoop与关系型数据库(RDBMS)之间进行数据迁移的工具,通过Sqoop可以简单、快速地从诸如MySQL、Oracle等传统关系型数据库中把数据导入(import)到诸如HDFS、HBase、Hive等。Hadoop分布式存储环境下,使用HadoopMapReduce等分布式处理工具对数据进行加工处理,然后可以将最终处理结果导出(export)到RDBMS中。1.Sqoop简介及基本安装1.Sqoop简介及基本安装Sqoop的安装非常简单,在类UNIX系统上需要预先安装好Java6及其后期版本,并已部署Hadoop稳定版本的集群环境。从网站/下载最新的Sqoop稳定版本。Sqoop的Apache发行包分为源码包和已经编译好的二进制包,下面只介绍Sqoop的二进制包安装方法。下载Sqoop二进制包,并解压到相应安装目录,解压后会生成子目录sqoop-x.y.z.bin(x.y.z为版本号): $tar-xzfsqoop-x.y.z.bin.tar.gz把sqoop-x.y.z.bin目录移动到sqoop-x.y.z目录: $mvsqoop-x.y.z.bin/sqoop-x.y.z/设置环境变量,编辑文件~/.bashrc或~/.bash_profile把Sqoop的安装路径添加到PATH变量中,方便Sqoop的使用和管理: $exportSQOOP_HOME=/home/trucy/sqoop-x.y.z $exportPATH=$PATH:$SQOOP_HOME/bin2.Sqoop的配置Sqoop获取Hadoop平台各相关组件的配置信息是通过读取环境变量实现的,如获取Hadoop相关信息可以通过读取变量${HADOOP_HOME}的值,获取Hive相关信息可以通过读取变量${HIVE_HOME}的值等。修改文件~/.bashrc或~/.bash_profile配置环境变量使用export命令将上述工具的根目录添加到文件末尾;

同时Sqoop连接RDBMS需要使用相应的数据库驱动工具,如通过JDBC连接MySQL需要用到mysql-connector-java-x.y.z-bin.jar驱动程序2.Sqoop的配置将MySQL的JDBC驱动程序mysql-connector-java-x.y.z-bin.jar复制到${SQOOP_HOME}/lib目录下使用sqoop的list-databases命令测试Sqoop连接MySQL是否成功:$sqooplist-databases--connectjdbc:mysql://mysql.server.ip:3306/--usernameroot-PEnterpassword:(输入MySQL中root用户密码)information_schemaemployeeshiveDBmysqltesttrucyDB2.Sqoop的配置2.Sqoop的配置若配置好Hadoop相应环境变量后使用Sqoop仍无法连接MySQL,可以执行下述操作。(1)进入${SQOOP_HOME}/conf目录(注意第一个$为Linux命令提示符,第二个$为系统变量取值符): $cd${SQOOP_HOME}/conf(2)复制Sqoop读取环境变量的模板文件到自定义文件: $cpsqoop-env-template.shsqoop-env.sh(3)编辑文件sqoop-env.sh,修改相应属性值指向相关软件安装目录,如: #Setpathtowherebin/hadoopisavailable exportHADOOP_COMMON_HOME=/usr/local/hadoop #Setpathtowherehadoop-*-core.jarisavailable exportHADOOP_MAPRED_HOME=/usr/local/hadoop #setthepathtowherebin/hbaseisavailable exportHBASE_HOME=/usr/local/hbase #Setthepathtowherebin/hiveisavailable exportHIVE_HOME=/usr/local/hive #Setthepathforwherezookeperconfigdiris exportZOOCFGDIR=/usr/local/zk3.Sqoop相关功能Sqoop提供了一系列工具命令(toolscommand),包括导入操作(import)、导出操作(export)、导入所有表(import-all-tables)、列出所有数据库实例(list-databases)和列出特定数据库实例中的所有表(list-tables)等,在Linux命令提示符下输入sqoophelp会输出Sqoop所支持的所有工具命令下面分别详细介绍Sqoop所支持的工具命令。3.Sqoop相关功能(1)使用root用户登录MySQL数据库:$mysql-uroot–p(2)输入root用户密码,创建MySQL数据库SqoopDB:mysql>createdatabasesqoopDB;(3)使用root用户登录MySQL数据库,创建用户bear,密码为123456:

$mysql-uroot-pmysql>createuser'bear'identifiedby'123456';(4)授权用户bear拥有数据库sqoopDB的所有权限:mysql>grantallprivilegesonsqoopDB.*to'bear'@'%'identifiedby'123456';(5)刷新系统权限表:mysql>flushprivileges;新建一个MySQL数据库SqoopDB和用户bear,并授予用户bear拥有操作数据库SqoopDB的所有权限。下面使用bear用户登录MySQL数据库,在数据库实例sqoopDB下创建一张employees表,后面所有的Sqoop相关操作都在SqoopDBemployees表上进行:3.Sqoop相关功能(1)使用bear用户登录MySQL数据库:$mysql-ubear–p(2)输入密码,进入MySQL数据库SqoopDB:mysql>usesqoopDB;(3)创建employees表:

mysql>CREATETABLEemployees(->idint(11)NOTNULLAUTO_INCREMENT,->namevarchar(100)NOTNULL,->ageint(8)NOTNULLDEFAULT0,->placevarchar(400)NOTNULL,->entry_timetimestampNOTNULLDEFAULTCURRENT_TIMESTAMP,->positionvarchar(500),->PRIMARYKEY(id)->)ENGINE=InnoDBDEFAULTCHARSET=utf8;QueryOK,0rowsaffected(0.18sec)(4)向employees表中插入3条数据:mysql>INSERTINTOemployees(name,age,place,position)VALUES('James',27,'NewYork','Manager');mysql>INSERTINTOemployees(name,age,place,position)VALUES('Allen',30,'NewYork','CEO');mysql>INSERTINTOemployees(name,age,place,position)VALUES('Sharen',33,'NewYork','CTO');(5)查询表employees,结果如图:3.Sqoop相关功能3.Sqoop相关功能importsqoopimport工具导入RDBMS中的单个表到HDFS上,RDBMS表中的每一行以单独记录形式存储在HDFS中,记录默认以文本文件格式(每个记录一行)进行存储,还可以二进制形式进行存储,如Avro文件格式或序列文件格式(SequenceFiles)。sqoop-import语法格式为(两种操作功能一样):$sqoopimport(generic-args)(import-args)$sqoop-import(generic-args)(import-args)sqoop-import操作分为连接数据库服务器和导入数据等步骤。3.Sqoop相关功能(1)连接数据库服务器(2)导入MySQL表sqoopDB.employees中的数据到HDFS上(3)查看导入到HDFS上的表数据(4)sqoop-import增量导入到HDFS上(5)导入MySQL表sqoopDB.employees中的数据到Hive(6)导入MySQL表sqoopDB.employees中的数据到HBase3.Sqoop相关功能import-all-tables

sqoopimport-all-tables工具的语法与sqoop-import语法大致相同,唯一的区别是sqoopimport-all-tables操作导入多个RDBMS表到HDFS上,每个RDBMS表数据分别位于HDFS上的一个单独目录下。执行sqoopimport-all-tables操作必须满足以下条件。(1)每个RDBMS表中只有一个单独列作为主键,即不能是多个列的组合键作为主键。(2)执行导入操作时,每个RDBMS表的所有列都将被导入到HDFS上。(3)不能在RDBMS表上附加任何诸如WHERE条件的子句。3.Sqoop相关功能Sqoop-import语法格式为(两种操作功能一样):$sqoopimport-all-tables(generic-args)(import-args)$sqoop-import-all-tables(generic-args)(import-args)查询表items_info显示结果查看数据库实例SqoopDB中的所有表3.Sqoop相关功能exportsqoop-export操作与sqoop-import的操作是相反的,即把HDFS、Hive、HBase中的文件或数据导出到RDBMS数据库中,RDBMS表必须存在,否则sqoop-export操作执行出错。sqoop-export语法格式为(两种操作功能一样):$sqoopexport(generic-args)(export-args)$sqoop-export(generic-args)(export-args)查看表users_info的内容3.Sqoop相关功能list-databasessqoop-list-databases用于列举出指定数据库服务器中的数据库模式。$sqooplist-databases--connectjdbc:mysql://database.mysql.node1/sqoopDB--usernamebear-PEnterpassword:information_schemamysqlperformance_schemasqoopDB3.Sqoop相关功能list-tablessqoop-list-tables用于列举出指定数据库服务器中的数据库表。$sqooplist-tables--connectjdbc:mysql://database.mysql.node1/sqoopDB--usernamebear-PEnterpassword:employeesit

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论