精华内容
下载资源
问答
  • Hadoop组件简介

    2020-08-29 06:20:09
    Hadoop作为一种分布式基础架构,可以使用户在不了解分布式底层细节的情况下,开发分布式程序。接下来通过本文给大家分享Hadoop组件简介,感兴趣的朋友一起看看吧
  • CAP理论以及hadoop组件

    千次阅读 2017-03-09 10:44:44
    1:CAP 理论 C(一致性):所有的节点上的数据时刻保持同步 ...2:hadoop 组件介绍:   2.1 MapReduce——Hadoop 的核心 Google 的网络搜索引擎在得益于算法发挥作用的同时,MapReduce 在后台发挥了极大的作
      
    

    1:CAP 理论

    C(一致性):所有的节点上的数据时刻保持同步

    A(可用性):每个请求都能接受到一个响应,无论响应成功或失败

    P(分区容错):系统应该能持续提供服务,即使系统内部有消息丢失(分区)

     

    2:hadoop 组件介绍:

     

    2.1 MapReduce——Hadoop 的核心

    Google 的网络搜索引擎在得益于算法发挥作用的同时,MapReduce 在后台发挥了极大的作用。MapReduce 框架成为当今大数据处理背后的最具影响力的“发动机”。除了 Hadoop,你还会在 MapReduce 上发现 MPP(Sybase IQ 推出了列示数据库)和 NoSQL(如 Vertica 和MongoDB)。

    MapReduce 的重要创新是当处理一个大数据集查询时会将其任务分解并在运行的多个节点中处理。当数据量很大时就无法在一台服务器上解决问题,此时分布式计算优势就体现出来。将这种技术与 Linux 服务器结合可获得性价比极高的替代大规模计算阵列的方法。Yahoo 在 2006 年看到了 Hadoop 未来的潜力,并邀请 Hadoop 创始人 Doug Cutting 着手发展 Hadoop 技术,在 2008 年Hadoop 已经形成一定的规模。Hadoop 项目再从初期发展的成熟的过程中同时吸纳了一些其他的组件,以便进一步提高自身的易用性和功能。

     

    2.2 HDFS 和 MapReduce

    以上我们讨论了 MapReduce 将任务分发到多个服务器上处理大数据的能力。而对于分布式计算,每个服务器必须具备对数据的访问能力,这就是 HDFS(Hadoop Distributed File System)所起到的作用。

    HDFS 与 MapReduce 的结合是强大的。在处理大数据的过程中,当 Hadoop 集群中的服务器出现错误时,整个计算过程并不会终止。同时 HFDS 可保障在整个集群中发生故障错误时的数据冗余。当计算完成时将结果写入 HFDS 的一个节点之中。HDFS 对存储的数据格式并无苛刻的要求,数据可以是非结构化或其它类别。相反关系数据库在存储数据之前需要将数据结构化并定义架构。

    开发人员编写代码责任是使数据有意义。Hadoop MapReduce 级的编程利用 Java APIs,并可手动加载数据文件到 HDFS 之中。

     

    2.3 Pig 和 Hive

    对于开发人员,直接使用 Java APIs 可能是乏味或容易出错的,同时也限制了 Java 程序员在 Hadoop 上编程的运用灵活性。于是 Hadoop 提供了两个解决方案,使得 Hadoop 编程变得更加容易。

    ?Pig 是一种编程语言,它简化了Hadoop 常见的工作任务。Pig 可加载数据、表达转换数据以及存储最终结果。Pig 内置的操作使得半结构化数据变得有意义(如日志文件)。同时 Pig 可扩展使用 Java 中添加的自定义数据类型并支持数据转换。

    Hive在Hadoop 中扮演数据仓库的角色。Hive 添加数据的结构在 HDFS(hivesuperimposes structure on data in HDFS),并允许使用类似于 SQL 语法进行数据查询。与 Pig 一样,Hive 的核心功能是可扩展的。

    Pig 和 Hive 总是令人困惑的。Hive 更适合于数据仓库的任务,Hive 主要用于静态的结构以及需要经常分析的工作。Hive 与 SQL 相似促使其成为Hadoop 与其他 BI 工具结合的理想交集。Pig 赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的应用程序。Pig 相比 Hive 相对轻量,它主要的优势是相比于直接使用 Hadoop Java APIs 可大幅削减代码量。正因为如此,Pig 仍然是吸引大量的软件开发人员。

     

    2.4 改善数据访问:HBase、Sqoop 以及 Flume

    Hadoop 核心还是一套批处理系统,数据加载进 HDFS、处理然后检索。对于计算这或多或少有些倒退,但通常互动和随机存取数据是有必要的。HBase 作为面向列的数据库运行在 HDFS 之上。HBase 以 Google BigTable 为蓝本。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。HBase 利用 MapReduce 来处理内部的海量数据。同时 Hive 和 Pig 都可以与HBase 组合使用,Hive 和 Pig 还为 HBase 提供了高层语言支持,使得在 HBase 上进行数据统计处理变的非常简单。

    但为了授权随机存储数据,HBase 也做出了一些限制:例如 Hive 与 HBase 的性能比原生在 HDFS 之上的 Hive 要慢4-5 倍。同时 HBase 大约可存储 PB 级的数据,与之相比 HDFS 的容量限制达到 30PB。HBase不适合用于 ad-hoc 分析,HBase 更适合整合大数据作为大型应用的一部分,包括日志、计算以及时间序列数据。

    获取数据与输出数据

    Sqoop 和 Flume 可改进数据的互操作性和其余部分。Sqoop 功能主要是从关系数据库导入数据到 Hadoop,并可直接导入到 HFDS 或 Hive。而 Flume设计旨在直接将流数据或日志数据导入 HDFS。

    Hive 具备的友好 SQL 查询是与繁多数据库的理想结合点,数据库工具通过 JDBC 或 ODBC 数据库驱动程序连接。

     

    2.5 负责协调工作流程的ZooKeeper和Oozie

    随着越来越多的项目加入 Hadoop 大家庭并成为集群系统运作的一部分,大数据处理系统需要负责协调工作的的成员。随着计算节点的增多,集群成员需要彼此同步并了解去哪里访问服务和如何配置,ZooKeeper 正是为此而生的。

    而在 Hadoop 执行的任务有时候需要将多个 Map/Reduce 作业连接到一起,它们之间或许批次依赖。Oozie 组件提供管理工作流程和依赖的功能,并无需开发人员编写定制的解决方案。

    Ambari 是最新加入 Hadoop的项目,Ambari 项目旨在将监控和管理等核心功能加入Hadoop 项目。Ambari 可帮助系统管理员部署和配置Hadoop,升级集群以及监控服务。还可通过 API 集成与其他的系统管理工具。

    Apache Whirr 是一套运行于云服务的类库(包括 Hadoop),可提供高度的互补性。Whirr 现今相对中立,当前支持 Amazon EC2 和 Rackspace 服务。

     

    2.6 机器学习:Mahout

    各类组织需求的不同导致相关的数据形形色色,对这些数据的分析也需要多样化的方法。Mahout提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout 包含许多实现,包括集群、分类、推荐过滤、频繁子项挖掘。

    使用 Hadoop

    通常情况下,Hadoop 应用于分布式环境。就像之前 Linux 的状况一样,厂商集成和测试 Apache Hadoop 生态系统的组件,并添加自己的工具和管理功能。

    展开全文
  • Hadoop组件介绍

    2021-03-31 12:03:57
    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。...在未来一段时间内,hadoop将于spark共存,hadoop与spark 都能部署在ya..

    转自 https://www.cnblogs.com/klb561/p/9085615.html

     

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

    用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    具有可靠、高效、可伸缩的特点。

    Hadoop的核心是YARN,HDFS和Mapreduce

    下图是hadoop生态系统,集成spark生态圈。在未来一段时间内,hadoop将于spark共存,hadoop与spark

    都能部署在yarn、mesos的资源管理系统之上

    image

    下面将分别对以上各组件进行简要介绍,具体介绍参见后续系列博文。

    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工具。

     

    Hive起源于FaceBook,在Hadoop中扮演数据仓库的角色。建立在Hadoop集群的最顶层,对存储在Hadoop群上的数据提供类SQL的接口进行操作。你可以用 HiveQL进行select、join,等等操作。如果你有数据仓库的需求并且你擅长写SQL并且不想写MapReduce jobs就可以用Hive代替。
    Hive的内置数据类型可以分为两大类:
    (1)、基础数据类型;
    (2)、复杂数据类型。
    其中,基础数据类型包括:TINYINT、SMALLINT、INT、BIGINT、BOOLEAN、FLOAT、DOUBLE、STRING、BINARY、TIMESTAMP、DECIMAL、CHAR、VARCHAR、DATE。
    下面的表格列出这些基础类型所占的字节以及从什么版本开始支持这些类型。

     

    类型


    复杂类型包括ARRAY、MAP、STRUCT、UNION,这些复杂类型是由基础类型组成的。
    HBase
    HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随即读写操作,HBase正是为此而出现。HBase以Google BigTable为蓝本,以键值对的形式存储。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。
    HBase是一个数据库,一个NoSql的数据库,像其他数据库一样提供随即读写功能,Hadoop不能满足实时需要,HBase正可以满足。如果你需要实时访问一些数据,就把它存入HBase。
    你可以用Hive作为静态数据仓库,HBase作为数据存储,放那些进行一些会改变的数据。在Hive中,普通表是存储在HDFS中,而你可以通过创建EXTERNAL TABLE外表来指定数据存储位置,可以是系统目录,也可以是ElasticSearch,还可以是HBase。
    在使用Sqoop从Mysql导出数据入Hadoop时,就需要考虑是直接入Hive(此时是普通表),还是导入数据到HBase,Sqoop同时支持导入这两种导入。
    测试Sqoop

     

    测试


    以上Sqoop语句执行过后,可以确认Sqoop运行正常,Sqoop连接MySQL正常。
    使用Sqoop从MySQL导入数据到Hive
    使用复杂SQL

     

    SQL


    注意:
    由于使用Sqoop从MySQL导入数据到Hive需要指定target-dir,因此导入的是普通表而不能为外部表。
    以下简要列举了Sqoop的执行过程:

     

    执行


    可以看出,–split-by设置后,job按设置值切分,切分个数为-m设置值(-m 5 不设置的话默认job切分数是4)。经检验,此种较复杂的SQL语句,Sqoop支持得很好。
    调整Hive数据类型
    上面任务执行成功后,经过检测,发现Hive表结构中的数据类型与MySQL对应列有如下关系:

     

    关系


    可以看出MySQL的decimal类型变成了Hive中的double类型。此时需要在导入时通过–map-column-hive 作出映射关系指定,如下所示:

     

    指定


    以上命令可以执行成功,然而Hive列类型设置为DECIMAL时,从Mysql[decimal(12,2)]–>Hive[decimal]会导致导入后小数丢失。
    注意:
    对于cost=”DECIMAL(10,2)”这样指定精确度的映射语句的执行,在Sqoop1.4.5中执行失败。这是Sqoop1.4.5的一个BUG,详情见:https://issues.apache.org/jira/browse/SQOOP-2103,它在1.4.7版本中修复。
    不断更新
    将上面Sqoop语句执行两次,在执行第二次时会出现错误:

     

    错误


    这表示HDFS中已经存在相应存储,此时需要执行Sqoop-Hive的增量导入语句。
    注意:
    由于Hive没有rowkey,其hdfs存储决定了Sqoop-Hive只能添加,update更新导入无法进行。
    使用Sqoop从MySQL导入数据到HBase
    使用复杂SQL

     

    导入


    上面SQL语句较简单。经检验,更复杂的SQL语句,Sqoop支持得很好,导入正常。
    不断更新
    以上指定了HBase的Rowkey后,再次执行从MySQL导入数据到HBase的Sqoop语句,基于相同的Rowkey值,HBase内相应的行会进行更新替换。
    Hive使用HBase数据

     

    数据


    关于Hive使用存储在HBase中的数据,更多详细信息可以查看《使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作》一文。
    关于Sqoop2
    架构上,Sqoop1使用MapOnly作业进行Hadoop(HDFS/HBase/Hive)同关系数据库进行数据的导入导出,用户使用命令行方式与之交互,数据传输和数据格式紧密耦合;易用性欠佳,Connector数据格式支持有限,安全性不好,对Connector的限制过死。Sqoop2则建立了集中化的服务,负责管理完整的MapReduce作业,提供多种用户交互方式(CLI/WebUI/RESTAPI),具有权限管理机制,具有规范化的Connector,使得它更加易用,更加安全,更加专注。
    综上所述
    使用Sqoop从MySQL导入数据到HBase要比导入到Hive方便,使用Hive对HBase数据操作时,也无decimal精度相关BUG,并且可以很好的支持更新。因此建议使用Sqoop从MySQL导入数据到HBase,而非直接Hive。
    经过测试,使用Sqoop从MySQL导入数据到HBase,100万条需花费7~12分钟。impala对于hbase的查询效率也没有对hdfs效率高。

    展开全文
  • Hadoop四大组件介绍

    万次阅读 2018-08-07 10:54:12
    1.学习Hadoop之前需要的基础,javaSE(基础),EE(SSM),Linux基础,因为90%的框架都是用java写的,Hadoop、hive、HBase、下面是Hadoop的有关介绍。 2.学习大数据里面最核心的就是Hadoop,我们知道什么是大数据。...

    1.学习Hadoop之前需要的基础,javaSE(基础),EE(SSM),Linux基础,因为90%的框架都是用java写的,Hadoop、hive、HBase、下面是Hadoop的有关介绍。

    2.学习大数据里面最核心的就是Hadoop,我们知道什么是大数据。就是一个非常庞大的数据,计算机无法直接取读取以及分析处理,这个时候就要用到我们学到的大数据。

       

      Hadoop的四大组件:

            common、HDFS、MapReduce、YARN

            common(工具类):

             包括Hadoop常用的工具类,由原来的Hadoopcore部分更名而来。主要包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem等。它们为在通用硬件上搭建云计算环境提供基本的服务,并为运行在该平台上的软件开发提供了所需的API。

            Hadoop Distributed File System(HDFS):

            Hadoop实现了一个分布式的文件系统,HDFS为海量的数据提供了存储。HDFS是基于节点的形式进行构建的,里面有一个父节点NameNode,他在机器内部提供了服务,NameNode本身不干活,NameNode将数据分成块,只是把数据分发给子节点,交由子节点来进行存储,由于只存在一个父节点,所以这是HDFS的一个缺点,单点失败。以及n个子节点dataNode,dataNode在机器内部提供了数据块,存储在HDFS的数据被分成块,然后将这些块分到多个计算机(dataNode)中,这与传统的RAID架构大有不同。块的大小(通常为64MB)和复制的块数量在创建文件时由客户机决定。NameNode可以控制所有文件操作。

     

    NameNode:

    NameNode 是一个通常在 HDFS实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。

    DataNode:

    DataNode 也是一个通常在HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。

     

    MapReduce:

     基于YARN的大型数据集并行处理系统。是一种计算模型,用以进行大数据量的计算。Hadoop的MapReduce实现,和Common、HDFS一起,构成了Hadoop发展初期的三个组件。MapReduce将应用划分为Map和Reduce两个步骤,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。

     

    YARN:

    分布式集群资源管理框架,管理者集群的资源(Memory,cpu core)

                合理调度分配给各个程序(MapReduce)使用

                主节点:resourceManager

                      掌管集群中的资源

                从节点:nodeManager

                      管理每台集群资源

     

    总结:Hadoop的安装部署

                都属于java进程,就是启动了JVM进程,运行服务。

                HDFS:存储数据,提供分析的数据

                      NameNode/DataNode

                YARN:提供程序运行的资源

                      ResourceManager/NodeManager

    展开全文
  • Hadoop组件及功能

    2019-07-05 22:11:10
    Hadoop组件及其作用 hadoop有三个主要的核心组件:HDFS(分布式文件存储)、MAPREDUCE(分布式的计算)、YARN(资源调度)。 Hadoop Distributed File System (HDFS™):HDFS是一个分布式文件系统,提供高吞吐量...

    Hadoop组件及其作用

    hadoop有三个主要的核心组件:HDFS(分布式文件存储)、MAPREDUCE(分布式的计算)、YARN(资源调度)。

        Hadoop Distributed File System (HDFS™):HDFS是一个分布式文件系统,提供高吞吐量数据存储

        Hadoop MapReduce大数据集合的并行计算

        Hadoop YARN: 是一框架,任务调度和集群资源管理

    1.HDFS

          将数据划分为很多个块,默认一个块block(128MB),一个500M文件4块,每一个块存储3份,存储3份的好处,为了安全(空间换安全性)。

    主节点:NameNode

           决定数据存储在那个DataNode

           管理元数据(那个机器存储了什么数据,索引)

           管理所有从节点

    从节点:DataNode

           存储数据,管理数据(管理当前机器)

    2.MapReduce

           并行计算的框架

           分而治之的思想

                  将海量的数据划分为 多个部分,每部分单独进行处理,最后将所有处理的结果进行合并

           Map:MapTask

                  但对处理每一部分的数据

                  按照OOP思想,就是一个方法(map),在里面处理实际业务逻辑能力

           Reduce:ReduceTask

                 合并MapTask输出的结果数据

                按照OOP思想,就是一个方法(reduce),在里面处理实际业务逻辑能力

    3.YARN

     

          分布式集群资源管理和任务调度框架:管理各个机器的资源(cpu和内存),并且合理调度分配资源给各个程序使用(MapReduce程序的运行)

    主节点:ResourceManager

           管理子节点功能

           相应客户端请求

    任务调度

    从节点:NodeManager

           管理当前机器的资源

    展开全文
  • 大数据组件 详细安装步骤(linux配置 hadoop集群搭建 hive flume kafka spark zk 搭建安装)
  • hadoop组件程序包.zip

    2021-08-31 18:33:57
    适合Hadoop初学者安装Hadoop
  • Hadoop大数据开发与性能调优实战培训课程-Hadoop组件详解
  • Hadoop组件概览

    千次阅读 2014-07-18 16:42:01
    一、Hadoop构造模块  运行Hadoop的意思其实就是运行一组守护进程(daemons),每个进程都有各自的角色,有的仅运行在单个服务器上,有的则运行在集群多个服务器上,它们包括: NameNodeSecondary ...
  • Hadoop生态系统的组件介绍,简单说明,及其一些特性,和其他组件的区别,也有示图
  • hadoop组件tar.gz安装包

    2020-08-21 17:24:43
    包括hadoop,hive,hbase,jdk,mysql,flume,sqoop.xshell等常用组件组件全部兼容
  • hadoop基础组件介绍

    千次阅读 2017-09-08 15:53:45
    hadoop 的核心 HDFS: Hadoop Distributed File System 分布式文件系统 YARN: Yet Another Resource Negotiator 资源管理调度系统 Mapreduce:分布式运算框架 主从结构  主节点,namenode  从节点,有很多个: ...
  • Hadoop组件?Hadoop由什么组成?

    千次阅读 2019-03-06 19:06:16
    Hadoop的三大核心组件: hdfs、yarn、MapReduce Hadoop核心组件包括: 基础组件:hdfs、yarn、MapReduce 常用组件:hive、hbase、streaming、zookeeper Hdfs 分布式海量数据存储功能 yarn 提供...
  • 当我们已经把cm-service和cm-agent安装完成之后,接下来我们就要到最重要的部分了,安装Hadoop组件 附上: 喵了个咪的博客:w-blog.cn cloudera官网: https://www.cloudera.com/ 官方文档地址: ...
  • Hadoop组件压缩为获取、 传输文件
  • hadoop组件及其作用

    2018-03-28 22:51:00
    1.hadoop有三个主要的核心组件:HDFS(分布式文件存储)、MAPREDUCE(分布式的计算)、YARN(资源调度),现在云计算包括大数据和虚拟化进行支撑。  在HADOOP(hdfs、MAPREDUCE、yarn)大数据处理技术框架,擅长...
  • Hadoop = HDFS+Yarn+MapReduce+Hbase+Hive+Pig+… 1.HDFS:分布式文件系统 2.Yarn:分布式资源管理系统, 3.MapReduce:Hadoop的编程框架 4.Pig:基于hadoop的一门数据处理语言 5.Zookeeper:分布式协调服务 6.Hbase:...
  • 然后再进行其他组件的启动,hadoop相关组件都是用位于...hadoop/sbin目录下的脚本启动的, 二、启动组件 一般启动相关的就可以了: # 开启hdfs start-dfs.sh # 开启yarn start-yarn.sh ...
  • Hadoop生态圈各种组件介绍

    千次阅读 2019-05-06 11:56:14
    好多初入学习大数据的人不是很清楚,今天分享一个图,并介绍一下大致的组件,其他还有一些组件是没有包含在其中的,但是大部分这个图片是有了的。 一、简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构...
  • Hadoop 组件HDFS详解

    千次阅读 2016-06-05 17:11:10
    HDFS(Hadoop Distributed FileSystem)是一种专门为MapReduce这类框架下的大规模分布式数据处理而设计的文件系统。可以把一个大数据集(100TB)在HDFS中存储为单个文件,大多数其他的文件系统无力实现这一点。 ...
  • Hadoop组件搭建笔记

    2021-07-01 12:18:15
    Hadoop组件搭建-前置要求 Hadoop组件搭建-jdk Hadoop组件搭建-Hadoop伪分布式 Hadoop组件搭建-Hadoop全分布式 Hadoop组件搭建-Zookeeper Hadoop组件搭建-Hadoop HA高可用 Hadoop组件搭建-Mysql Hadoop组件搭建-Hive ...
  • Apache Hadoop Docker映像 这些图像是Bigdata docker。 所有映像都使用相同的,该包含用于在容器化环境中启动不同项目的。 有关可用环境变量的更多详细说明,请参见flokkr/docker-baseimage存储库中的flokkr/docker...
  • Chpater03 Hadoop组件(三) Hadoop读写

    千次阅读 2017-07-17 23:17:54
    Hadoop分割与读入文件的方式被定义在一个InputFormat的实现中,默认的实现是TextInputFormat;想读取一行内容,但是没有确定键值,这个实现类会将字节偏移作为键值。 如果需要自定义InputFormat,就必须实现...
  • Hadoop核心组件介绍(一)

    千次阅读 2019-10-18 17:39:55
    Hadoop核心组件的安装与配置(一) Hadoop是什么 Hadoop是一种分析和处理海量数据的软件平台 ...Hadoop组件 核心组件 **HDFS:**Hadoop分布式文件系统 **MapReduce:** 分布式计算框架 **Yarn:*...
  • 鉴于网上关于安装Trafodion相关的文章较少,且大部分文章只是说明依赖Hadoop,却并没有说明需要哪些Hadoop组件,这里写一篇简短的文章说明一下。我们知道Trafodion是一个SQL on Hadoop的数据库,准确地说是一个SQL ...
  • 基础篇:Hadoop组件与生态系统介绍

    千次阅读 2015-02-11 22:52:26
     Hadoop项目包含了各种模块——Hadoop通用库、hadoop分布式文件系统、Hadoop YARN 与Hadoop MapReduce。这些系统的整合,支撑了我们下面提到的其他hadoop项目,赋予了大数据处理实时自动任务调度和集群资源管理能力...
  • Hadoop1-大数据基础及组件介绍 Hadoop1-大数据基础及组件介绍
  • Spark是什么 Spark (全称 Apache Spark™) 是一个专门处理大数据量分析任务的通用数据分析引擎。...Spark目前有比较完整的数据处理生态组件,可以部署在多种系统环境中,同时支持处理多种数据源。...
  • 大数据Hadoop生态圈-组件介绍 Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。 Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,384
精华内容 31,353
关键字:

hadoop组件介绍