hadoop基本认识

网友投稿 634 2022-05-29

1. hadoop是什么

hadoop是分布式系统基础架构,主要解决海量数据存储和海量数据的分析计算问题。

广义上来说,hadoop通常指一个更广泛的概念:hadoop生态圈,第4章会详细说明。

2. hadoop优势

高可靠性:hadoop底层维护多个数据副本,即使hadoop某个计算元素或存储出现故障,也不会导致数据丢失。

高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点(动态增加,动态删除)

高效性:在MapReduce思想下,hadoop是并行工作的,以加快任务处理速度

高容错性:能够自动将失败的任务重新分配

3. hadoop的组成

hadoop基本认识

hadoop1.0时代,MapReduce同时处理业务逻辑运算和资源的调度(计算时分配多少内存,在哪个服务器上运行等等),耦合性较大。

2.0时代增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算

3.0在组成上没有变化,主要包括HDFS、YARN、MapReduce

3.1 HDFS架构概述:任务存储

HDFS:Haddoop Distributed File System,简称HDFS,是一个分布式文件系统,主要用于解决数据的存储问题

HDPS由三个单元组成:

NameNode(nn):存储文件的元数据。比如文件目录结构,文件名,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

DataNode(dn):简单来讲就是存放真实的数据。官方语言:在本地文件系统存储文件块数据,以及块数据和校验和。DataNode的数据都有进行备份。

Secondary Node(2nn):每隔一段时间,对NameNode的元数据进行备份,防止NameNode宕机后,不知道各个数据存储在哪里

3.2 YARN架构概述:资源调度

YARN:Yet Another Resource Negotiator,是hadoop的资源管理器

YARN由以下单元构成:

ResourceManger(RM):负责管理整个集群的资源(内存、cpu等),如下图,由于每个NodeManger都是4G内存,2GPU,ResourceManger就负责管理12G内存,6GPU。

NodeManger(NM):负责管理单个节点服务器的资源,如下图所示。

Container:容器,位于单个服务器节点之上,相当于在服务器上虚拟出一个小型的虚拟机,里面封装了任务运行所需要的资源,如内存、cpu、磁盘、网络等。

ApplicationMaster(AM):负责管理单个任务的运行,位于Container里面,即任务运行在Container这个小型虚拟机里

YARN运行原理:当客户端进行作业提交后(Job Submission),ResourceManger就会进行资源的分配,安排其在某个NodeManger的某个Container中进行运行,一个任务可以运行在多个Container上,多个Container可以分布在不同的NodeManger单点服务器上。

注:客户端可以有多个;集群上可以运行多个ApplicationMaster;每个NodeManger上可以有多个Container。

3.3 MapReduce架构概述:任务计算

MapReduce:主要负责任务的计算,其计算过程分为两个阶段:

Map阶段:并行处理输入数据,如想要在服务器集群中查找hadoop的整套教学视频,首先会进行任务的派发,让每个服务器去寻找。

Reduce阶段:对Map结果进行汇总。有一台汇总服务器会将Map中各个节点的结果进行汇总,这样就找到了结果。

3.4 HDFS、YARN、MapReduce三者的关系

4. 大数据技术生态体系

Sqoop 是一款开源的工具,主要用于在 Hadoop、Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle 等)中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。

flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据。

kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统

spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数据进行计算。

Flink:Flink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多

Oozie:Oozie 是一个管理 Hadoop 作业(job)的工作流程调度管理系统。

Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

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

ZoopKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

推荐项目框架图如下:

Hadoop 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux系统-Shell脚本基本使用(数组、函数、字符串处理)
下一篇:五分钟带你玩转rabbitmq(五)死信队列
相关文章