大数据软件框架之
Hadoop框架:
Hadoop框架是由Java语言编写的,它的核心是HDFS(Hadoop分布式文件系统)和MapReduse,对于大数据而言,Hadoop就是用大量的廉价机器组成的集群去执行大规模运算,这包括大规模的计算和大规模的存储。HDFS为大数据提供了存储,MapReduse为大数据提供了计算。
HDFS是一个可运行在廉价机器上的可容错分布式文件系统,它把一个文件分割成一个或者多个数据块(默认大小是64MB),发布到集群的节点上,从而实现了高吞吐量的数据访问,这个集群拥有数百个节点,并支持千万级别的文件。因此,HDFS非常适合大规模数据集上的应用。
MapReduse(分布式计算框架)是一种编程模型,用以大数据量地批处理计算,MapReduse的思想是将批处理的任务主要分成两个阶段(Map和Reduse阶段),所谓的Map阶段就是把数据生成“键-值”对,按键排序。中间的一个步骤叫shuffle,把同样的key运输到同一个reduser上面去,在reducer上,因为都是同一个key,就直接可以做聚合(算出总和),最后把结果输出到HDFS。它还支持C/C++、Java、Ruby、perl和Python编程语言。
Yarn(集群资源管理器):
从Hadoop2.0开始,MapReduse就被一个改进的版本代替,这就是YARN。它是一种新的Hadoop资源管理器,修复了MapReduce的不足,并对可伸缩性(支持一万个节点和二十万个内核的集群)、可靠性和集群利用率进行了提升。减少了资源消耗,并且让检测每一个job子任务状态的程序分布式了。总之,YARN从某种意义上来说应该算是一个云操作系统,它负责集群的资源管理。
Zookeeper(分布式协作服务):
Zookeeper是一个集中式服务,主要负责分布式任务调度,它用来完成配置管理、名字服务、提供分布式锁以及集群管理等功能工作。我感觉这个就是一个把配置文件,名字服务放在一起的一个接口,供其他服务访问,同时它也提供了一个分布式锁,只让一个服务去干活,它还可以感知各种故障,总之,Zookeeper就是用来统一分布式系统的状态。