目录
一,大数据平台架构概述
1,大数据概念
2,大数据的特征
3,大数据的处理流程和相关技术
4,大数据平台架构的特点
5,大数据平台架构原理
二,Hadoop集群概述
1,HDFS
2,MapReduce
3,YARN
三,Hadoop HA 集群原理
1,HDFS HA 实现原理
2,主备切换
3,Zookeeper的功能原理
4,JournalNode服务原理
Hellow大家好,今天带大家学习大数据平台的概述和原理,以及Hadoop架构平台的运转原理,讲解不死板,通俗易懂。带您轻而易举了解其工作原理。
一,大数据平台架构概述
1,大数据概念
大数据并不是单只大数据本身,而是包括大数据的获取,存储,管理,处理分析,展示等等,大数据,数据量肯定更大,来源渠道更广,处理分析展示,更为麻烦,面对大量的数据如果处理速度慢,那么用户会因体验不佳从而放弃当前页面,大数据的最终目的就是让大量的数据发挥其潜在的巨大价值。
2,大数据的特征
体量大
大数据嘛,为什么叫大数据,就是因为它体量大,来源广,杂,随着互联网,物联网,人工智能,移动互联的发展,人口的不断增多,数据量越来越大,越来越多。
多样性
大数据数据来源广泛且多样,包含结构化,非结构化,半结构化数据,不能以统一的方式存储。
高速性
数据的增长速度和处理速度是大数据高速性的重要体现,在当下,人们对大数据的处理和响应速度要求极高,须达到几秒之内完成。
价值
大数据的核心特征是价值密度低,简单理解就是,数据量大,但其有用的信息,经过处理分析之后却很少。
3,大数据的处理流程和相关技术
大数据的处理流程一般分为四步
大数据的采集
采集须在多台服务器上进行,且不能影响其它业务的正常开展,在采集中,会有重复的数据,所以需要对数据进行预处理,去重,在Hadoop平台架构中,预处理主要通过MapReduce来实现。
大数据的存储
因为数据的多样性,结构化,非结构化,半结构化,根据存储问题,衍生出了HDFS,KFS等分布式文件系统,各种关系型(MySql),非关系型(Redis)应运而生。
大数据的分析和挖掘
因对其处理时间要求极其严格,分为离线处理方式和在线处理方式,如果对时间要求不严格,采用离线方式处理,如果对时间要求苛刻,就采用在线方式处理,它们都将存储到HDFS中,通过HDFS数据作为输入,基于Hadoop进行分布式数据分析。
大数据可视化
要求就是能清晰直观的看出分析结果,可借助图形化手段,这就是可视化工具,如python等等。
4,大数据平台架构的特点
高可靠性
按位存储和处理数据能力,HA机制,保证集群不会出太大的故障。
高扩展性
在集群之间分配数据完成扩展任务,方便扩展,节点数以千计。
高效性
各节点动态移动数据,保持节点平衡,处理速度快。
高容错性
数据保存多个副本,自动对失败任务进行重新处理分配。
低成本,开源
5,大数据平台架构原理
分为四层:数据来源层,数据采集与存储层,数据分析层,数据应用层。
二,Hadoop集群概述
Hadoop集群三大核心组件
1,HDFS
Hadoop分布式文件系统HDFS是Hadoop数据存储管理的基础,是一个分布式文件系统,容错性高,高吞吐率,有效的收集海量数据,将大数据文件切成小数据块,再写入不同节点,这些节点被称为数据节点(DataNode),为了使用户在使用时可以访问到每一个数据块,HDFS使用了一个专门保存文件属性信息的节点——名称节点(NameNode)。
2,MapReduce
上边讲到过,MapReduce就是处理数据的,用于海量数据的分布式处理,把对大数据的操作分发给多个子节点进行并行处理,然后整合结果,得到最终的计算结果,MapReduce就是一个分赛处理并汇总结果的过程。
3,YARN
YARN用于资源调度,就是为MapReduce提供计算资源的,是通用资源管理系统,负责将系统资源分配给在Hadoop集群中的应用程序,并调度需要在不同节点执行的任务,相当于一个分布式操作系统平台,它的组件有ResourceManager,ApplicationMaster,NodeManager,采用master/slave(主/从)结构。
总的来说:HDFS用于海量分布式数据的存储,MapReduce用于海量数据分布处理,YARN用于进行资源调度,为MapReduce提供算力资源,HDFS和YARN加起来就是一个分布式操作系统,而MapReduce是运行在这个操作系统上的大数据处理框架。
三,Hadoop HA 集群原理
1,HDFS HA 实现原理
简单来说,完全分布式集群的HDFS下至有一个Namenode进程,当它发生故障时,整个集群将无法工作,那么如何避免呢?很简单,每个HDFS可以部署两个NameNode实列,一个处于active状态,一个处于standby状态,两个Name Node需要同步,为保证active Name Node和standby NameNode的同步,当active NameNode的命名空间发生改变时,会将日志写入DataNode的JournalNode中,standby NameNode会一直监控JournalNode的变化,从而实现两个NameNode的状态同步。
2,主备切换
当active NameNode出现故障后,需要自动切换到standby NameNode,让standby 替代active,从而实现HA,而实现主备切换主要是通过zookeeper集群和FailoverController服务,每个NameNode本地都会有一个FailoverController,他的作用就是向本地的NameNode做健康监控,并时刻与另一端通信,而zookeeper集群则会给一个独占锁,就是标明哪个是active的NameNode。通过FailoverController来通信其NameNode状态,通过zookeeper来标识哪个为active的NameNode,从而实现故障的替换实现真正的高可用。
3,Zookeeper的功能原理
ZooKeeper集群主要负责Hadoop集群的一些数据管理问题,命名服务,配置管理,状态同步,集群管理,队列管理,分布式锁等。
ZooKeeper=文件系统+监测通知
ZooKeeper集群由俩个角色组成,Leader和Follower组成,多个Follower和一个Leader
Leader主要功能就是恢复数据,维持通信
Follower主要功能就是向Leader发送请求,接收Leader的消息并处理,接收Client的请求,进行Leader的投票,结果返回Client
ZooKeeper选举机制,ZooKeeper集群会通过Paxos算法选举出Leader角色是哪个节点,Paxos算法简单来说就是过半选举,比如三台节点,一次启动ZooKeeper,那么第二台节点的ZooKeeper状态就是Leader。
4,JournalNode服务原理
前边说了,为了实现两个NameNode的数据同步,引入了一组名为JournalNode的独立进程进行通信,当active状态的NameNode发生改变时会写入JournalNode中,而standby状态的NameNode会读取JournalNode的变更信息还有日志的变化,这就可以保证在集群出错时NameNode可以完全同步并实现从standby到active状态的切换,从而保持集群的正常运行。