首页 > 编程知识 正文

hadoophdfs开发(hadoop 大数据架构)

时间:2023-05-06 13:35:36 阅读:86266 作者:1977

Hadoop common :包含Hadoop常用的工具类,从原来的Hadoop core部分重新命名。 主要包括系统配置工具配置、远程过程调用RPC、序列化机制、Hadoop抽象文件系统文件系统等。 它们提供了在通用硬件上构建云计算环境的基本服务,还提供了开发运行在平台上的软件所需的API。 资料来源:大数据信息平台

HDFS (HDFS ) :分布式文件系统提供对APP数据的高吞吐量、高可扩展性和高容错性访问。 是Hadoop系统中数据存储管理的基础。 在可检测硬件故障的容错系统上,以低成本通用硬件运行。 HDFS简化了文件完整性模型,通过流式数据访问提供了高吞吐量的APP数据访问功能,适用于具有大数据集的APP应用。

Hadoop YARN:任务调度和集群资源管理。

基于HadoopMapReduce:yarn的大型数据集并行处理系统。 进行大数据量计算的计算模型。 Hadoop的MapReduce安装与通用、HDFS一起,构成了Hadoop发展初期的3个组件。 MapReduce将APP应用程序分为Map和Reduce两个步骤。 Map对数据集上的独立元素执行指定的操作,生成键-值对格式的中间结果。 Reduce将中间结果相同的“密钥”的所有“值”规约化,得到最终结果。 像MapReduce这样的功能分割非常适合在由大量计算机组成的分布式并行环境中处理数据。

其他模块:

ambari :基于Web的工具,支持Apache Hadoop集群的供应、管理和监视。 目前,Ambari支持大多数硬件组件,包括HDFS、映射、Hive、Pig、Hbase、Zookeper、Sqoop、Hcatalog等。 Ambari支持集中管理,如HDFS、映射、Hive、Pig、Hbase、Zookeper、Sqoop和目录。 Ambari还提供了一个显示群集健康状况的控制板,包括热配置文件、直观显示MapReduce、Pig和hive APP的功能,以及对性能特性的清晰诊断。 也是五大顶级hadoop管理工具之一。

avro :由Doug cutting主导开发的数据序列化系统。 与其他序列化机制一样,Avro可以将数据结构或对象转换为易于存储和传输的格式,旨在支持适合大数据存储和交换的数据密集型APP应用程序。 Avro提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久数据的文件集、远程调用RPC和简单的动态语言集成等功能。

Cassandra :可扩展的多主体数据库,没有单点故障。 开源的分布式NoSQL数据库系统。 最初由Facebook开发,用于存储收件箱等简单格式的数据。 Facebook聚集了GoogleBigTable的数据模型和Amazon Dynamo完全分布式的架构,于2008年开放了Cassandra,之后由于Cassandra的良好可扩展性,使用了Digg、Twiidra

Cassandra是一个混合型的非相关数据库,类似于谷歌的BigTable。 主要功能比dynamodistributedkey-valuestoragesystem丰富,但支持的是介于关系数据库和非关系数据库之间的开源产品支持的数据结构非常松散,类似于json的bjson格式,因此可以存储相对复杂的数据类型)。 Cassandra最初由Facebook开发,后来改为开源项目。 这是网络社交云计算的理想数据库。 以Amazon独有的完全分布式Dynamo为基础,结合了基于Googlebigtablecolumnfamily的数据模型。 P2P去中心化的存储器。 在很多方面可以称为Dynamo 2.0。

Chukwa )用于管理大规模分布式系统的数据收集系统(2000多个节点,系统每天生成的监视数据量为t级)。 它以Hadoop的HDFS和MapReduce为基础构建,继承了Hadoop的可扩展性和鲁棒性。 Chukwa包括一套强大、灵活的工具,可提供数据生成、收集、排序、重新定位、分析和显示等一系列功能,是Hadoop用户、群集操作人员和管理员的必备工具。

h base :一种分布式的面向列的开源数据库,源自Fay Chang撰写的谷歌论文

“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

Hive是Hadoop中的一个重要子项目,最早由Facebook设计,是建立在Hadoop基础上的数据仓库架构,它为数据仓库的管理提供了许多功能,包括:数据ETL(抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力。Hive提供的是一种结构化数据的机制,定义了类似于传统关系数据库中的类SQL语言:Hive QL,通过该查询语言,数据分析人员可以很方便地运行数据分析业务。

Mahout:Apache旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。

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

Pig:运行在Hadoop上,是对大型数据集进行分析和评估的平台。它简化了使用Hadoop进行数据分析的要求,提供了一个高层次的、面向领域的抽象语言:Pig Latin。通过Pig Latin,数据工程师可以将复杂且相互关联的数据分析任务编码为Pig操作上的数据流脚本,通过将该脚本转换为MapReduce任务链,在Hadoop上执行。和Hive一样,Pig降低了对大型数据集进行分析和评估的门槛。

Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。

用MapReduce进行数据分析。当业务比较复杂的时候,使用MapReduce将会是一个很复杂的事情,比如你需要对数据进行很多预处理或转换,以便能够适应MapReduce的处理模式。另一方面,编写MapReduce程序,发布及运行作业都将是一个比较耗时的事情。Pig的出现很好的弥补了这一不足。Pig能够让你专心于数据及业务本身,而不是纠结于数据的格式转换以及MapReduce程序的编写。本质是上来说,zgdgtx使用Pig进行处理时,Pig本身会在后台生成一系列的MapReduce操作来执行任务,但是这个过程对用户来说是透明的。

Spark: Hadoop数据快速通用的计算引擎。 Spark提供了一个简单的编程模型,支持各种应用,包括ETL,机器学习,流处理和图形计算。

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。

Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

Tez:用于构建高性能批处理和交互式数据处理应用程序的可扩展框架,由Apache Hadoop中的YARN协调。 Tez通过大幅度提高其速度来改进MapReduce范式,同时保持MapReduce扩展到PB级数据的能力。支持DAG(Database Availability Group 数据库可用性组)作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,这样,这些分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业。

ZooKeeper: 一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

在分布式系统中如何就某个值(决议)达成一致,是一个十分重要的基础问题。ZooKeeper作为一个分布式的服务框架,解决了分布式计算中的一致性问题。在此基础上,ZooKeeper可用于处理分布式应用中经常遇到的一些数据管理问题,如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。ZooKeeper常作为其他Hadoop相关项目的主要组件,发挥着越来越重要的作用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。