系统架构师成长之路(四)

来源:互联网 发布:域名论坛网站 编辑:程序博客网 时间:2024/06/05 09:07

 大数据应用现状

     随着企业的数据量的迅速增长,存储和处理大规模数据已成为企业的迫切需求。Hadoop作为开源的云计算平台,已引起了学术界和企业的普遍兴趣。 

     在学术方面,Hadoop得到了各科研院所的广泛关注,多所著名大学加入到Hadoop集群的研究中来,其中包括石坦福大学、加州大学伯克利分校、康奈尔大学、卡耐基·梅隆大学、普渡大学等。一些国内高校和科研院所如中科院计算所、清华大学、中国人民大学等也开始对Hadoop展开相关研究,研究内容涉及Hadoop的数据存储、资源管理、作业调度、性能优化、系统可用性和安全性等多个方面。

    在商业方面,Hadoop技术已经在互联网领域得到了广泛的应用。互联网公司往往需要存储海量的数据并对其进行处理,而这正是Hadoop的强项。如Facebook使用hadoop存储内部的日志拷贝,以及数据挖掘和日志统计;Yahoo!利用Hadoop支持广告系统并处理网页搜索;Twitter则使用Hadoop存储微博数据、日志文件和其它中间数据等。在国内,Hadoop同样也得到了许多公司的青睐,如百度主要将Hadoop应用于日志分析和网页数据库的数据挖掘;阿里巴巴则将Hadoop用于商业数据的排序和搜索引擎的优化等;另外,像电力能源、运营商、医疗卫生、智能交通、金融证券、邮政快递及政府机构等等都将大数据运用到了实际场景。

   Hadoop生态圈

  

    ZooKeeper概述

     Zookeeper事一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置服务、域名服务、分布式同步、组服务等。开发者意欲将Zookeeper设计成一个易于编程的环境,所以它的文件系统使用了我们所熟悉的目录树结构。zookeeper是使用Java编写的,但是它支持Java和C两种编程语言。

     Zookeeper的目标就是封装好复杂易错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

     Zookeeper是以Fast Paxos算法为基础的,Paxos算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader,只有leader才能提交proposer。具体算法可见Fast Paxos。

      Zookeeper角色描述

      领导者(Leader):负责进行投票的发起和决议,更新系统状态

      学习者(leaner):其中跟随者(Follower)接受客户端请求并返回结果,在选举过程中参与竞选和投票;观察者(Observer)接受客户端连接,返回读操作结果,转发写请求给leader。竞选过程中不参与投票,只同步leader状态,它的存在是为了扩展系统并提高读取速度。

     Zookeeper部署

     一般情况下,运行一个zookeeper也是可以的,但是在生产环境中,最好是部署3,5,7个节点。部署的越多,可靠性就越高,当然最好是部署奇数个,偶数个也不是不可以,只是zookeeper集群是以宕机个数过半才会让整个集群宕机,因此奇数个集群更佳。每个Zookeeper需要1G左右的内存,独立磁盘可以确保zookeeper是高性能的,如果可能的话,最好有独立的磁盘。如果集群的负载很重,不要把Zookeeper和RegionServer运行在同一台机器上面。

      Zookeeper的应用

       Zookeeper成功地应用于大量的工业程序中。它在Yahoo!被用于雅虎消息代理(Yahoo! Message Broker)的协调和故障恢复服务。雅虎消息代理是一个高度可扩展的发布-订阅系统,它管理着上千的总联机程序和消息控制系统,另外它还用于为Yahoo!crawler获取服务并恢复错误故障。除此之外,一些Yahoo!广告系统也同样适用Zookeeper来实现可靠的服务。

     未完待续……

 


1 0
原创粉丝点击