HBase分布式数据库技术与应用 课件11项目六-任务一-HBase数据的导入、导出_第1页
HBase分布式数据库技术与应用 课件11项目六-任务一-HBase数据的导入、导出_第2页
HBase分布式数据库技术与应用 课件11项目六-任务一-HBase数据的导入、导出_第3页
HBase分布式数据库技术与应用 课件11项目六-任务一-HBase数据的导入、导出_第4页
HBase分布式数据库技术与应用 课件11项目六-任务一-HBase数据的导入、导出_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

《HBase分布式数据库实战》HBase分布式数据库实战项目六

HBase数据的导入、导出任务一

使用sqoop进行数据的导入导出回顾知识点1

协处理器类型回顾回顾知识点2协处理的加载、卸载方式回顾知识点3编程实现步骤任务引入Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递。Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。任务概要任务描述:学习完基本的HBase用法后,我们思考一个问题:既然HBase是一种数据库,那么它与其他类型数据库之间如何实现数据的导入、导出?这里就要引出我们接下来要学习的数据传输工具——Sqoop。本任务将讲解Sqoop的使用方法。任务教学目标:掌握Sqoop的安装方法掌握使用Sqoop在各类型数据库之间传输数据的方法。一sqoop介绍二sqoop版本教学内容三sqoop安装四sqoop基本命令知识点一sqoop介绍(一)sqoop介绍sqoop,即SQLtoHadoop的简写。以Hadoop为主体,RDBMS为客体。sqoop是依赖于Hadoop的,需要导入导出的数据,存储在HDFS中,而且底层的数据传输的实现使用MapReduce或YARN,Sqoop底层的实现就是MapReduce,使用批处理方式进行数据传输。sqoop(一)sqoop介绍可以高效、可控的利用资源,可以通过调整任务数来控制任务的并发度。可以自动的完成数据映射和转换。由于导入数据库是有类型的,它可以自动根据数据库中的类型转换到Hadoop中,当然用户也可以自定义它们之间的映射关系。支持多种数据库,如mysql,orcale等数据库。sqoop的优点知识点二sqoop版本(二)sqoop版本Sqoop2和sqoop1的功能性对比功能Sqoop1Sqoop2用于所有主要RDBMS的连接器支持不支持解决方法:使用已在一下数据库上执行测试的通用JDBC连接器i:MicrosoftSQLServer、PostgreSQL、MySQL和Oracle。此连接器应再任何其他符合JDBC要求的数据库上运行,但是,性能可能无法与Sqoop中的专业连接器相比Kerberos安全集成支持不支持数据从RDBMS传输至Hive或HBase支持不支持解决方法:将数据从RDBMS导入HDFS在Hive中使用相应的工具和命令(例如LOADDATA语句),然后手动将数据载入Hive或HBase。数据从Hive或HBase传输至RDBMS不支持解决方法:从Hive或HBase将数据提取至HDFS(作为文本或者Avro文件)后再使用Sqoop将上一步的输出导出至RDBMS不支持按照与Sqoop1相同的解决方法操作(二)sqoop版本1.sqoop1版本号:1.4.X以后的Sqoop1。架构上:Sqoop1使用sqoop客户端直接提交代码方式。访问方式:CLI命令行控制台方式访问。安全性:命令或者脚本指定用户数据库名和密码。原理:Sqoop工具接收到客户端的shell命令或者Javaapi命令后,通过Sqoop中的任务翻译器(TaskTranslator)将命令转换为对应的MapReduce任务,而后将关系型数据库和Hadoop中的数据进行相互转移,进而完成数据的拷贝。(二)sqoop版本2.sqoop2版本号:1.99.X以上的版本Sqoop2。架构上:Sqoop2引入了sqoopserver,对connector实现了集中的管。访问方式:RESTAPI、JAVAAPI、WEBUI以及CLI控制台方式进行访问.安全性:CLI方式访问,会通过交互过程界面,输入的密码信息会被看到,同时Sqoop2引入基于角色的安全机制,Sqoop2比Sqoop1多了一个Server端。知识点三sqoop安装(三)sqoop安装1.下载sqoop进入Sqoop的下载页面:/dist/sqoop/1.4.6/,选择sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz进行下载(三)sqoop安装2.上传解压缩安装包到指定目录下载完成后,通过FTP工具将sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz传输至Linux系统的/usr/local/目录下,然后解压文件,命令如下。[root@localhostlocal]$tar-zxvfsqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz修改文件夹名。[root@localhostlocal]$mvsqoop-1.4.6.bin__hadoop-2.0.4-alpha/sqoop-1.4.6(三)sqoop安装3.修改配置文件进入sqoop-1.4.6文件夹的conf目录,找到sqoop-env-template.sh,修改其名称为sqoop-env.sh。[root@localhostlocal]$cdsqoop-1.4.6/conf[root@localhostconf]$lsoraoop-site-template.xmlsqoop-env-template.shsqoop-site.xmlsqoop-env-template.cmdsqoop-site-template.xml[root@localhostconf]$mvsqoop-env-template.shsqoop-env.sh(三)sqoop安装3.修改配置文件修改sqoop-env.sh,将以下属性开头的注释删除,并加上相应内容(路径按照自己安装Hadoop、Hive、HBase的路径填写,只需写到安装包的根目录)。[root@localhostconf]$visqoop-env.sh#Setpathtowherebin/hadoopisavailableexportHADOOP_COMMON_HOME=/usr/local/hadoop#Setpathtowherehadoop-*-core.jarisavailableexportHADOOP_MAPRED_HOME=/usr/local/hadoop#setthepathtowherebin/hbaseisavailableexportHBASE_HOME=/usr/local/hbase-1.4.13#Setthepathtowherebin/hiveisavailableexportHIVE_HOME=/opt/module/hive(三)sqoop安装3.修改配置文件加入mysql驱动包到sqoop1.4.6/lib/目录下,这里我们选用之前Hive中使用过的mysql-connector-java-5.1.27.tar.gz。[root@localhostconf]$cp/opt/module/hive/lib/mysql-connector-java-5.1.27-bin.jar/usr/local/sqoop-1.4.6/lib/(三)sqoop安装4.配置环境变量编辑~/.bashrc文件,在最后添加如下描述。[root@localhostconf]$vi~/.bashrcexportSQOOP_HOME=/usr/loacl/sqoop-1.4.6exportPATH=$PATH:$SQOOP_HOME/bin保存退出使其立即生效。[root@localhostconf]$source~/.bashrc(三)sqoop安装5.验证是否安装成功输入sqoopversion命令查看sqoop版本。[root@localhostconf]#sqoopversionWarning:/usr/local/sqoop-1.4.6/../hcatalogdoesnotexist!HCatalogjobswillfail.......sqoop基本命令知识点四(四)sqoop基本命令在讲解具体语法之前,我们先来体验几个实例。首先我们可以使用sqoophelp来查看Sqoop支持哪些命令。[root@localhostconf]#sqoophelp......usage:sqoopCOMMAND[ARGS]Availablecommands:codegenGeneratecodetointeractwithdatabaserecordscreate-hive-tableImportatabledefinitionintoHiveevalEvaluateaSQLstatementanddisplaytheresultsexportExportanHDFSdirectorytoadatabasetable(四)sqoop基本命令实例1列出MySQL有哪些数据库[root@localhostconf]#sqooplist-databases\>--connectjdbc:mysql://31:3306/\>--usernameroot\>--password123456结果如下......information_schemametastoremysqlperformance_schematest(四)sqoop基本命令实例2列出MySQL中的某个数据库有哪些数据表[root@localhostconf]#sqooplist-tables\>--connectjdbc:mysql://31:3306/mysql\>--usernameroot\>--password123456结果如下......columns_privdbeventfuncgeneral_loghelp_categoryhelp_keywordhelp_relationhelp_topic

......(四)sqoop基本命令实例3创建一张跟MySQL中的help_keyword表一样的hive表hk[root@localhostconf]#sqoopcreate-hive-table\>--connectjdbc:mysql://31:3306/mysql\>--usernameroot\>--password123456\>--tablehelp_keyword\>--hive-tablehk结果如下......21/11/1809:33:42INFOhive.HiveImport:OK21/11/1809:33:42INFOhive.HiveImport:Timetaken:3.074seconds21/11/1809:33:43INFOhive.HiveImport:Hiveimportcomplete.(四)sqoop基本命令1.Sqoop数据导入1.从RDBMS导入到HDFS从RDBMS导入到HDFS的语法格式如下。sqoopimport(generic-args)(import-args)常用参数--connect<jdbc-uri>jdbc连接地址--connection-manager<class-name>连接管理者--driver<class-name>驱动类--hadoop-mapred-home<dir>$HADOOP_MAPRED_HOME--helphelp信息-P从命令行输入密码--password<password>密码--username<username>账号--verbose打印流程信息--connection-param-file<filename>可选参数(四)sqoop基本命令1.Sqoop数据导入2.把MySQL数据库中的表数据导入到Hive中语法格式与前面相同sqoopimport(generic-args)(import-args)示例如下[root@localhost~]#sqoopimport\>--connectjdbc:mysql://31:3306/mysql\>--usernameroot\>--password123456\>--tablehelp_keyword\>--hive-import\>-m1(四)sqoop基本命令1.Sqoop数据导入3.把MySQL数据库中的表数据导入到HBase导入前需要先在hbase中建立对应的表hbase(main):001:0>create'new_help_keyword','base_info'0row(s)in3.6280seconds=>Hbase::Table-new_help_keyword示例如下sqoopimport\--connectjdbc:mysql://31:3306/mysql\--usernameroot\--password123456\--tablehelp_keyword\--hbase-tablenew_help_keyword\*指定表名--hbase-create-table\*没有表就创建表--column-familyperson\*指定列族--hbase-

温馨提示

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

评论

0/150

提交评论