大数据各框架的原理与知识点

本文深入探讨了大数据处理的各个关键框架,包括Hadoop、HBase、Kafka、Sqoop、Flume、Zookeeper、Storm和Spark。从数据存储、数据传输、数据采集、协调服务、实时计算等方面详细阐述了各框架的原理与应用场景。Hadoop的HDFS和MapReduce处理大量数据,HBase提供分布式列式存储,Kafka用于高效的消息队列,Sqoop用于数据导入导出,Flume处理日志采集,Zookeeper提供集群协调服务,Storm实现了实时流处理,而Spark则提供了快速通用的大数据处理能力,支持SQL查询和流处理。
摘要由CSDN通过智能技术生成

以下是根据自己的总结和梳理,建议入过门大数据的人看.写的很片面,没有图片,我仅仅想把握学的东西梳理下.

Hadoop篇

数据仓库
数据仓库,简写DW,是为企业级所有级别的决策制定过程,提供所有类型数据支持的战略集合.是单个数据存储,处于分析性报告和决策支持的而创建.

HDFS原理
客户端将数据上传到DateNode,然后通过硬盘(数据节点)的水平复制功能,达到冗余度的要求.而主节点NameNode管理维护HDFS,接受客户端的请求和维护文件的元信息(fsimage)和日志(edits),SecondaryNameNode进行日志信息合并.SNN不是NN热备,没有关系

HDFS写数据流程

  • 向NameNode请求上传文件
  • NameNode相应可以上传文件
  • 请求上传第一个block,请返回DataNode
  • 返回DataNode节点,
  • 客户端和DataNode奖励block通道,且响应成功
  • 最后数据传输

    HDFS读数据的过程

  • 客户端那个NameNode 请求下载文件
  • NameNode返回目标中的元数据
  • 客户端请求DataNode读取数据
  • 客户端与DataNode之间传输数据
  • 然后客户端请求DataNode读取数据
  • 最后DataNode传输数据

    NamNode工作机制

  • NamNode加载吧编辑日志和镜像文件到内存
  • 客户端向NameNode请求元数据的增删改查
  • 记录日志,更新滚动日志
  • 内存数据的增删改查

    DataNode工作机制

  • DataNode启动后向NameNode注册

  • 当注册成功后,没周期上报所有块信息
  • 心跳没3秒一次,心跳返回结果带有NameNode给DataNode的命令
  • 超狗30分钟没有收到DataNode的星跳则认为该节点不可用

MapReduce程序运行图

  • 开始有待处理的文本
  • 客户端submit()前获取带处理的数据信息,然后根据参数配置,形成一个任务分配规则
  • 客户端提交切片信息,计算map task的数量
  • 然后开始读取数据,map阶段开始逻辑运算
  • 输出到reduce以Key value的形式
  • 按照分区排序写入reduce
  • 所有map tas任务完成后,启动相应reduce task.并告知reduce task处理数据范围
  • reduce获取数据,并进行运算
  • 输出结构到HDFS

MapReduce的处理过程
首先由客户端Client,提交MapReduce任务Job
然后JobTracker协调整个job的运行,其中一个Java进程,其main class为JobTracker
TaskTracker:运行此job的task,处理input split,其为一个Java进程,其main class为TaskTracker
最后写入到HDFS:hadoop分布式文件系统,用于在各个进程间共享Job相关的文件

MapReduce原理
MapReduce的过程首先是由客户端提交一个任务开始的,提交任务主要通过JobClient.runJob(JobConf)静态函数实现的
读取数据文件内容,对内容解析成键值对,每个键值对调用一次map函数,编写映射函数处理逻辑,建输入的键值对输出新的键值对
将新的键值对进行分区,排序,分组
对多个Map的输出,按不同分区通过网络将copy到不同的reduce节点
对多个map的输出进行排序,合并,编写reduce函数处理逻辑,将接收到的数据转化成新的键值对
最后将reduce节点输出的数据保存到HDFS上

MR任务在Yarn调度的工程
由客户端的jar包提交任务请求到DFSClent.java,然后创建任务ID,在将任务文件保存到HDFS,获取到元信息,在提交任务(ID,数据元信息,任务元信息)到Yarn的ResourceManager(作用:接受客户端请求,分配资源和任务),然后ResourceManager对任务进行初始化:资源,分配资源和任务,最根据元信息到HDFS上获取数据和任务

HDFS的启动过程
第一步:读取fsimage文件,
第二步:读取edits日志
第三步:保存检查点
第四步:HDFS进入安全模式—->作用:检查数据块的副本率(冗余)

HDFS底层原理
底层原理采用的是:RPC和动态代理
RPC:
Remote Procedure Call,远程过程调用,也就是说,调用过程代码并不是在调用本地运行,而是实现调用者与被调用者二地之间的连接与通信

什么事shuffle?
当有一个数据块传过来是,首先会切片,然后送到map处理,输出数据到环形缓存区(内存:100M;超过80%时写成一个文件),然后在输出多个分区文件(可能排好序),在进行合并,形成更大的文件(可能更大的文件),当有多个大的文件,会进行Combiner合并更大的文件,在输出到对应的Reduce,最后输出.

HBase篇

什么事HBase
HBase的原型是Google的BigTable论文,从基因上讲,HBase已经是Hadoop生态系统化不可或缺的一部分 .HBase是一个分布式的,面向列的开源数据库,其字Hadoop之上提供了类型BigTable的能力,其特点海量存储,列式存储,极易扩展,高并发,稀疏

HBase的架构
HBase主要有Client, Zookeeper, Master, RegionServer, HDFS等几个组建而成.

Client包含了访问的HBase的接口,另外Client还维护了对应的cache来加速HBase的访问
Base通过Zookeeper来做master的高可用,RegionServer的监控,元数据的入口以及集群配置的维护等工作

Master主要是做一些管理操作;如region的分配,手动管理操作下发等等,一般数据的读写操作并不需要经过Master集群,所以Master一般不需要很高的配置即可

RegionServer :管理master为其分配Region
处理来自客户端请求
负责与底层HDFS交互,存储数据到HDFS
负责Region变大以后拆分
负责Storefile的合并工作

HDFS为Hbase提供最终的底层数据存储服务,同时为Hbase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:
提供元数据和表数据的底层分布式存储服务
数据多副本,保证的高可靠和高可用性

HBase 原理

HBase中 ROO表和META表

HBase的所有HRegion元数据被保存在.META,随着HRegion的增多,.META.表中的数据也会增大,并分裂成多个新的HRegion。会把元数据保存到-ROOT-表中. -ROOT-表永远不会被分割,-ROOT-只有一个 region,.META.可以有多个 regoin

-ROOT-表永远不会被分割,它只有一个HRegion,这样可以保证最多只需要三次跳转就可以定位任意一个HRegion。为了加快访问速度,.META.表的所有HRegion全部保存在内存中。客户端会将查询过的位置信息缓存起来,且缓存不会主动失效。如果客户端根据缓存信息还访问不到数据,则询问相关.META.表的Region服务器,试图获取数据的位置,如果还是失败,则询问-ROOT-表相关的.META.表在哪里。最后,如果前面的信息全部失效,则通过ZooKeeper重新定位HRegion的信息。所以如果客户端上的缓存全部是失效,则需要进行6次网络来回,才能定位到正确的HRegion。

Client 访问用户数据之前需要首先访问 zookeeper,然后访问-ROOT-表,接着访
问.META.表,最后才能找到用户数据的位置去访问。

HBase的读写操作流程

写操作:
步骤1:Client通过Zookeeper的调度,向HRegionServer发出写数据请求,在HRegion中写数据。

步骤2:数据被写入HRegion的MemStore,直到MemStore达到预设阈值。

步骤3:MemStore中的数据被Flush成一个StoreFile。

步骤4:随着StoreFile文件的不断增多,当其数量增长到一定阈值后,触发Compact合并操作,将多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除。

步骤5:StoreFiles通过不断的Compact合并

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值