HDFS集群中NameNode 存在单点故障问题,对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用,直到NameNode 重新启动。
影响HDFS集群不可用主要包括以下两种情况:
NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用。
计划需要对NameNode节点软件或硬件升级,导致集群在短时间内不可用。
为了解决上述问题,Hadoop给出了HDFS的 高可用 HA方案:HDFS的HA通常由两个NameNode组成,一个处于 active 状态,另一个处于 standby 状态。Active NameNode对外提供服务,比如处理来自客户端的RPC请求,而Standby NameNode则不对外提供服务,仅同步Active NameNode的状态,以便能够在它失败时快速进行切换。而这里的快速切换是如何实现的呢?是通过zookeeper的 动态上线感知 来实现的。
简单介绍下zookeeper是什么?
ZooKeeper 顾名思义 动物园管理员 ,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei 等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper是以Fast Paxos算法为基础,实现同步服务,配置维护和命名服务等分布式应用。这是zookeeper的官方介绍,对于程序原来说zookeeper在hadoop中的应用可以理解为是hadoop的整体监控系统,如果namenode宕机后,这时候Zookeeper 的重新选出leader。这是它最大的作用所在。
接下来看看zookeeper的 动态上线感知 图:
1、首先在hadoop中配置自动故障转移机制。
2、在配置HA的时候首先配置zookeeper集群,然后启动zookeeper集群。
3、在第一次启动hadoop的HA之前先初始化HA在zookeeper中的状态然后启动HA,在启动过程中会在各个NameNode节点上启动DFSZK Failover Controller,作用就是向zookeeper中注册服务器的信息,然后hadoop通过进程监控在zookeeper中的节点状态。
4、在zookeeper中注册的节点是临时节点,当服务器宕机下线的时候,zookeeper会把这个节点删除掉,这样才会产生事件,客户端(hadoop)才能监听到,然后hadoop将Standby NameNode转换为Active NameNode。抖音是CDN大户,可能是当今最大的CDN租户之一也不为过。
抖音基本使用了国内所有头部CDN服务商的服务,不限于阿里云,网宿等。他们内部有灵活的流量管控来分流和灾备。
要说有多大,我猜测电信运营商带宽至少20%以上流量是抖音占了。
采用的是分布式储存,不是一台服务器能完成的,而是区域性的群组分布式储存解决的!
抖音,淘宝,微信等打平台都是采取分布式服务器架构运行了。
什么是分布式服务器架构呢?打个比方:
我们北京的网友,上网肯定从北京电信运营商服务器节点开始访问,广州的网友就从广州电信运营商服务器节点开始访问,而平台在北京和广州的服务器上也有同样的程序和数据库,这样大家感觉网速就很快了。当地的平台服务器在给用户提供数据下行访问的时候,也会同步上传数据到主服务器。
再打个贴切点的比方:
我们每个人都能在全国线下各地超市买到我们平时用的产品,那是因为厂家每天都把货物运输到全国各地经销商代理商及门店里或者在各地建设仓储物流。
这是物流分布式节点。跟服务器部署类似一样。根据实际需要后台能最大化优化资源配置。
顺便普及一下为何运营商搞什么定向套餐(抖音流量包之类的),就是因为人家抖音本来服务器就在他们家服务器里面啊,相当于家里无线网络局域网一样。怎么用流量也就那么回事。
京东需要多大的仓库啊,才能供全国快速发货,及时发货?道理一样,因为就在家门口。
就像你去坐大巴车,同一时间点有多辆车,目的地一样。抖音服务器集群就是这个道理
上亿人是不可能的。一个人给你01G,上亿人也要1000万GB带宽,国内主骨干网也顶不住这个流量啊。服务器集群:
服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
服务器负载均衡:
负载均衡
(Load
Balancing)
建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
分布式服务器:
所谓分布式资源共享服务器就是指数据和程序可以不位于一个服务器上,而是分散到多个服务器,以网络上分散分布的地理信息数据及受其影响的数据库 *** 作为研究对象的一种理论计算模型服务器形式。分布式有利于任务在整个计算机系统上进行分配与优化,克服了传统集中式系统会导致中心主机资源紧张与响应瓶颈的缺陷,解决了网络GIS
中存在的数据异构、数据共享、运算复杂等问题,是地理信息系统技术的一大进步。
这个三种架构都是常见的服务器架构,集群的主要是IT公司在做,可以保障重要数据安全;负载均衡主要是为了分担访问量,避免临时的网络堵塞,主要用于电子商务类型的网站;分布式服务器主要是解决跨区域,多个单个节点达到高速访问的目前,一般是类似CDN的用途的话,会采用分布式服务器。
纯手工打字,希望可以帮的到你!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)