版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目6
电商产品数据迁移2023年2月根据电商产品数据统计结果创建数据表并查看目录Content1使用Sqoop将Hive中电商产品数据统计结果导出2项目导言零
在大数据技术兴起前,诸多企业的数据存储业务均交由关系型数据库处理,大数据技术兴起后很多企业的数据处理业务都在向大数据技术转型,有大量的数据需要进行迁移。在早期由于工具的缺乏,数据迁移非常困难,Sqoop的出现使得数据迁移问题得以解决。学习目标零知识目标了解Sqoop相关知识;熟悉Sqoop中常用连接器;熟悉Sqoop中配置数据库密码方式;掌握Sqoop数据导入与导出;具有实现数据迁移的能力。技能目标具备实现Sqoop中数据库密码配置的能力;具备掌握Sqoop命令使用的能力;具备实现数据导入与导出功能的能力;具备应用Sqoop将HDFS中数据迁移到MySQL数据库的能力。技能目标具备获取信息并利用信息能力;具有综合与系统分析能力;具备换位思考的能力。任务6-1根据电商产品数据统计结果创建数据表并查看壹1Sqoop简介1.Sqoop介绍Sqoop最早出现于2009年,是一款开源工具,作为Hadoop的一个第三方模块存在,主要用于Hadoop和关系型数据库(MySQL、Oracle等)之间数据的传递,能够做到将数据从关系型数据库导入到Hadoop的HDFS中,以及从Hadoop的文件系统中导出到关系型数据库,解决了传统数据库和Hadoop之间数据的迁移问题。任务6-1根据电商产品数据统计结果创建数据表并查看壹2.Sqoop优势Sqoop中最大的亮点就是能够通过Hadoop的MapReduce使数据在关系型数据库和HDFS之间进行移动,并充分利用MapReduce并行特点以批处理的方式加快数据传输。主要优势如下所示:通过调整任务数量控制并发度、配置数据库访问时间等操作可以高效且可控的进行资源的利用自动完成数据类型映射与转换,无需用户手动操作支持MySQL、Oracle、SQLServer、PostgreSQL等多种数据库010203任务6-1根据电商产品数据统计结果创建数据表并查看壹3.Sqoop架构(1)Sqoop1架构任务6-1根据电商产品数据统计结果创建数据表并查看壹3.Sqoop架构(2)Sqoop2架构任务6-1根据电商产品数据统计结果创建数据表并查看壹2Sqoop连接器
Sqoop支持MySQL、Oracle、PostgreSQL、SQLServer、DB2等多种连接器,以及支持MySQL和PostgreSQL数据库的快速路径连接器(专门连接器,用于批次传输数据的高吞吐量),能够实现数据在Hadoop和连接器支持的外部仓库之间进行高效的传输。DatabaseVersion-directsupportConnectstringHSQLDB1.8.0+Nojdbc:hsqldb:*//MySQL5.0+Yesjdbc:mysql:*//Oracle10.2.0+Nojdbc:oracle:*//PostgreSQL8.3+Yesjdbc:postgresql://任务6-1根据电商产品数据统计结果创建数据表并查看壹3Sqoop配置数据库密码方式03文件模式主要应用于Sqoop脚本定时执行的场景,可以通过--password-file参数读取文件中存储的密码实现数据库的访问。04别名模式是目前最安全的一种方式,解决了文件模式中使用明文保存密码的问题。01明文模式是最为简单的方式,在使用Sqoop命令时会通过--password参数将密码直接写入到命令中,但由于命令行中包含密码,会带来密码泄露的风险。02交互模式是最常用的一种密码输入模式,在使用Sqoop命令时通过-P参数的设置,访问时需要按回车键后,会显示密码输入提示,之后密码在输入时是不显示的。Sqoop支持4种输入密码的模式任务6-1根据电商产品数据统计结果创建数据表并查看壹4列出所有数据库
在Sqoop中,可以使用“list-databases”命令查看关系型数据库中全部的数据库名称并返回;在使用时,只需对通用参数进行设置即可连接数据库并返回数据库名称,语法格式如下所示。sqooplist-databases<通用参数>例如,指定账户和密码连接MySQL数据库查看全部数据库名称[root@master~]#sqooplist-databases--connectjdbc:mysql://localhost:3306/--usernameroot--password123456任务6-1根据电商产品数据统计结果创建数据表并查看壹5列出所有表在数据库查看完成后,Sqoop还提供了一个“list-tables”命令,能够查看关系型数据库中是否存在Hive元数据库中的所有表,与“list-databases”命令的使用基本相同,语法格式如下所示。sqooplist-tables<通用参数>例如,使用list-tables命令查询MySQL中所有表[root@master~]#sqooplist-tables--connectjdbc:mysql://localhost:3306/hive_metadata--usernameroot--password123456Sqoop明文方式连接MySQL数据库Step1连接MySQL数据库,进入phone数据库,创建表Step2使用list-tables命令查询phone数据库中所有表,验证表是否创建成功Step3使用Sqoop连接MySQL数据库,并对数据库进行操作任务6-1根据电商产品数据统计结果创建数据表并查看壹任务6-2使用Sqoop将Hive中电商产品数据统计结果导出贰1Sqoop数据导入与导出1.数据导入
在使用Sqoop进行数据的导入时,Sqoop会对数据表以及表中的列和数据类型进行检查,之后Sqoop代码生成器通过这些信息来创建对应表的类,用于保存从表中抽取的记录。任务6-2使用Sqoop将Hive中电商产品数据统计结果导出贰1Sqoop数据导入与导出数据导入的大致流程Sqoop通过JDBC读取导入的数据表的结构启动MapReducer作业,读取数据并切分数据,然后创建Map并将关系型数据库中的数据设置key-value形式交由Map映射数据类型为Java的数据类型,如varchar、number等被映射成String、int等,并根据数据表信息生成序列化类提交到Hadoop在载入过程中启动作业,并通过JDBC读取数据表中的内容后,使用Sqoop生成的列执行反序列化操作使用Sqoop类进行反序列化,并将记录写入到HDFS0103020405任务6-2使用Sqoop将Hive中电商产品数据统计结果导出贰1Sqoop数据导入与导出
在Sqoop中,数据导入通过Import命令实现,能够将关系型数据库中的数据导入到HDFS存储平台中,便于使用大数据技术对数据进行分析,Import命令不仅可以将数据追加到HDFS中已存在的数据集,还可以将数据导入到普通文件中。sqoopimport<通用参数><import命令参数>通用参数:指主要是针对关系型数据库链接的一些参数,如JDBC连接或数据库账户密码等设置参数描述--connect连接关系型数据库的URL--connection-manager指定要使用的连接管理类--driverHadoop根目录--hadoop-home覆写$HADOOP_HOME--help打印帮助指令--password-file设置包含验证密码的文件的路径-P从控制台读取密码--password连接数据库的密码--username连接数据库的用户名--verbose在控制台打印出详细信息任务6-2使用Sqoop将Hive中电商产品数据统计结果导出贰1Sqoop数据导入与导出
Import命令参数:主要设置将数据导入到HDFS中的位置和倒数方式以及其他导入的配置选项含义说明--append将数据追加到HDFS上一个已经存在的数据集上--as-avrodatafile将数据导入到Avro数据文件--as-sequencefile将数据导入到SequenceFile--as-textfile将数据导入到普通文本文件(默认)--columns指定要导入的字段,多个字段通过“,”逗号连接--delete-target-dir如果指定目录存在,则先删除掉--direct如果数据库存在,请使用直接连接器--fetch-size一次要从数据库读取的条目数--inline-lob-limit<n>设置内联的LOB对象的大小-m,--num-mappers使用n个map任务并行导入数据--e,--query导入的查询语句--split-by指定按照哪个列去分割数据--table导入的原表表名--target-dir导入HDFS的目标路径--warehouse-dirHDFS存放表的根路径--where导出时所使用的查询条件--z,--compress启用压缩--compression-code指定Hadoop的压缩编码类--null-string为字符串列的空值写入的字符串--null-non-string非字符串列将为空值写入的字符串任务6-2使用Sqoop将Hive中电商产品数据统计结果导出贰1Sqoop数据导入与导出2.数据导出Sqoop会根据数据库连接字符串来选择一个导出方法,对于大部分系统来说,Sqoop会采用JDBC方式,将HDFS中数据导出到关系型数据库中。任务6-2使用Sqoop将Hive中电商产品数据统计结果导出贰1Sqoop数据导入与导出2.数据导出具体过程第二步:根据获取到的元数据的信息,sqoop生成一个Java类,是用来进行数据传输的载体,具有序列化和反序列化功能;第三步:启动MapReduce作业第四步:Sqoop利用上面生成的这个java类,并行的从HDFS中读取数据第五步:根据导出表的元数据信息和读取到的数据,每个Map作业逗号生成多个INSERT语句,多个Map作业会并行的想数据库插入数据第一步:Sqoop通过JDBC访问关系型数据库,获取数据库表的元数据信息;任务6-2使用Sqoop将Hive中电商产品数据统计结果导出贰1Sqoop数据导入与导出Export命令使用的语法格式sqoopexport<通用参数><import命令参数>参数含义说明--validata启用数据副本验证功能,仅支持单表拷贝,可以指定验证的类--validation-threshold指定验证门限所使用的类--direct如果数据库存在,请使用直接连接器--export-dir存放数据的HDFS的源目录-m,--num-mappers使用n个map任务并行导出--table导出的目的表名称--call导出数据调用的指定存储过程名--updata-key更新参考的列名称,多个列名使用逗号分隔--updata-mode指定更新策略,包括:updataonly(默认)、allowinsert--input-null-string使用指定字符串,替换字符串类型值为null的列--input-null-non-string使用指定字符串,替换非字符串类型值为null的列--staging-table创建一张临时表,用于存放所有事务的结果,然后将所有事务结果一次性导入到目标表中,防止错误--clear-staging-table清除工作区中临时存放的数据--batch使用批量模式导出任务6-2使用Sqoop将Hive中电商产品数据统计结果导出贰2Sqoop其他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度二手住宅转让合同(标的:北京市朝阳区一套两居室)2篇
- 二零二四年建筑工程施工合同工程量清单2篇
- 二零二四年度专利实施许可合同标的与保密义务2篇
- 2024年度网络游戏开发与分成合作合同3篇
- 2024年汽车4S店展位租赁条款3篇
- 2024年度绿色能源路灯应用合同2篇
- 网络安全保障服务合同2024年3篇
- 2024年度委托合同样本:知识产权申请代理委托协议3篇
- 年度医疗器械研发与生产合同协议书(2024版)2篇
- 2024年物业管理维修责任协议3篇
- 广西壮族自治区示范性高中2024-2025学年高二上学期11月期中物理试题 含解析
- 2024-2030年中国土壤修复行业发展机遇规划研究报告
- 《企业ESG管理体系》
- 2024-2030年航空航天专用刀具行业市场现状供需分析及投资评估规划分析研究报告
- 2024年小学少先队工作总结参考(五篇)
- 2023年广西建设职业技术学院招聘考试真题
- “双减”政策背景下小学数学教学减负增效措施和数学作业设计措施3篇
- MOXO-d-CPT工具在儿童青少年执行功能评估课件
- 中医保健温通灸
- 德朗热综合征的临床及分子诊断
- 浅滩围涂工程复合加固堤身基础处理施工组织设计[详细]
评论
0/150
提交评论