数据基础存储6_第1页
数据基础存储6_第2页
数据基础存储6_第3页
数据基础存储6_第4页
数据基础存储6_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

任务3零售数据存储与分析—HBase实战课程纲要01环境部署完成HBase集群安装与配置02数据存储将零售数据导入HBase并验证03数据迁移使用Sqoop实现MySQL与HBase数据互通04操作进阶掌握HBase常用命令与过滤器05数据读取通过SDK读写HBase零售数据06知识拓展理解HBase架构原理与Sqoop机制环境部署01工单3.1基本信息与集群设计Node名称MasterZooKeeperRegionServermasteryesyesnodatanode1backupyesyesdatanode2noyesyes工单3.1HBase软件安装配置,建议学时

1学时环境要求已配置Hadoop集群的虚拟机ZooKeeper说明使用前文创建的ZooKeeper集群,非自带知识目标掌握HBase安装方法能力目标独立安装和配置HBase素养目标培养创新意识与探索精神安装配置(一):解压与核心配置前置准备ntpdate时钟同步(3节点执行)jps检查HDFS/YARN未运行则start-dfs.sh+start-yarn.sh解压安装cd/opttar-zxvfhbase-2.4.17-bin.tar.gzmvhbase-2.4.17hbase核心配置编辑

hbase-site.xml确保端口一致:HDFScore-site.xmlZKclientPortzoo.cfg节点同步scp同步HBase目录同步系统配置source生效安装配置(二):环境变量与节点同步核心配置文件与节点同步是HBase集群部署的关键步骤核心配置文件hbase-env.shJAVA_HOME目录、HBASE_MANAGES_ZK/etc/profileHBase系统环境变量regionservers删除localhost,替换为节点列表backup-mastersdatanode1(备份主节点)节点同步操作01同步HBase目录到所有节点scp-rhbasedatanode1:'pwd'02同步系统配置到datanode1scp/etc/profiledatanode1:/etc/profile03同步系统配置到datanode2scp/etc/profiledatanode2:/etc/profile04生效配置在datanode1、datanode2执行source/etc/profile启动ZooKeeper与HBase集群启动

ZooKeeper

HBase

集群ZooKeeper启动3节点启动确认leader为datanode1,其余为followerjps验证QuorumPeer进程命令zkServer.shstartHBase启动启动命令start-hbase.sh进程验证节点进程masterHMasterdatanode1HMaster+HRegionServerdatanode2HRegionServer浏览器访问

33:16010

查看WebUICLI客户端基本操作与工单小结本工单完成了HBase软件安装与配置,为后续零售数据存储与分析提供技术支持DDL操作建表create'test','cf'查表listdescribe'test'删表disable'test'drop'test'DML操作插入put'test','row1','cf:a','value1'put'test','row1','cf:b','value2'put'test','row2','cf:c','value3'查询get'test','row1'扫描scan'test'集群控制:退出CLI执行quit,停止集群执行stop-hbase.sh后jps确认已关闭VS数据存储02工单3.2基本信息与前置说明核心任务:通过HBase自带的

ImportTsv

数据导入工具将零售数据导入HBase,并使用HBase命令进行基本操作知识目标掌握HBase数据存储方法能力目标能够独立完成HBase数据存储素养目标培养学生主动思考、自主学习的能力工单编号:3.2

名称:HBase零售数据存储

建议学时:1学时

环境要求:已安装好HBase的Hadoop集群创建表与ImportTsv导入零售数据启动与检查start-hbase.shjps

确认

HMaster

运行准备数据零售数据存入

HDFS创建表结构create'product','p'表名

product,列簇

pImportTsv导入HBASE_ROW_KEY=Product_code完整命令见底部ImportTsv

批量导入四步流程关键参数:-Dimporttsv.skip.bad.lines=true

跳过问题行,-Dimporttsv.separator=";"

字段分隔符为分号验证:浏览器访问

33:8088

查看MapReduce任务状态数据查询验证与工单小结数据验证四步骤01单点查询获取指定商品数据get'product','20212693'02空值修复p:Category_3为空,执行赋值填充赋值操作数据验证四步骤03行数统计计算表总行数,结果约为

588832

行count'product'04范围扫描限定范围部分扫描,避免全表扫描scan限定区间本工单已将零售数据成功导入

HBase,并通过HBase命令完成

数据查询与验证数据迁移03工单3.3基本信息与前置说明核心任务:打通

Hive→MySQL→HBase

完整数据流转链路基础信息工单编号3.3工单名称Sqoop零售数据导入建议学时1学时环境要求配置好Hadoop集群的虚拟机目标层级知识目标掌握Sqoop零售数据抽取方法能力目标熟练运用Sqoop进行数据抽取素养目标培养实践动手能力前置条件:确保

Hadoop、YARN、ZooKeeper

HBase

服务全部可用Hive到MySQL:数据导出准备验证收尾:确认数据从Hive经HDFS到MySQL的完整链路畅通,导出结果准确无误。将Hive数据经HDFS中转,通过Sqoop导出至MySQLduct_price

表数据导出三步流程01Hive端准备创建表

duct_price,导入

product_code、product_title、full_price_in_local_currency

三列;检查数据完整性,查询HDFS存储位置及分隔符参数(field.delim、line.delim)02MySQL端建表连接

mysql-uroot-p→useods;;创建表结构,字段统一设为

STRING/VARCHAR

类型,规避NULL值解析错误03Sqoop执行导出从HDFS路径导出至MySQL,指定分隔符与列映射;验证MySQL中数据导入成功MySQL到HBase:Sqoop反向导入01创建目标表create'product_price','pro'02版本兼容处理将低版本HBaselib库(以

HBase1.6.0

为例)复制到Sqoop的lib目录tar–zxvfhbase-1.6.0-bin.tar.gzcphbase-1.6.0/lib/*sqoop/lib/03执行Sqoop导入$CONDITIONS

需反斜线转义sqoopimport--connectjdbc:mysql://master:3306/ods--usernamesqoop--passwordnewPass@123--query"select*fromproduct_pricewherefull_price_in_local_currencyisnotnulland\$CONDITIONS"-m1--hbase-tableproduct_price--column-familypro--hbase-row-keyproduct_code数据成功导入HBase,MapReduce任务完成数据验证与工单小结交叉验证四步骤01MySQL对照查询任意产品,记录结果作为基准02启动HBaseCLI执行

hbaseshell03验证查询执行

get'product_price','20212693'04结果比对确认两端数据一致本工单使用Sqoop成功将数据从MySQL导入HBase,为后续HBase数据操作和分析提供了数据基础操作进阶04工单3.4基本信息与核心操作回顾1项环境要求已配置HBase的Hadoop集群3种知识目标掌握常用操作方法1项能力目标熟练操作HBase数据1项素养目标细致严谨的工作态度put新增或更新某个行列的值get获取某个行列的值scan区间扫描,需带过滤条件,避免全表扫描变量赋值与自增运算HBase的原子性操作特性,使incr可保证分布式环境下生成唯一且递增的ID变量赋值将表赋值给变量,便于后续复用a=get_table'product_price'自增运算对指定单元格执行原子性计数累加默认自增(+1):incr'table1','row1','cf1:count',1指定自增(+10):incr'table1','row1','cf1:count',10省略自增量(默认+1):incr'table1','row1','cf1:count'获取当前计数值get_counter'table1','row1','cf1:count'VS过滤器使用与工单小结show_filters命令列出所有可用过滤器,快速查看HBase支持的筛选能力筛选能力一览SingleColumnValueFilter筛选对指定列值进行条件过滤,避免全表扫描示例product_title="Abbeyshoulderbag"精准条件匹配二进制存储特性HBase以二进制数据存储,不区分数据类型所有比较操作均基于二进制数据执行底层存储机制本工单学习了HBase常用数据操作命令,为零售数据应用奠定基础数据读取05工单3.5HBase零售数据读取3.5工单编号1学时建议学时已安装HBase的Hadoop集群环境目标掌握HBase数据读写方法,培养实践动手能力HBase定位分布式键值存储系统支持多级扩展、高可用性、面向海量数据多语言访问接口接口支持语言JavaAPIJavaThriftC/C++、Scala、Python等REST多语言HTTP访问本工单介绍了HBase的SDK读写方式,为后续零售数据应用开发提供了技术基础知识拓展06HBase概念与核心特点HBase是开源的、分布式的、面向列的非关系数据库,专为存储和处理

海量稀疏数据

而设计面向列存储按列存储,读取特定列时效率更高分布式架构基于Hadoop集群,HDFS存储+MapReduce处理可扩展性添加RegionServer节点即可扩展存储与算力高可靠性数据冗余+自动故障转移,保障服务可用稀疏数据存储高效存储含大量空值的数据集强一致性所有客户端看到相同的数据视图实时读写满足高实时性场景的数据访问需求HBase表结构:行键与列簇行键:唯一标识一行数据支持单行键、范围行键、全表扫描三种访问方式唯一性必须保证,否则数据冲突长度限制最大64KB,实际控制在10~100字节排序存储按字典顺序排序,将经常一起读取的行存储在一起01均匀分布避免单调递增或递减,防止区域负载不均衡02列簇:表的模式组成部分建表时预先定义,列名以列簇为前缀,冒号分隔(如

courses:history)03访问控制与统计磁盘和内存统计均在列簇级别进行04查询效率与扩展经常一起查询的列应放在同一列簇;新列簇可动态添加,但不推荐过多列簇HBase表结构:单元格、时间戳与区域版本化存储,让数据拥有时间维度版本回收策略保留最后n个版本超限时删除较早版本保留最近时间段如保留最近7天时间戳Timestamp64位整数,同一数据保存多版本按时间倒序排列自动分配:当前系统毫秒级时间戳客户端指定:需保证唯一性区域Region多行集合,由

[startkey,endkey]

表示记录增多时,表自动分裂为多份不同Region由Master分配给相应

RegionServer

管理版本化存储,让数据拥有时间维度HBase与RDBMS对比核心对比:HBasevsRDBMS属性HBaseRDBMS数据类型字节数组存储,可视为无类型字符串丰富数据类型(整型、日期、字符等)数据操作简单增删改查,不支持SQL连接及复杂关联功能强大SQL,支持连接、聚合、子查询、事务存储模式面向列存储,适合大规模数据分析基于行存储,适合频繁联机事务处理数据版本支持多版本,通过时间戳区分,更新生成新版本通常只保留最新版本可伸缩性分布式架构,增加RegionServer实现线性扩展扩展受限,多节点扩展复杂且成本高数据访问Java、REST、Thrift等接口标准化SQL为主要接口列存储与分布式架构是HBase核心优势HBase架构详解HBase客户端多接口交互入口:shell命令行、Java原生、Thrift/REST、MapReduce四种编程接口通过元数据表定位RegionServer,缓存元数据加速访问ZooKeeper保障主节点高可用,宕机时自动选举新主节点管理核心元数据(hbase:meta所在位置)参与RegionServer宕机恢复、实现分布式表锁HMaster处理DDL请求(建表、改表、权限、切分、合并)RegionServer负载均衡与宕机恢复清理过期日志与文件RegionServer直接响应用户读写请求内部由WAL、BlockCache及多个region构成HDFS默认三副本存储策略保障可靠性通过DFSClient组件与HBase交互HBase局限性与常用命令汇总HBase局限性及生态扩展方案复杂聚合受限不支持复杂聚合运算(Join、GroupBy)PhoenixSparkPhoenix(OLTP)或Spark(OLAP)无二级索引不提供二级索引功能PhoenixPhoenix索引功能无全局跨行事务仅支持单行事务,无全局跨行事务PhoenixPh

温馨提示

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

评论

0/150

提交评论