✅ 操作成功!

hadoop架构

发布时间:2023-06-07 作者:admin 来源:文学

hadoop架构

hadoop架构

杜甫川-plm培训

2023年2月22日发(作者:醋母)

hadoop⼊门系列之⼆【hadoop项⽬以及结构】

1、概述

现在hadoop已经法阵成为包含很多项⽬的集合,尽管其核⼼是MapReduce和HDFS分布式⽂件系统,但是与Hadoop相关的Common、

Avro、Chukwa、Hive、HBase等项⽬也是不可或缺的,它们提供了互补性服务或者在核⼼层上提供了更⾼层的服务。hadoop项⽬结构

如截图所⽰:

在接下来的⽂章将详细介绍hadoop各个关联项⽬的介绍

2、hadoop相关项⽬介绍

Common

Common是为Hadoop其他⼦项⽬提供⽀持的常⽤⼯具,它主要包括FileSystem、RPC和串⾏化库,它们为在廉价的硬件上搭建云

计算环境提供了基本的服务,并且会为运⾏在该平台上的软件开发提供了所需的API。

Avro

⽤于数据库序列化的系统,它提供了丰富的数据结构类型、快速可压缩的⼆进制数据格式、存储持久性数据的⽂件集、远程调⽤RPC

的功能和简单的动态语⾔集成功能,其中代码⽣成器即不需要读写⽂件数据,也不需要使⽤或者实现RPC协议,它只是⼀个可选的对

静态类型语⾔的实现。

Avro系统依赖于模式,数据的读和谐是在模式之下完成的,这样可以减少写⼊数据的开销,提⾼序列化的速度并缩减其⼤⼩,同时也

可以⽅便动态脚本语⾔的使⽤,因为数据连同其模式都是⾃描述的。

在RPC中,Avro系统客户端和服务器端通过握⼿协议进⾏模式交换,因此当客户端和服务器拥有彼此全部的模式时,不同模式下相同

命名字段、丢失字段和附加字段等信息的⼀致性问题就得到了很好得解决。

MapReduce

MapReduce是⼀种编程模型,⽤于⼤规模数据集(⼤于1TB)的并⾏运算,映射(Map)、化简(Reduce)的概念和它们的主要思想都是

从函数式编程语⾔中借鉴⽽来,极⼤的⽅便了编程⼈员,即使在不了解分布式并⾏编程的情况下,也可以将⾃⼰的程序运⾏在分布式

系统上,MapReduce在执⾏时先指定⼀个Map(映射)函数,把输⼊键值对映射成⼀组新的键值对,经过⼀定处理后交给

Reduce,Reduce对相同的key下所有value进⾏处理后再输出键值对作为最终的结果。

HDFS

HDFS是⼀个分布式⽂件系统,因为HDFS具有⾼容错性的特点,所以它可以设计部署在低廉的硬件上,它可以通过提供⾼吞吐率来访

问应⽤程序的数据,适合那些有着超⼤数据集的应⽤程序,HDFS放款了可移植操作系统接⼝的要求,这样可以以流的形式访问⽂件

系统中的数据,HDFS原本是开源的Apache项⽬Nutch的基础结构,最后它却成为了Hadoop基础架构之⼀。

以下是HDFS的设计⽬标:

监测和快速恢复硬件故障

流式数据访问

简化⼀致性模型

通信协议

Chukwa

chukwa是开源的数据收集系统,⽤于监控和分析⼤型分布式系统的数据,Chuwa是在hadoop的HDFS和MapReduce框架之上搭建

的,它集成了hadoop的可扩展性和健壮性,Chukwa通过HDFS来存储数据,并依赖MapReduce任务处理数据。Chukwa中也附带

了灵活且强⼤的⼯具,⽤于显⽰、监视和分析数据结果,以便更好地利⽤所收集的数据。

Hive

Hive最早是有FaceBook设计的,是⼀个建⽴在hadoop基础之上的数据仓库,它提供了⼀些⽤于Hadoop⽂件中的数据集进⾏数据整

理、特殊查询和分析存储的⼯具。Hive提供的是⼀种结构化数据的机制,它⽀持类似于传统RDBMS中的SQL语⾔的查询语⾔,来帮

助那些熟悉SQL的⽤户查询Hadoop中的数据,该查询语⾔成为HiveQL,于此同时,传统的MapReduce编程⼈员可以在Mapper或

者Reducer中通过HiveQL查询数据,Hive编译器会把HiveQL编译成⼀组MapReduce任务,从⽽⽅便MapReduce编程⼈员进⾏

Hadoop系统开发。

HBase

HBase是⼀个分布式、⾯向列的开源数据库,该技术开源Google论⽂,如同

Bigtable利⽤了Google⽂件系统提供的分布式数据存储⽅式⼀样,HBase在Hadoop之上提供了类似于Bigtable的能⼒,HBase不同

于⼀般的数据库,原因有两个:其⼀、HBase是⼀个适合于⾮结构化数据存储的数据库,其⼆,HBase是基于列⽽不是基于⾏的模

式,HBase和Bigtable使⽤相同的数据模型,⽤户将数据存储在⼀个表⾥,⼀个数据⾏拥有⼀个可选择的键和任务数量的列,由于

HBase表时疏松的,⽤户可以为⾏定义各种不同的列,HBase主要⽤于需要随机访问、实时读写的⼤数据(BigData)。

Pig

Pig是⼀个对⼤型数据集进⾏分析、评估的平台,Pig最突出的优势是它的结构能够经受住⾼度并⾏化的检验,这个特性使得它能够处

理⼤型的数据集,⽬前Pig底层由⼀个编译器组成,它运⾏的时候回产⽣⼀些MapReduce程序序列。

Zookeeper

Zookeeper是⼀个为分布式应⽤所涉及的开源协调服务,它主要为⽤户提供同步、配置管理、分组和命名等服务,减轻分布式应⽤程

序锁承担的协调任务,Zookeeper的⽂件系统使⽤了我们所熟悉的⽬录树结构,Zookeeper是使⽤Java编写,是它⽀持Java和C两种

编程语⾔。

3、Hadoop体系结构

HDFS和MapReduce是Hadoop的两⼤核⼼,⽽整个Hadoop的体系结构主要是通过HDFS来实现分布式存储的底层⽀持的,并且它

会通过MapReduce来实现并⾏任务处理的程序⽀持。

HDFS采⽤了主从(Master/Slave)结构模型,⼀个HDFS集群是由⼀个NameNode和若⼲个DataNode组成的,其中NameNode作为

主服务器,管理⽂件系统的命名空间和客户端对⽂件的访问操作;集群中的DataNode管理存储的数据,HDFS允许⽤户以⽂件的形式

存储数据,从内部来看,⽂件被分成若⼲个数据块,⽽且这若⼲个数据块存放在⼀组DataNode上,NameNode执⾏⽂件系统的命名

空间操作,⽐如打开、关闭、重命名⽂件或者⽬录等,它也负责数据块到具体的DataNode的映射,DataNode负责处理⽂件系统客户

顿的⽂件读写操作,并在NameNode的统⼀调度下进⾏数据块的创建、删除、复制⼯作,如下图所⽰为HDFS的体系结构。

NameNode和DataNode都可以在普通商⽤计算机上运⾏,这些计算机通常运⾏在Linux操作系统,HDFS采⽤Java语⾔开发,因此

任何⽀持Java的机器上都可以部署NameNode和DataNode,⼀个典型的部署场景就是集群中⼀台机器运⾏⼀个NameNode实例,其

他机器分别运⾏⼀个DataNode实例,当然并不排除⼀台机器上运⾏多个DataNode实例的情况,集群中单⼀NameNode的设计⼤⼤

简化了系统架构。NameNode是所有HDFS元数据的管理者,⽤户需要保存的数据不会经过NameNode,⽽是直接流向存储数据的

DataNode。

MapReduce是⼀种并⾏编程模式,利⽤这种模式软件开发着能够轻松地编写出分布式并⾏程序。在Hadoop体系结构

中,MapReduce是⼀个简单易⽤的软件框架,基于它可以将任务分发到由上千台商⽤机器组成的集群上,并以⼀种可靠容错的⽅式

并⾏处理⼤量的数据集,实现hadoop并⾏任务处理功能。

MapReduce框架是由⼀个单独运⾏在主节点的JobTracker和运⾏在每个集群从节点的TaskTracker共同组成的,主节点负责调度构

成⼀个作业的所有任务,这些任务分布在不同的从节点上,主节点监控它们的执⾏情况,并且重新执⾏之前失败的任务,从节点仅负

责由主节点指派的任务,当⼀个Job被提交时,JobTracker接收到提交作业和其配置信息之后,就会将配置信息等分发给从节点,同

时调度任务并监控TaskTracker的执⾏。

4、总结

HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核⼼,HDFS在肌群上实现了分布式⽂件系统,MapReduce在肌群

上实现了分布式计算和任务处理,HDFS在MapReduce任务处理过程中提供对⽂件操作和存储等的⽀持,MapReduce在HDFS的基

础上实现了任务的分发、跟踪、执⾏等⼯作,并收集结果,⼆者互相作⽤,完成了Hadoop分布式集群的主要任务。

👁️ 阅读量:0