发布时间:2023-11-27 11:39来源:www.sf1369.com作者:宇宇
riak 华师大的吧- -
下面来简单介绍各个组件的作用:
HDFS(Hadoop distribute file system)——Hadoop生态系统的基础组件Hadoop分布式文件系统。它是其他一些工具的基础HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但可以多次读取用于分析。HDFS让Hadoop可以最大化利用磁盘。
HBase—— 一个构建在HDFS之上的面向列的NoSql数据库,HBase用于对打量数据进行快速读取/写入。HBase将Zookeeper用于自身的管理,以保证其所有组件都正在运行。HBase使得Hadoop可以最大化利用内存。
MapReduce——MapReduce是Hadoop的主要执行框架,它是一个用于分布式并行数据处理的编程模型,将作业分为mapping阶段和reduce阶段。开发人员谓Hadoop编写MapReduce作业,并使用HDFS中存储的数据,而HDFS可以保证快速的数据访问。鉴于MapReduce作业的特性,Hadoop以并行的方式将处理过程移向数据。行扒MapReduce使得Hadoop可以最大化利用CPU。
Zookeeper——Zookeeper是Hadoop的分布式协调服务。Zookeeper被设计成可以在机器集群上运行,是一个具有高度可用性的服务,用于Hadoop操作的管理,而且很多Hadoop组件都依赖它。
Oozie—— Oozie是一个北极测很难过到Hadoop软件栈中的可扩展的Workflow系统。用于协调多个MapReduce作业的执行。它能够处理大量的复杂性,基于外部事件来管理执行。
Pig——Pig是对MapReduce编程复杂性的抽象,Pig平台包含用于分析Hadoop数据集的执行环境和脚本语言(Pig Latin)。它的编译器将Pig Latin翻译为MapReduce程序序列。
Hive——类似于SQL的高级语言,用于执行对存储在Hadoop中数据的查询,Hive允许不熟悉MapReduce的开发人员编写数据查询语句,它会将翻译为Hadoop中的MapReduce作业。类似于Pig。Hive是一个抽象层,适合于较熟悉SQL而不是java编程的数据库分析师。
Hadoop生态系统中还包含一些用于与其他企业级应用进行集成的框架,例如上图所示的Sqoop和Flume:
Sqoop是一个连通性工具,用于在关系型数据库和数据仓库Hadoop之间移动数据。Sqoop利用数据库来描述导入/导出数据的模式,并使用MapReduce实现并行操作和容错。
Fulme是一个分布式的、具有可靠性和高可用性的服务,用于从单独侍族的机器上将大量数据高效的收集、聚合并移动到HDFS中。它给予一个简单灵活的架构,童档谈昌工流式数据操所。它借助于简单可扩展的数据模型,允许将来自企业中多台机器上的数据移到Hadoop中。
riak 不是Hadoop 的核心组件
riak
一、HDFS缺点:
1、不能做到低延迟:由于hadoop针对高数据吞吐量做了优化,牺牲了获取数据的延芹氏迟,所以对于低延迟数据访问,不适合hadoop,对于低延迟的访问需求,HBase是更好的选择,
2、不适合大量的小文件存储:由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量,根据经验,每个文件、目录和数据块的存储信息大约占150字节。
3、不适合多用户写入文件,修改文件:Hadoop2.0虽然支持文件的追加功能,但是还是不建议对HDFS上的 文件进行修改,因为效率低。
4、对于上传到HDFS上的文件,不支持修改文件,HDFS适合一次写入,多次读取的场景。
5、HDFS不支持多用户同时执行写操作,即同一时间,只能有一个用户执行写操作。
二、HDFS优点:
1、高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
2、高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
3、高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
4、高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
5、低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
6、Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
一、 Hadoop 特点
1、支持超大文件:一般来说,HDFS存储的文件可以支持TB和PB级别的数据。
2、检测和快速应对硬件故障:在集群环境中,硬件故障是常见性问题。和野因为有上千台唤首喊服务器连在一起,故障率高,因此故障检测和自动恢复hdfs文件系统的一个设计目标。
3、流式数据访问:HDFS的数据处理规模比较大,应用一次需要大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理,应用程序能以流的形式访问数据库。
4、简化的一致性模型:对于外部使用用户,不需要了解hadoop底层细节,比如文件的切块,文件的存储,节点的管理。
5、高容错性:数据自动保存多个副本,副本丢失后自动恢复。可构建在廉价机上,实现线性(横向)扩展,当集群增加新节点之后,namenode也可以感知,将数据分发和备份到相应的节点上。
6、商用硬件:Hadoop并不需要运行在昂贵且高可靠的硬件上,它是设计运行在商用硬件的集群上的,因此至少对于庞大的集群来说,节点故障的几率还是非常高的。HDFS遇到上述故障时,被设计成能够继续运行且不让用户察觉到明显的中断。
Hadoop的优缺点介绍:
(一) 优点:
(一)高可靠性。Hadoop按位存储和处理数据的能力值得人们桐缓信赖;
(二)高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千高轮枝计的节点中。
(三)高效性。Hadoop能够在节点之间动态地移动数据,并戚敏保证各个节点的动态平衡,因此处理速度非常快。
(四)高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
(二) 缺点:
(一)不适合低延迟数据访问。
(二)无法高效存储大量小文件。
(三)不支持多用户写入及任意修改文件。
了解更多开源相关,去LUPA社区看看吧。