首页 > 编程知识 正文

hadoop生态圈搭建,hadoop集群主要瓶颈

时间:2023-05-03 09:49:45 阅读:56985 作者:447

Hadoop Common Hadoop Common是Hadoop 0.2版或更高版本分离的HDFS和MapReduce独立子项目的内容,是Hadoop的核心部分,是序列化机制、Hadoop抽象文件系统文件系统为其他模块提供常规工具集(如系统配置工具configure )的其他Hadoop子项目就是在此基础上创建的。

HDFSHDFS(Hadoop分布式文件系统)来源于谷歌的GFS论文,于2003年10月发表。 HDFS是GFS的实际装订版。 作为Hadoop系统中数据存储管理的基础,HDFS是一个容错系统,能够检测和应对硬件故障,并在低成本的通用硬件上运行。 HDFS简化了文件的一次性模型,通过流数据访问提供了高吞吐量的APP应用程序数据访问功能,适用于具有数据集的APP应用程序。 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 )源于谷歌的MapReduce论文,于2004年12月发表。 Hadoop MapReduce是谷歌生产克隆版。 MapReduce是一种进行大量数据计算的分布式计算模型。 屏蔽分布式计算框架的详细信息,将计算抽象为Map和Reduce两部分。 其中,Map对数据集上的独立元素执行指定操作,并生成键-值对格式的中间结果。 Reduce将中间结果中相同“键”的所有“值”规约化,得到最终结果。 MapReduce非常适合在大量计算机组成的分布式并行环境上处理数据。

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

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

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

点对点脚本(PIGpig )由雅虎开源,其设计动机是提供基于MapReduce的点对点(ad hoc )数据分析工具。 Pig定义了作为MapReduce编程的数据流语言——Pig Latin

的复杂性抽象,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的扫描和相应的动作

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