探索BI系统搭建的必要性与AI技术的应用潜力
613
2022-05-29
1. hadoop是什么
hadoop是分布式系统基础架构,主要解决海量数据存储和海量数据的分析计算问题。
广义上来说,hadoop通常指一个更广泛的概念:hadoop生态圈,第4章会详细说明。
2. hadoop优势
高可靠性:hadoop底层维护多个数据副本,即使hadoop某个计算元素或存储出现故障,也不会导致数据丢失。
高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点(动态增加,动态删除)
高效性:在MapReduce思想下,hadoop是并行工作的,以加快任务处理速度
高容错性:能够自动将失败的任务重新分配
3. 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小时内删除侵权内容。