Hadoop简介

Hadoop包含四个主要模块
    Hadoop Common:Hadoop提供了常见的实用程序库,用于支持其他Hadoop模块。
    Hadoop Distributed File System,即HDFS:Hadoop的分布式文件系统,它提供了高吞吐量访问应用程序使用的数据。
    Hadoop MapReduce:Hadoop2.x版本中提供的基于YARN框架并行处理大型数据集的计算模型;Hadoop0.x和Hadoop1.x中则非基于YARN框架的并行处理大型数据集的计算模型
    Hadoop YARN:Hadoop2.x版本中提供的集群作业调度和资源管理的框架
详细介绍
    海量数据存储HDFS
        高可靠:
            副本机制,默认有3个副本,存储策略为第一个block块在本地节点的HDFS中存储;第二个block块在不同rack(即机架)的某个节点中存储;第三个block块在本地节点的同一个rack(即机架)的某台节点上存储。
        可扩展:
            当集群的硬盘存储容量即将到达临界点时(例如集群硬盘容量为100TB,使用到80TB的时候),通常会新增DataNode节点来为集群扩容。
            
    海量数据计算MapReduce
        并行计算:
            在多台物理机器上运行统一的逻辑处理,即MapReduce计算模型。MapReduce计算模型通过在多台物理节点上运行Mapper或Reducer任务进程来完成数据计算(多进程执行)
        高可靠:
            MapReduce计算模型通过推测执行等来保障Job可靠的执行。
        可扩展:
            当集群上的数据越来越大,处理时需要更多的内存、磁盘、CPU核来完成时,通常会新增内存、磁盘、CPU来提高集群的运算能力。
            
    集群资源管理框架YARN
        支持多种数据处理框架:
            MapReduce、Spark、Storm、S4等。
        集群资源管理:
            通过配置YARN的调度器中每个队列的资源容量、每个用户的资源容量等实现资源管理。通过配置应用程序例如MapReduce使用的CPU核数、硬盘空间、内存空间等。
        集群资源调度:
            YARN的调度器按照配置中的每个队列和每个用户使用的资源容量为约束对各个数据处理框架MapReduce、Spark、Storm、S4等应用程序进行调度。


其他Hadoop相关的Apache项目包括:
    Ambari:一个基于Web方式的Hadoop管理工具,可以快捷的监控、部署、管理集群。
    Avro:一个数据序列化系统。
    Cassandra:一个没有单点故障且可伸缩的多主机数据库。
    Chunkwa:管理大型分布式系统的数据采集系统。
    HBase:一个可伸缩的分布式数据库,支持大型表的结构化数据存储。
    Hive:数据仓库基础设施提供数据汇总和ad-hoc(即点对点)查询。
    Mahout:一个可扩展的机器学习和数据挖掘库。
    Pig:更上层抽象的高级数据流语言和并行计算的执行框架。
    Spark:支持在Hadoop上进行快速和常规计算的实时计算(即流式计算和批处理)引擎,Spark提供了一个简单的、富有表现力的和支持广泛的应用程序编程模型,包括ETL、机器学习、流处理和图形计算。
    Tez:一个建立在Hadoop YARN上的通用数据流处理编程框架,它提供了一个功能强大且灵活的引擎来执行一个任意的DAG(即有向无环图)任务来处理数据的批处理和交互用例。
    ZooKeeper:一个高性能的分布式应用程序的协调服务。
    另外还有Sqoop、Flume、Impala等。

 

posted @ 2013-02-01 11:51  孟尧  阅读(264)  评论(0编辑  收藏  举报