Hadoop主要解决海量数据存储与计算的问题,是大数据技术中的基石。Hadoop具体是做:1、海量数据存储;2、资源管理,调度和分配;3、并行数据处理。Hadoop以一种可靠、高效、可伸缩的方式进行数据处理。
1、海量数据存储
HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(High throughput)来访问数据,适合那些有着超大数据集(large data set)的应用程序,它由n台运行着DataNode的机器组成和1台(另外一个standby)运行NameNode进程一起构成。每个DataNode 管理一部分数据,然后NameNode负责管理整个HDFS 集群的信息(存储元数据)。
2、资源管理,调度和分配
Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统 一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
3、并行数据处理
MapReduce算法要求你可以并行化你的数据处理。MapReduce在变量逐个处理的情况下工作得很好(例如,计数或聚合);但是,当您需要共同处理变量(例如,变量之间有许多相关性)时,此模型不起作用。
任何基于图形的数据处理(意味着依赖于其他数据的复杂数据网络)都不适合Hadoop的标准方法。话虽如此,相关的Apache Tez框架确实允许使用基于图形的方法来处理数据,而不是更线性的MapReduce工作流程。
hadoop的优势
1)高可用性:绿色点表示相同的数据,在3台服务器集群上同时存储着,其中一个硬盘(蓝色点)的损坏,不影响整个集群。。
2)高扩展性:可动态扩展,即可以动态增加/删除服务器,如双11和618可以动态增加服务器(绿色框),不需要停止原有集群(黄色框)。
3)高效性:并行计算。
4)高容错性:若其中一台执行失败,Hadoop会自动将该任务迁移到某一个服务器上,不影响最终任务计算的结果。