- 1. 大数据发展趋势与鲲鹏大数据
- 大数据时代
- 大数据的应用领域
- 企业所面临的挑战和机遇
- 华为鲲鹏解决方案
- 2. HDFS分布式文件系统和ZooKeeper
- HDFS分布式文件系统
- HDFS概述
- HDFS相关概念
- HDFS体系架构
- HDFS关键特性
- HDFS数据读写流程
- ZooKeeper分布式协调服务
- ZooKeeper概述
- ZooKeeper体系结构
- 3. HBase分布式数据库和Hive分布式数据仓库
- HBase分布式数据库
- HBase概述与数据模型
- HBase体系架构
- HBase性能优化
- HBase常用Shell命令
- Hive分布式数据仓库
- Hive概述
- Hive功能与架构
- Hive基本操作
- 4. ClickHouse联机分析数据库管理系统
- ClickHouse概述
- ClickHouse架构及基本特性
- ClickHouse增强特性
- 5. MapReduce和Yarn技术原理
- MapReduce和Yarn基本特性
- MapReduce和Yarn功能与架构
- Yarn的资源管理和任务调度
- 增强特性
- 6. Spark基于内存的分布式计算和Flink流批一体分布式实时处理引擎
- Spark基于内存的分布式计算
- Spark概述
- Spark数据结构
- Spark原理与架构
- Flink流批一体分布式实时处理引擎
- Flink原理与架构
- Flink的Time与Window
- Flink的Watermark
- Flink的容错机制
- 7. Flume海量日志聚合和Kafka分布式消息订阅系统
- Flume海量日志聚合
- Flume简介及架构
- Flume关键特性介绍
- Flume应用举例
- Kafka分布式消息订阅系统
- Kafka简介
- Kafka架构与功能
- Kafka数据管理
- 8. ElasticSearch分布式全文检索服务
- ElasticSearch简介
- ElasticSearch系统架构
- ElasticSearch关键特性
- 9. 华为大数据平台MRS
- 华为大数据平台MRS概述
- 组件介绍
- MRS云原生数据湖基线方案
- 10. 华为数据治理中心DataArts Studio
- 数据治理概述
- 华为数据治理中心DataArts Studio概述
一.技术栈
海量数据存储系统:HDFS , Hbase , ClickHouse 。
海量数据处理:Hive ,MapReduce,Spark,Flink 。
海量数据采集和传输:Flume, Loader ,Kafka。
交互式查询:Zookeeper,Yarn,ElasticSearch。
大数据平台:MRS
数据治理平台:DataArtsStudio
列式数据库:Click House
二. HDFS
数据写入流程: 1.创建请求 -> 2.创建文件元数据 ->3.写入数据 -> 4. 写入数据包 -> 5.接收确认包 -> 6.关闭文件 ->7.写操作完成
数据读取流程: 1.打开文件 -> 2.获取数据块信息 -> 3.读取请求 -> 4.读取数据 -> 5.读取数据 -> 6.关闭节点
三 . Zookeeper
Zookeeper分布式服务框架主要是用来解决分布式应用中经常遇到的数据管理问题,提供分布式,高可用性的协调服务能力.
Zookeeper集群由一群server节点组成,这一组节点中只存在一个leader的节点.其他节点都为follower. 在集群启动时会选举leader. leader节点在接收到数据变更请求后,先写磁盘再写内存
zookeeper选举时,当某一个实例获得了半数以上票数时,就变成leader.
zookeeper关键特性:
1.最终一致性: 无论哪个server,对外展示的均是同一个视图.
2.实时性:保证客户端将在同一个时间间隔范围内获取服务器的更新信息.
3.可靠性: 一条消息被一个server接收,它将被所有server接收
4.等待无关性: 慢的或者失效的client ,不会干预快速的client的请求,使得每个client都能有效的等待.
5. 顺序一致性: 客户端所发送的更新会按照他们被发送的顺序进行应用.
小结:分布式文件系统是解决数据存储的方案,利用廉价的机器组成集群实现存储.
HDFS具有廉价,流数据读写,大数据集,简单的文件模型,强大的跨平台兼容性. 但不适合低延迟数据访问,无法高效存储大量小文件和不支持多用户写入和随意修改文件.
四. Hbase
Apache HBase可以满足大规模数据实时处理应用的需求。Apache Hive数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。可以将结构投影到已经存储的数据上。提供了命令行工具和JDBC驱动程序以将用户连接到Hive。
非关系型分布式数据库
Hbase是一个高可靠性,高性能,面向列,可伸缩的分布式存储系统
Hbase架构中的角色:
1.Hmaster:
HMaster是HBase集群的主节点,负责管理整个集群的元数据信息,包括表的创建、删除、修改等操作。它还负责监控RegionServer的状态,并进行负载均衡和故障恢复
2.RegionServer:
RegionServer是HBase集群的工作节点,负责存储和处理数据。每个RegionServer管理多个Region,每个Region负责存储一部分表数据。RegionServer接收客户端请求,并进行数据的读写操作。
3.Zookeeper:
ZooKeeper是一个分布式协调服务,用于管理HBase集群的配置信息和状态信息。它负责选举HMaster节点,并提供高可用性的服务。
4.HDFS:
HDFS是Hadoop分布式文件系统,用于存储HBase的数据。HBase将数据以Region的形式存储在HDFS上,每个Region对应一个HFile。
5.Hbase客户端:
HBase客户端是与HBase进行交互的应用程序,它可以通过HBase提供的API进行数据的读写操作。客户端可以直接与HMaster通信,也可以通过ZooKeeper获取集群的状态信息。
行存储和列存储的比较:
行存储:
优点:全表查询更快 ,有利于增加修改整行记录等操作
缺点:单列查询时,会读取一些不必要的数据
列存储:
优点:查询列更快,统计高效
缺点:整行读取时,需要多次的IO操作
Hbase与关系型数据库的对比:
数据索引:关系型数据库针对不同列构建复杂的多个索引,而Hbase只有一个索引__行键,通过行键访问和扫描,使得系统不会慢下来.
数据维护:在关系型数据库中,更新操作会用最新的值去替代旧值,覆盖后就不会存在; Hbase执行更新操作的时候不会删除旧数据,而是生成一个新的数据.
可伸缩性:关系型数据不易扩展,Hbase能轻易通过在集群中增加或减少硬件数量来实现性能的伸缩.
Hbase的表结构:
表: 由行和列组成 ,列划分为若干个列族.
行: 每个表由若干行组成,每个行由行键 rowkey来标识.
列族: 一个表被分组成多个列族的集合columnfamily的集合,他是基本的访问控制单元.
列限定符: 列族里的数据通过列限定符来定位.
单元格: 在Hbase表中,通过行,列族和列限定符来确定一个单元格cell, 单元格中存储的数据没有数据类型,总被视为字节数组byte.
时间戳: 每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引.
Hbase的shell命令
HBase常用Shell命令
create:创建表
list:列出HBase中所有的表信息
put:向表、行、列指定的单元格添加数据
scan:浏览表的相关信息
get:通过表名、行、列、时间戳、时间范围和版本号来获得相应单元格的值
enable/disable:使表有效或无效
drop:删除表
五. Hive
hive与传统数据仓库比较
Hive | 传统数据仓库 | |
存储 | HDFS | 存在上限 |
执行引擎 | tez | 可以选择更高效率的算法 |