精华内容
下载资源
问答
  • Hadoop生态圈的基石有两个,一个是HDFS文件系统,一个是MR编程框架。第一弹中提到应用MR编程框架实现大规模多机联合负载压测场景的方案,则突出了MR的能力,实际上HDFS作为这一切的  引言  Hadoop生态圈的基石有两...
  • Hadoop生态圈总体介绍

    2018-04-13 17:17:59
    Hadoop生态圈总体介绍 Hadoop生态圈总体介绍 Hadoop生态圈总体介绍
  • spark,hadoop生态圈总结

    2018-06-04 23:38:43
    详细描述了spark,hadoop生态圈的各个组建,能充分了解各个组建的原理以及使用
  • Centos 7安装配置Hadoop生态圈CDH5版本 其中包括hadoop hbase hive spark 等组件安装
  • Hadoop生态圈

    2015-05-26 16:11:43
    大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅...
  • HADOOP生态圈简介

    2020-04-18 19:32:59
    1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况...下图是hadoop生态系统,集成spark生态圈。在未来一段时间内,hadoop将于spark共存,hadoop与s...

    1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。

    下图是hadoop生态系统,集成spark生态圈。
    在这里插入图片描述

    
    	Hadoop的核心是YARN,HDFS和Mapreduce
    		
    	在未来一段时间内,hadoop将于spark共存,hadoop与spark
    	都能部署在yarn、mesos的资源管理系统之上	
    	下面将分别对以上各组件进行简要介绍,具体介绍参见后续系列博文。
    
    2、HDFS(Hadoop分布式文件系统)
    	源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。
    	HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。
    	HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
    	它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群不同物理机器上。
    
    3、Mapreduce(分布式计算框架)
    	源自于google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。
    	MapReduce是一种分布式计算模型,用以进行大数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,
    	其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。
    	MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。
    	
    4. HBASE(分布式列存数据库)
    	源自Google的Bigtable论文,发表于2006年11月,HBase是Google Bigtable克隆版
    	HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。
    	HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。
    	HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
    	
    5. Zookeeper(分布式协作服务)
    	源自Google的Chubby论文,发表于2006年11月,Zookeeper是Chubby克隆版
    	解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。
    	Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。
    	
    6. HIVE(数据仓库)
    	由facebook开源,最初用于解决海量结构化的日志数据统计问题。
    	Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。
    	HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。
    
    7.Pig(ad-hoc脚本)
    	由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc(计算在query时发生)数据分析工具
    	Pig定义了一种数据流语言—Pig Latin,它是MapReduce编程的复杂性的抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。
    	其编译器将Pig Latin翻译成MapReduce程序序列将脚本转换为MapReduce任务在Hadoop上执行。通常用于进行离线分析。
    	
    8.Sqoop(数据ETL/同步工具)
    	Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。
    	Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。
    
    9.Flume(日志收集工具)
    	Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。
    	它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。
    	同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。
    	总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。当然也可以用于收集其他类型数据
    
    10.Mahout(数据挖掘算法库)
    	Mahout起源于2008年,最初是Apache Lucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。
    	Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。
    	Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。
    	除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。
    
    11. Oozie(工作流调度器)
    	Oozie是一个可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的出现。
    	Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。
    	Oozie使用hPDL(一种XML流程定义语言)来描述这个图。
    
    12. Yarn(分布式资源管理器)
    	YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。
    	Yarn是下一代 Hadoop 计算平台,yarn是一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。
    	用于自己编写的框架作为客户端的一个lib,在运用提交作业时打包即可。该框架为提供了以下几个组件:
      - 资源管理:包括应用程序管理和机器资源管理
    
      - 资源双层调度
    
      - 容错性:各个组件均有考虑容错性
    
      - 扩展性:可扩展到上万个节点
    
    13. Mesos(分布式资源管理器)
      	Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache项目,当前有一些公司使用Mesos管理集群资源,比如Twitter。
      与yarn类似,Mesos是一个资源统一管理和调度的平台,同样支持比如MR、steaming等多种运算框架。
    
    14. Tachyon(分布式内存文件系统)
    	Tachyon(/'tæki:ˌɒn/ 意为超光速粒子)是以内存为中心的分布式文件系统,拥有高性能和容错能力,能够为集群框架(如Spark、MapReduce)提供可靠的内存级速度的文件共享服务。
    	Tachyon诞生于UC Berkeley的AMPLab。
    
    15. Tez(DAG计算模型)
    	Tez是Apache最新开源的支持DAG作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,
    	即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,这样,这些分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业。
    	目前hive支持mr、tez计算模型,tez能完美二进制mr程序,提升运算性能。
    
    16. Spark(内存DAG计算模型)
    	Spark是一个Apache项目,它被标榜为“快如闪电的集群计算”。它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。
    	最早Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架。
    	Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍
    
    17. Giraph(图计算模型)
    	Apache Giraph是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
    	最早出自雅虎。雅虎在开发Giraph时采用了Google工程师2010年发表的论文《Pregel:大规模图表处理系统》中的原理。后来,雅虎将Giraph捐赠给Apache软件基金会。
    	目前所有人都可以下载Giraph,它已经成为Apache软件基金会的开源项目,并得到Facebook的支持,获得多方面的改进。
    
    18. GraphX(图计算模型)
    	Spark GraphX最先是伯克利AMPLAB的一个分布式图计算框架项目,目前整合在spark运行框架中,为其提供BSP大规模并行图计算能力。
    
    19. MLib(机器学习库)
    	Spark MLlib是一个机器学习库,它提供了各种各样的算法,这些算法用来在集群上针对分类、回归、聚类、协同过滤等。
    
    20. Streaming(流计算模型)
    	Spark Streaming支持对流数据的实时处理,以微批的方式对实时数据进行计算
    
    21. Kafka(分布式消息队列)
    	Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据。
    	活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv、用户访问了什么内容,搜索了什么内容等。
    	这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。
    
    22. Phoenix(hbase sql接口)
    	Apache Phoenix 是HBase的SQL驱动,Phoenix 使得Hbase 支持通过JDBC的方式进行访问,并将你的SQL查询转换成Hbase的扫描和相应的动作。
    
    23. ranger(安全管理工具)
    	Apache ranger是一个hadoop集群权限框架,提供操作、监控、管理复杂的数据权限,它提供一个集中的管理机制,管理基于yarn的hadoop生态圈的所有数据权限。
    
    24. knox(hadoop安全网关)
    	Apache knox是一个访问hadoop集群的restapi网关,它为所有rest访问提供了一个简单的访问接口点,能完成3A认证(Authentication,Authorization,Auditing)和SSO(单点登录)等
    
    25. falcon(数据生命周期管理工具)
    	Apache Falcon 是一个面向Hadoop的、新的数据处理和管理平台,设计用于数据移动、数据管道协调、生命周期管理和数据发现。它使终端用户可以快速地将他们的数据及其相关的处理和管理任务“上载(onboard)”到Hadoop集群。
    
    26.Ambari(安装部署配置管理工具)
    	Apache Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,是为了让 Hadoop 以及相关的大数据软件更容易使用的一个web工具。
    
    
    参考文献:
    
    Hadoop生态系统介绍  
    http://blog.csdn.net/qa962839575/article/details/44256769?ref=myread
    大数据和Hadoop生态圈,Hadoop发行版和基于Hadoop的企业级应用 
    http://www.36dsj.com/archives/26942
    Oozie介绍 http://blog.csdn.net/wf1982/article/details/7200663
    统一资源管理与调度平台(系统)介绍
    http://blog.csdn.net/meeasyhappy/article/details/8669688
    Tachyon简介
    http://blog.csdn.net/u014252240/article/details/41810849
    Apache Tez:一个运行在YARN之上支持DAG作业的计算框架
    http://segmentfault.com/a/1190000000458726
    Giraph:基于Hadoop的开源图形处理平台
    http://tech.it168.com/a2013/0821/1523/000001523700.shtml
    Hadoop家族学习路线图 
    http://blog.fens.me/hadoop-family-roadmap/
    基于Spark的图计算框架 GraphX 入门介绍  
    http://www.open-open.com/lib/view/open1420689305781.html
    Apache Spark 入门简介 
    http://blog.jobbole.com/89446/
    Ambari——大数据平台的搭建利器 
    http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html
    消息系统Kafka介绍 
    http://dongxicheng.org/search-engine/kafka/
    使用Apache Phoenix 实现 SQL 操作HBase 
    http://www.tuicool.com/articles/vu6jae
    面向Hadoop的、新的数据处理和管理平台:
    Apache Falcon 
    http://www.open-open.com/lib/view/open1422533435767.html.
    
    展开全文
  • hadoop生态圈的理解

    千次阅读 2019-02-20 09:25:57
    hadoop部分:hadoop生态圈的理解(HDFS,MapReduce,HBASE,zookeeper,hive,sqoop,flume,kafka,yarn,spark) 一、简介     &...

    hadoop部分:hadoop生态圈的理解(HDFS,MapReduce,HBASE,zookeeper,hive,sqoop,flume,kafka,yarn,spark)

    一、简介
            Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。




    二、核心
            Hadoop对应于Google三驾马车:HDFS对应于GFS,即分布式文件系统,MapReduce即并行计算框架,HBase对应于BigTable,即分布式NoSQL列数据库,外加Zookeeper对应于Chubby,即分布式锁设施。


                                          Hadoop核心系统

           

    Hadoop大数据应用生态中最主要的组件及其关系

    Hadoop Common

    Hadoop Common是在Hadoop0.2版本之后分离出来的HDFS和MapReduce独立子项目的内容,是Hadoop的核心部分,能为其他模块提供一些常用工具集,如序列化机制、Hadoop抽象文件系统FileSystem、系统配置工具Configuration,并且在为其平台上的软件开发提供KPI等。其他Hadoop子项目都是以此为基础而建立来的。

    HDFS

    HDFS(Hadoop分布式文件系统)源自于Google的GFS论文,发表于2003年10月,HDFS是GFS的实现版。HDFS是Hadoop体系中数据存储管理的基础,它是一个高度容错的系统,能检测和应对硬件故障,在低成本的通用硬件上运行。HDFS简化了文件的一次性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适用带有数据集的应用程序。HDFS提供一次写入多次读取的机制,数据以块的形式,同时分布存储在不同的物理机器上。 
    HDFS默认的最基本的存储单位是64MB的数据块,和普通文件系统一样,HDFS中的文件被分成64MB一块的数据块存储。它的开发是基于流数据模式访问和处理超大文件的需求。

    超大文件

    超大文件:是指进行存储的文件达到MB、GB、TB级的大文件。

    流式数据访问

    流式数据访问:一次写入、多次读取的访问模式。

    商用硬件

    在节点出现故障时,HDFS会继续运行,用户不会察觉到明显的中断情况。这是由于HDFS的高可用性和容错性是通过软件来实现的,也由此使得它不需要价格高的设备来保障,大街小巷能买到的普通硬件就能用作搭建HDFS。 
    HDFS并不是所有场景都适用。 
    1)由于HDFS的优势是海量数据传输,在低延迟的数据访问中就并不适用,10ms以下的访问可以无视HDFS。HDFS会用延迟来换取数据的高吞吐量。 
    2)存在的小文件较多时,HDFS也不适用。这主要是由于HDFS的整个文件存储在NameNode中,它能对数据库的存储位置进行定位,因此NameNode的内存量是被文件的数量限制的。而大量的小文件会占用很大一部分内存,在进行数据处理时会合并这些小文件。 
    3)在多处写和随机修改的场景中,由于HDFS的文件不支持多个写入或任意位置的修改,所以HDFS也不适用。

    MapReduce

    Mapduce(分布式计算框架)源自于Google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是Google Reduce 克隆版。MapReduce是一种分布式计算模型,用以进行海量数据的计算。它屏蔽了分布式计算框架细节,将计算抽象成Map 和Reduce两部分,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。

    HBase

    Hbase(分布式列存数据库)源自Google的BigTable论文,发表于2006年11月,HBase是Google Table的实现。HBase是一个建立在HDFS之上,面向结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。HBase采用了BigTable的数据模型,即增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

    Zookeeper

    Zookeeper(分布式协作服务)源自Google的Ghubby论文,发表于2006年11月,Zookeeper是CHubby实现版。Zookeeper的主要目标是解决分布式环境下的数据管理问题,如统一命名、状态同步、集群管理、配置同步等。Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于Hadoop管理操作。

    Hive

    Hive(数据仓库)由Facebook开源,最初用于解决海量结构化的日志数据统计问题。Hive定义了一种类似SQL的查询语言(HQL),将HQL转化为MapReduce任务在Hadoop上执行,通常用于离线分析HQL用于运行存储在Hadoop上的查询语句,Hive使不熟悉MapReduce开发人员也能编写数据查询语句,然后这些数据被翻译成Hadoop上面的MapReduce任务。

    Pig

    Pig(ad-hoc脚本)由yahoo开源,其设计动机是提供一种基于MapReduce的ad-hoc(计算query时发生)数据分析工具。Pig定义了一种数据流语言——Pig Latin,它是MapReduce编程的复杂性抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Lain)。其编译器将Pig Lain翻译成MapReduce程序序列,将脚本转换为MapReduce任务在Hadoop任务在Hadoop上执行,通常用于进行离线分析

    Sqoop

    Sqoop(数据ETL/同步工具)是SQL-to-Hadoop的缩写,主要用于传统数据和Hadoop之前传输数据。数据的导入和导出本质上是MapReduce程序,充分利用了MR的并行化和容错性,Sqoop利用数据库技术描述数据架构,用于关系数据库、数据仓库和Hadoop之间转移数据

    Flume

    Flume(日志收集工具)是Cloudera开源的日志系统收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统,当然也可以用于收集其他类型数据

    Mahout

    Mahout(数据挖掘算法库)起源于2008年,最初是Apache Lucent的子项目,它在极端的时间内取得了长足的发展,现在是Apache的顶级项目。Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便、快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广大使用的数据挖掘算法。除了算法,Mahout还包含数据的输入/输出工具与其他存储系统(如数据库、MangoDB或Cassadra)集成的数据挖掘支持架构

    YARN

    YARN(分布式资源管理器)是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性差,不支持多计算框架而提出的。YARN是下一代Hadoop计算平台,是一个通用的运行时框架,用户可以编写自己的极端框架,在该运行环境中运行。

    Mesos

    Mesos(分布式资源管理器)是一个诞生于UC Berkeley的研究项目,现已成为Apache项目,当前有一些公司使用Masos管理集群资源,如Twitter。与YARN类似,Mesos是一个资源统一管理和调度平台重点内容,同样支持诸如MR、steaming等多种运算框架。

    Tachyon

    Tachyon(意为超光速粒子)是以内存为中心的分布式文件系统,拥有高性能和容错能力,能够为集群框架(如Spark、Mapre)提供可靠的内存级速度的文件共享服务。Tachyon诞生于UC Berkeley的AMPLab。

    Spark

    Spark(内存DAG计算模型)是一个Apche项目,被标榜为“快如闪电的集群计算”,它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。最早Spark是UC Berkeley AMP Lab所开源的类Hadoop MapReduce的通用计算框架,Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark平台可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。

    Spark GraphX

    Spark GraphX最先是伯克利AMP Lab的一个分布式图计算框架项目,目前整合在Spark运行框架中,为其提供BSP大规模并行图计算能力

    Spark MLlib

    Spark MLlib是一个机器学习库,它提供了各种各样的算法,这些算法用来在集群上针对分类、回归、聚类、协同过滤等。

    Kafka

    Kafka是Linkedin于2010年12月开源的消息系统,主要用于处理活跃的流式数据。活跃的流失数据在Web网站应用中非常常见,这些数据包括网站的PV(Page View),用户访问了什么内容,搜索了什么内容等,这些数据通常以日志的形式保存下来,然后每隔一段时间进行一次统计处理。

    Apache Pheonix

    Apache Pheonix是HBase的SQL驱动(HBase SQL接口),Pheonix使得HBase支持通过JDBC的方式进行访问,并将你的SQL查询换成HBase的扫描和相应的动作

    简而言之,Hadoop提供了一个可靠的共享存储和分析系统。HDFS实现存储,而MapReduce实现分析处理。纵然Hadoop还有其它功能,但这两部分是它的核心。

    产品描述
    HDFS分布式计算框架,提供存储与传输,海量数据,优点是可以在任何机器上运行,廉价,缺点是不适合太多的磁盘小文件
    MapReduce用于对海量数据的计算和分析,由map端和reduce端组成,键值对的形式
    HBase面向列的分布式数据库,可伸缩,高可靠,采用key和value的形式,key由行关键字、列关键字、时间戳组成,提供了随机实时读写
    ZooKeeper分布式协作服务,解决分布式环境下集群的管理
    Hive适用于ETL,数据仓库,分为内表和外表,通常用于分布式离线分析和分布的统计
    Sqoop关系数据ETL工具,传统数据库到hadoop之间的传输,数据的导入导出本身是MapReduce的程序,用于数据库和hadoop之间的转移
    Avro用于支持大批量数据交换的应用,数据序列化系统
    Pig数据处理工具,在MapReduce上构建的查询语言(SQL-LIKE),适用于大量并行计算
    Flume日志收集工具,在收集的过程中会执行简单的处理,过滤和格式的转换
    Ambari集群监控与管理
    Mathout一个机器学习和数据挖掘的库
    Oozie工作流引擎
    HueHadoop图形化界面
    Chukwa基于Hadoop集群中监控系统,WatchDog
    ambari就是创建、管理、监视 Hadoop 的集群( Hive,Hbase,Sqoop,Zookeeper等)

    转自:https://blog.csdn.net/wyqwilliam/article/details/81913740

    展开全文
  • Hadoop生态圈(三驾马车+ZK+Hive+Sqoop+Flume)复习脑图 version-1.0-附件资源
  • hadoop 生态圈集群搭建

    2018-01-22 14:20:59
    hadoop 2.7.5 集群搭建 spark 2.2.1 集群搭建,配置scala编译环境 hive on spark 安装 hbase 搭建
  • 大数据Hadoop生态圈介绍

    万次阅读 多人点赞 2019-07-12 14:22:47
    大数据Hadoop生态圈-组件介绍 Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。 Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈...

    大数据Hadoop生态圈-组件介绍

        Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。

        Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示:

       根据服务对象和层次分为:数据来源层、数据传输层、数据存储层、资源管理层、数据计算层、任务调度层、业务模型层。接下来对Hadoop生态圈中出现的相关组件做一个简要介绍。

        1、HDFS(分布式文件系统)

    HDFS是整个hadoop体系的基础,负责数据的存储与管理。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

    client:切分文件,访问HDFS时,首先与NameNode交互,获取目标文件的位置信息,然后与DataNode交互,读写数据

    NameNode:master节点,每个HDFS集群只有一个,管理HDFS的名称空间和数据块映射信息,配置相关副本信息,处理客户端请求。

    DataNode:slave节点,存储实际数据,并汇报状态信息给NameNode,默认一个文件会备份3份在不同的DataNode中,实现高可靠性和容错性。

    Secondary NameNode:辅助NameNode,实现高可靠性,定期合并fsimage和fsedits,推送给NameNode;紧急情况下辅助和恢复NameNode,但其并非NameNode的热备份。

    Hadoop 2为HDFS引入了两个重要的新功能 ——Federation和高可用(HA):

    • Federation允许集群中出现多个NameNode,之间相互独立且不需要互相协调,各自分工,管理自己的区域。 DataNode 被用作通用的数据块存储设备。每个 DataNode 要向集群中所有NameNode 注册,并发送心跳报告,执行所有 namenode的命令。

    • HDFS中的高可用性消除了Hadoop 1中存在的单点故障,其中,NameNode故障将导致集群中断。HDFS的高可用性提供故障转移功能(备用节点从失败的主NameNode接管工作的过程)以实现自动化。

        2、MapReduce(分布式计算框架)

    MapReduce是一种基于磁盘的分布式并行批处理计算模型,用于处理大数据量的计算。其中Map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,Reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。

    Jobtracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给Tasktracker。

    Tacktracker:slave节点,运行 Map task和Reduce task;并与Jobtracker交互,汇报任务状态。

    Map task:解析每条数据记录,传递给用户编写的map()函数并执行,将输出结果写入到本地磁盘(如果为map—only作业,则直接写入HDFS)。

    Reduce task:从Map 它深刻地执行结果中,远程读取输入数据,对数据进行排序,将数据分组传递给用户编写的Reduce()函数执行。

        3、Spark(分布式计算框架)

    Spark是一种基于内存的分布式并行计算框架,不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

    Cluster Manager:在standalone模式中即为Master主节点,控制整个集群,监控worker。在YARN模式中为资源管理器

    Worker节点:从节点,负责控制计算节点,启动Executor或者Driver。

    Driver: 运行Application 的main()函数

    Executor:执行器,是为某个Application运行在worker node上的一个进程

    Spark将数据抽象为RDD(弹性分布式数据集),内部提供了大量的库,包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。 开发者可以在同一个应用程序中无缝组合使用这些库。

    Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的

    Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。

    Spark Streaming:对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据,通过短时批处理实现的伪流处理。

    MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。

    GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作

        4、Flink(分布式计算框架)

    Flink是一个基于内存的分布式并行处理框架,类似于Spark,但在部分设计思想有较大出入。对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。

    Flink VS Spark

    Spark中,RDD在运行时是表现为Java Object,而Flink主要表现为logical plan。所以在Flink中使用的类Dataframe api是被作为第一优先级来优化的。但是相对来说在spark RDD中就没有了这块的优化了。

    Spark中,对于批处理有RDD,对于流式有DStream,不过内部实际还是RDD抽象;在Flink中,对于批处理有DataSet,对于流式我们有DataStreams,但是是同一个公用的引擎之上两个独立的抽象,并且Spark是伪流处理,而Flink是真流处理。

        5、Yarn/Mesos(分布式资源管理器)

    YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。

    Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache项目,当前有一些公司使用Mesos管理集群资源,比如Twitter。与yarn类似,Mesos是一个资源统一管理和调度的平台,同样支持比如MR、steaming等多种运算框架。

        6、Zookeeper(分布式协作服务)

    解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

    Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。

        7、Sqoop(数据同步工具)

    Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。

    Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。

        8、Hive/Impala(基于Hadoop的数据仓库)

    Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。

    HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。

    Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。 它是一个用C ++和Java编写的开源软件。 与Apache Hive不同,Impala不基于MapReduce算法。 它实现了一个基于守护进程的分布式架构,它负责在同一台机器上运行的查询执行的所有方面。因此执行效率高于Apache Hive。

        9、HBase(分布式列存储数据库)

    HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。

    HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。

    HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

       10、Flume(日志收集工具)

    Flume是一个可扩展、适合复杂环境的海量日志收集系统。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。

    同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。

    Flume以Agent为最小的独立运行单位,一个Agent就是一个JVM。单个Agent由Source、Sink和Channel三大组件构成

     Source:从客户端收集数据,并传递给Channel。

    Channel:缓存区,将Source传输的数据暂时存放。

    Sink:从Channel收集数据,并写入到指定地址。

    Event:日志文件、avro对象等源文件。

     11、Kafka(分布式消息队列)

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。实现了主题、分区及其队列模式以及生产者、消费者架构模式。

    生产者组件和消费者组件均可以连接到KafKa集群,而KafKa被认为是组件通信之间所使用的一种消息中间件。KafKa内部氛围很多Topic(一种高度抽象的数据结构),每个Topic又被分为很多分区(partition),每个分区中的数据按队列模式进行编号存储。被编号的日志数据称为此日志数据块在队列中的偏移量(offest),偏移量越大的数据块越新,即越靠近当前时间。生产环境中的最佳实践架构是Flume+KafKa+Spark Streaming。

       12、Oozie(工作流调度器)

    Oozie是一个可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的出现。

    Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。

    Oozie使用hPDL(一种XML流程定义语言)来描述这个图。

    展开全文
  • hadoop生态圈详解

    2020-12-05 17:48:53
    1.hadoop架构及作用 (1)Common hadoop核心组件,基本jar包依赖,公共工具程序 (2)HDFS(Hadoop Distributed File System) 分布式文件系统,解决分布式存储 (3)MapReduce 分布式计算框架 (4)Yarn 分布式资源...

    1.hadoop架构及作用

    (1)Common

    hadoop核心组件,基本jar包依赖,公共工具程序

    (2)HDFS(Hadoop Distributed File System)

    分布式文件系统,解决分布式存储

    (3)MapReduce

    分布式计算框架

    (4)Yarn

    分布式资源管理系统

    2.HDFS架构及功能

    在这里插入图片描述

    (1)client 客户端

    linux window/sheel COMMAND-LINE
    java/scala/python PROJECT
    向namenode发送请求,和datanode发生交互

    (2)NameNode

    元数据节点,储存元数据信息,负责处理客户端的请求
    (文件block的位置信息不保存在namenode上,namenode只提供文件名,文件大小,块名,块数量,读取文件时client先找到最近的一个datanode节点,通过nodemanager访问resourcemanager,获取块存储的位置信息)

    (3)DataNode

    数据节点:保存和block检索
    执行数据读写操作

    (4)Secondary NameNode

    合并edit.log到fsimage中
    赋值NameNode完成内存中元数据存储的持久化

    3.HDFS架构优缺点

    优点:

    (1)高扩展性

    可以根据业务需求增加集群机器的数量,可以是普通机器

    (2)高容错性

    数据层面:hadoop底层维护多个数据副本 yarn->datanode
    管理层面:hadoop框架能自动将失败的任务重新分配
    yarn->appmaster->container
    zookeeper->namenode

    (3)数据量大

    依靠hdfs可以操作PB级的数据

    (4)流式访问

    序列化,流传输,支持任意数据类型

    缺点:

    (1)不适合低延时

    I/O操作频繁

    (2)不可以并发

    没有锁机制,不支持事务

    (3)不使用数据量小的文件

    占空间(1个block块占128M),小文件过多,nn内存有限,寻址慢

    4.HDFS写数据流程

    在这里插入图片描述

    1.client 请求
    	client创建DFS
    	DFS dfs = FileSystem.open()
    	向NN请求 (源文件已存在)
    2.NN 确认
    	目录存在、用户无操作权限 return false
    	否则 return true
    3.client 切分并请求第一个Block DN
    	client将文件切成n个128M的Block
    	client向NN请求第1个Block的存储DN列表
    4.NN 返回DN列表
    	假如返回:dn1 dn2 dn3
    5.client 写入
    	a. FSDOS向dn1请求写入
    	b. dn1请求dn2,dn2请求dn3,分别建立pipeline管道
    	c. dn3响应dn2,dn2响应dn1,dn1响应client
    	d. Block传输
    		d.1: client读取第一个Block并以Packet(64k)为单位传输,dn1每收到一个Packet会建立等待应答队列,并逐级传输给dn2,dn3
    		d.2: dn3,dn2,dn1逐级应答,并将结果反馈给client
    		d.3: 重复d.1~2直至Block传输完成
    	f. 关闭FSDOS
    6.client发送complete给NN
    7.重复3~6直至所有Block传输完成
    

    5.HDFS读数据流程

    在这里插入图片描述

    1.client创建DFS
    		DFS dfs = FileSystem.open()
    	2.DFS向NN请求RPC获取【文件开始部分或全部】Block有序列表
    		列表按距离client的距离升序排序
    		每个Block包含DN地址,如果client就是DN,则本地读取
    	3.DFS向client返回支持文件定位的输入流对象FSDIS
    		【了解】
    		FSDIS中包含一个(DFSIS)DFSInputStream,用来管理DN和NN之间的IO
    			如:
    			DN中数据缺失或者下载一部分之后任务失败,则可以通过DFSInputStream联系NN求助
    			NN借助YARN找到距离最近的另一个备份节点
    			将未完成的下载任务迁移到该节点,并通过【支持文件定位】的输入流对象FSDIS进行【续传】
    	4.client调用FSDIS的read()找到离client最近的DN,并连接DN
    	5.DFSIS依次读取一个批次的Block
    		a. 读取包含文件第一个Block的最近DN地址
    		b. 重复调用read()方法,直至第一个Block读取完成
    		c. 关闭DN连接
    		d. 重复a~c直至第一个批次的Block全部读取完成
    	6.重复2~5,直至所有批次的Block读取完成
    	7.关闭DFSIS,FSDIS,DFS
    

    5.MapReduce过程详解

    在这里插入图片描述

    1.确定MapTask数和设置分区

    TextInputFormat extends FileInputFormat implement InputFormat

    InputFormat
    InputFormat 的主要功能就是确定每一个 map 任务需要读取哪些数据以及如
    何读取数据的问题,每一个 map 读取哪些数据由 InputSplit(数据切片)决定,
    如何读取数据由 RecordReader 来决定。InputFormat 中就有获取 InputSplit 和RecordReader 的方法

    FileInputFormat实现了InputFormat,实现了 getSplit方法,可设置切片大小,通过切片大小可设置MapTask任务个数
    computeSliteSize=Math.max(minSize, Math.min(maxSize, blockSize))
    默认为blockSize大小
    NumMapTask=ceil(FileSize/computeSliteSize)

    TextInputFormat继承了FileInputFormat,重写了getRecordReader方法,设定了读取数据的方式为逐行读取,每条记录是一行输入。键是LongWritable 类型,存储该行在整个文件中的字节偏移量。值是这行的内容,不包括任何行终止符(换行符和回车符)

    2.MapTask过程

    (1)Read阶段:通过TextInputFormat->RecordReader按inputSplit记录的文件位置逐行读取,以行字节偏移量作为k,一行内容为vaue,通过context封装,作为参数传入mapper方法中
    (2)Map阶段:通过mapper方法中设置的逻辑方法对上一步产生的(k,v)做处理,生成新的(k,v)
    (3)Collect阶段:在用户编写 map()函数中,当数据处理完成后,一般会调用 OutputCollector.collect()输出结果。在该函数内部,它会将生成的 key/value分区(调用 Partitioner),并写入一个环形内存缓冲区中。
    4.Spill 阶段:即“溢写”,当环形缓冲区满后,MapReduce 会将数据写到本地磁盘上,生成一个临时文件。需要注意的是,将数据写入本地磁盘之前,先要对数据进行分区,再按键值进行排序。如果设置了combiner,则还需进行合并压缩。溢写会产生多个小文件
    5.Combiner阶段:当所有数据处理完,溢出结束,对所有小文件进行合并。合并以分区为单位,并且保证分区内按key有序。这一步的结果保证了MapTask结束后生成了一个分区有序的大文件

    3.Shuffle阶段

    6.reducetask根据自己的分区号去各个maptask节点上拷贝相同分区的数据到本地磁盘工作目录上,如果不超过阈值,直接放到内存中,再进行合并为大文件,大文件按照key值有序排列

    4.ReduceTask阶段

    7.调用GroupingComparator方法对大文件里的数据进行按key分组,从文件中每次取出一组(k,values),调用自定义reduce方法进行逻辑处理

    8.通过OutputFormat方法将结果数据写入part-r-0000文件中

    5.YARN基本框架及主要功能

    在这里插入图片描述

    (1)ResourceManage

    ResourceManager 是 YARN 中的全局资源管理器,相当于将集群中各个机器可用的资源看做一个整体,然后进行统一管理和分配,它会接收来自各个节点(NodeManager)的资源回报信息,并将这些信息按照一定的策略分配给应用程序。
    ResourceManager 主要作用

    1. 处理客户端请求,Clinet 提交 Job,首先是由ResourceManager 来反馈。
    2. 监控 NodeManager,监控 NodeManager 心跳,发送指令给 NodeManager。
      1. 启动或监控 ApplicationMaster。

    4.资源的分配和调度。
    ResourceManager 核心组成:
    1.Resource Scheduler(资源调度器),主要负责协调集群中各个应用的资源分配,保证整个集群的运行效率。Resouce Scheduler 只是一个纯调度器,只负责给用户提交的应用分配 Container(资源),它不会关注应用程序监控及其运行状态等信息,它不做监控以及应用程序的状态跟踪,并且不负责应用程序的容错,也就是说,当应用程序失败时,它不负责重启应用程序。
    2.ApplicationManager(应用管理器),主要负责接收用户应用的提交请求,为应用程序分配第一Container 来运行ApplicationMaster还有就是负责监控ApplicationMaster,并在遇到失败时重启ApplicationMaster 运行的Container。ApplicationMaster 每一个程序都会有一个,运行在 Container 中,可以看做是每一个应用的管理者。

    (2) NodeManager

    NodeManager 运行在集群的节点上,这一点从前面安装分布式环境中可以看
    出,一般 NodeManager 会与 DataNode 在同一个节点。NodeManager 在集群中会
    有多个,负责管理每个节点上的资源。它主要负责接收来自 ResouceManager 的
    资源分配请求,分配具体的 Container 给具体的任务,同时,它还负责监控并报
    告 Container 使用信息给 ResouceManager。NodeManager 只负责管理自身节点上
    的 Container,并不关心运行在 Container 上的任务的运行信息,任务的运行信息
    由 ApplicationMaster 来管理。
    NodeManager 主要作用:
    ➢ 管理单个节点上的资源
    ➢ 监控 Container 生命周期和使用的资源
    ➢ 处理来自 ResourceManager 的指令
    ➢ 处理来自 ApplicationMaster 的指令
    在 NodeManager 注册到 ResourceManager 之后,它就会不间断的向
    ResourceManager 发送心跳(heartbeat),如果 ResourceManager 有需要它执行
    的指令,就作为响应发送给它。在 NodeManager 加载一个 Container 之前,它需
    要本地化需要的资源,包括数据文件,可执行文件,shell script 等。这些 Resource
    可能有能够在不同用户之间共享的资源,有能够在相同用户不同应用之间共享的
    资源,以及只能够被这一个 Container 使用的资源。NodeManager 也可以在
    ResourceManager 的指示下,杀掉 Container。当处于下面的几种场景中时,
    NodeManager 就可能 Kill 掉一个 Container。 ➢ ResourceManager 告诉它,Application 已经完成了。
    ➢ Scheduler 决定抢占这个 Container,并将它分配给另一个 Application 或者
    用户。
    ➢ NodeManager 检测到,这个 Container 使用的资源已经超过指定的资源限
    制。
    当一个 Container 完成时,NodeManager 会清除它在本地存储的数据。当一
    个应用完成时,NodeManager 会删除全部跟它相关的 Container 的数据

    (3) ApplicationMaster

    ApplicationMaster 运行在 Container 中,它主要功能是向 ResourceManager
    申请资源和 NodeManager 协同工作,运行应用的各个任务(比如 MapTask、
    ReduceTask),然后跟踪它们状态及监控各个任务的执行,遇到失败的任务还负
    责重启它。YARN 中运行的每个应用程序都有一个自己独立的 ApplicationMaster。
    ApplicationMaster(AM)的主要作用:
    ➢ 负责数据的切分。比如 MapReduce 任务会根据 InputSplit 信息来进行数
    据切分。
    ➢ 为应用程序申请资源,并进一步分配给内部任务。比如 MapReduce 任务,
    主要是为 MapTask 和 ReduceTask 申请运行资源来运行 Task
    ➢ 内部任务的监控和容错。
    ➢ 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视任务
    的执行和资源使用情况。
    ApplicationMaster 启动后会和 ResourceManager 保 持 连 接 , 定 期 向
    ResourceManager 发送心跳(heartbeat),回报自己的健康信息。然后计算应用
    (Application)需要的资源,然后跟 ResourceManager 沟通,让 ResourceManager
    给它分配 Container,分配了 Container 后,ApplicationMaster 和 NodeManager 沟
    通来加载 Container 运行任务

    (4) Container

    Container 是 YARN 中的资源抽象,它封装了某个节点上的多维度资源,如内
    存、CPU、磁盘、网络等。Container 是 YARN 框架的计算单元,是具体运行 Task
    (如 MapTask、ReduceTask)的基本单位。Container 是一个动态资源分配单位,
    将内存、CPU、磁盘、网络等资源封装在一起,限定了每个任务使用的资源量。
    从上面的描述可以看出,Container 很像我们使用的虚拟机系统,就是在
    NodeManager 节点机器上分配一块独立的空间来运行任务。
    Container 与集群节点的关系:一个节点可以运行多个 Container,但是需要
    明确的是 Container 不能跨多个机器。任何一个用户提交的应用拆分后的任务都
    必须运行在一个或多个 Container 中。

    6.yarn-job执行全过程

    在这里插入图片描述
    1.client向ApplicationManager发出提交job的请求
    2.ApplicationManager返回一个JobID及job资源的提交路径
    3.client将运行job所需要的jar包,配置信息,切片信息等资源上传到返回的HDFS路径中
    4.上传成功后,client向ApplicationManager发出执行job的请求
    5.ApplicationManager将请求提交给ResourceSchedule
    6.ResourceSchedule将job放到调度队列,当执行到该job时,通ApplicationManager
    7.ApplicationManage在一个相对空闲的namenode上开辟container,创建ApplicationMaster
    8.ApplicationMaster下载client提交的资源到本地,根据inputsplit信息生成MapTask和ReduceTask并确定各自任务数
    9.ApplicationMaster向ResourceSchedule申请运行多个MapTask任务的资源
    10. ResourceSchedule 将运行 MapTask 任 务 分 配 给 空 闲 的 多 个NodeManager,NodeManager 分别领取任务并创建容器(Container)
    11. ApplicationMaster向接收到任务的nodemanager发送开启MapTask任务指令,每个接收到任务的 NodeManager 启动 MapTask,MapTask 对数据进行处理,并分区排序。
    12.MrAppMaster 等待所有 MapTask 运行完毕后,向 ResourceManager申请容器(Container),运行 ReduceTask。
    13.程序运行完毕后,MrAppMaster 会向 ResourceManager 申请注销自己

    展开全文
  • Hadoop生态圈介绍及入门
  • Hadoop生态圈技术概述

    千次阅读 2019-03-23 22:12:52
    本文对hadoop生态圈技术做一个概要的介绍,文章中的前半部分的信息大多来自于网络,这里只是按照自己的学习思路整理了下。包括如下内容: hadoop诞生记 hadoop生态圈 常见组件简介 组件下载 学习路线 一、...
  • HADOOP生态圈介绍 1.hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 具有可靠、高效...
  • Hadoop架构 HDFS(Hadoop Distributed FIle System) 分布式文件系统,解决分布式存储 MapReduce 分布式计算框架 TARN 分布式资源管理系统 在Hadoop 2.x中引入 Common 支持所有其他模块的公共工具程序 Hadoop分布式...
  • Hadoop生态圈 Hadoop Hadoop是一个由Apache基金会所开发的分布式系统]基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 具有可靠、高效、可伸缩的特点...
  • 大数据Hadoop生态圈-组件介绍 Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。 Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,...
  • Hadoop生态圈搭建

    2016-10-09 13:07:27
    在Ubuntu系统下安装Hadoop圈中的部分软件。 VMWare Ubuntu SSH JDK Hadoop MySQL Hive Hbase Mahout Sqoop Spark Flume Kafka ElasticSearch Redis Phoenix
  • Hadoop生态圈各种组件介绍

    千次阅读 2019-05-06 11:56:14
    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。 二、HDFS Hado...
  • Hadoop生态圈重要组件整理

    千次阅读 2019-02-12 18:56:13
    Hadoop生态圈重要组件的概论与简述 初学hadoop的朋友们一定知道,Hadoop是由Apache开发的分布式系统基础架构,类似于自然界中的生态系统。这个系统中包含多个组件,共同完成分布式框架处理的任务。这里为大家整理了...
  • 1O 特征固有特征3、分布式计算比较一、Hadoop 介绍1、Hadoop 是什么2、Hadoop 能干什么3、Hadoop 发展及版本4、Hadoop 特点5、Hadoop VS RDBMS6、Hadoop 生态圈二、Hadoop 架构 前言   1、什么是大数据 大数据...
  • Hadoop生态圈(原理)

    2021-01-04 22:34:08
    Hadoop生态圈(理论)HDFSblock读写操作写操作具体实现读操作备份机制任务提交方式如何备份Pipeline(写操作+备份机制) HDFS 分布式文件系统 ---- 存储 block 大文件切割成块(block),分散存储在集群中。 单一...
  • hadoop生态圈各个组件简介

    万次阅读 多人点赞 2018-05-22 10:51:28
    1,HDFS(hadoop分布式文件系统) 是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。 client:切分文件,访问HDFS,与那么弄得交互,获取文件位置信息,与DataNode交互,读取和...
  • 最新Hadoop生态圈开发学习资料 Linux、Hadoop、HDFS、Zookeeper、Hive、Flume、Kafka、等等
  • HADOOP生态圈介绍

    2019-10-13 16:28:23
    HADOOP生态圈介绍 hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 具有可靠、高效...
  • hadoop生态圈各组件介绍及关系简析

    千次阅读 2019-11-21 16:46:19
    hadoop生态圈中包含很多组件,比如HDFS、Mapreduce、Hive、Hbase等等,这些组件在构建和使用hadoop平台过程中都是必要的吗?哪些是可选的?它们之间有可替代性吗?本文将以整理各组件间关系为出发点,初步走进hadoop...
  • hadoop生态圈各个组件

    千次阅读 2019-04-08 11:15:20
    Hadoop 是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。 Hadoop 的核心是 HDFS 和 Mapreduce,HDFS还包括 YARN。 1,HDFS(hadoop分布式文件系统) 是hadoop体系中数据存储管理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,499
精华内容 5,399
关键字:

hadoop生态圈