整个大数据处理的体系,按我的理解可以分为两个部分,一个是分布式存储系统、另一个是分布式计算框架。分布式存储系统主流是hadoopdfs,其他还有ceph和swift。分布式计算框架主流是mapreduce,storm和spark。
首先说分布式存储系统hadoopdfs。它是一种本地文件系统之上的更高的抽象,把跨节点的组成的文件系统看成一个逻辑上的整体。它存储的思路是,把文件分成一个个block,每个block都有一定量的副本存储在不同的节点上,默认数量是3个,这保证了分布式存储的数据的稳定性。
hdfs的架构有namenode、secondarynamenode、datanode。namenode节点主要负责客户端传来的读写请求,保存文件的metadata。secondarynamenode负责帮助namenode合并editlog。datanode负责储存block,向namenode汇报block信息、发送heartbeat。
hdfs写入文件的时候:客户端通过rpc向nn调用create()方法,nn检查文件是否存在,不存在并且有权限的话就会创建一个新文件,向客户端返回一个fsdataoutputstream,用于写数据。
hdfs读文件的时候,客户端通过rpc向nn调用open()方法,nn获得每个数据块的位置信息,返回客户端fsdatainputstream,客户端调用其read()方法读取数据块。
分布式计算框架中最流行的是mapreduce。它把并行计算、容错等细节问题封装到库里,程序员只需要编写map和reduce函数就可以了。这种模型的灵感来自函数式编程中的map和reduce原语。map函数接受kv值,输出kv值,reduce函数接收key和相同key构成的value的集合的迭代器,再输出kv值。
整个执行过程是:用户提交job给调度系统,每个job包含一系列task,调度系统将这些任务调度到集群中多台可用的机器上。
开始执行后,数据被分割成m个数据片段集合,再调用map函数,之后被分区函数将结果分成r个不同分区,之后执行reduce函数。具体就是:
输入文件分成m个数据片段,每个片段大小是hdfs的blocksize,程序副本也被创建到集群中。
这些程序的副本有一个master,master负责分配任务给其他空闲的worker。
分配了map任务的worker程序读取数据片段,解析成kv对,然后传递给自定义的map函数,再解析出中间kv对,缓存在内存中。
分区函数把内存中的kv对分成r个区域,周期性写入文件系统,缓存的kv对在本地磁盘位置传给master,master再把位置传给reduceworker。
reduceworker收到位置信息,通过rpc从mapworker所在主机磁盘读取缓存数据。读取后,通过对key排序使得具有相同key的数据聚合在一起,
排序过后,每个key对应的value集合传给自定义reduce函数,处理之后,结果追加到所属分区的输出文件中。
map和reduce任务都完成后,master唤醒用户程序,返回结果。
spark这个计算框架的两个优势是内存计算和dag。它的五大特性:
rdd都是由partition组成的
每个split都会有相同的计算函数
有一系列的依赖关系
对键值对类型的rdd可以为他分区,但我暂时没用过
移动计算,而不移动数据。他会把计算发到相应数据集所在节点。
整个spark的核心就是rdd,一个rdd中的数据可以做partition分区,对于rdd的操作也只有transformation和action两种。
一个spark作业就是对rdd的一系列操作(transformation和一个action)。作业又可以分为多个stage,stage的划分又出现了宽依赖和窄依赖的概念。窄依赖就是父rdd的每个分区最多被一个子rdd的分区所用,宽依赖就是子rdd的每个分区依赖于父rdd的多个分区或所有分区。当一个作业的lineage过长,可以用到缓存管理,persis或者cache一下,加快整个处理速度。
浅谈设计抬头显示器的正向HUD系统性能评估
洲明LED技术为赛事体验多元化全力以赴
箱式变压器接地的作用、重要性和类型
浅谈pcb接线端子的作用及分类
国星光电携高品质LED光源亮相光亚展会
盘点分布式存储系统的主流框架
【虹科方案】有效抗干扰!虹科CAN中继器/路由器使BESS系统更稳定可靠
比亚迪将很有可能成为iPod touch的独家组装供货商
战“疫”协调,一呼百应 | 美格智能Cat.1模组为公网对讲注入新活力
区块链与金融行业:价值的天然契合
如何设置IE6浏览器自动删除临时文件
衰减器分类
MLPerf V2.0推理结果放榜,NVIDIA表现抢眼
电动汽车充电标准接口有哪几种
CDMA无线网络资源增效的思路与具体实施研究
倍捷连接器市场布局、发展战略
工控主板启动时没有显示的原因是什么
全网通是什么意思?全网通手机怎么识别?
基于DCS与MATLAB的车辆传动系统仿真平台数据通信的实现
仓库消防安全检测