大数据时代||还不懂Hadoop?阿里P8带你深入剖析Hadoop原理及架构
前言
当今世界,科学技术飞速发展,人们不知不觉的进入了大数据时代。而什么是大数据时代,大数据的发展是什么?这一系列的问题其实很抽象,很难一言半语的概括。但是,在这大数据时代,必须掌握相应的技术作为支撑,而Hadoop就是其中的核心架构。
什么是Hadoop
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储
而作为一个开源框架,可编写和运行分布式应用处理大规模数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
Hadoop的特点
- 高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖。
- 高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
- 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
- 高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
- 低成本:与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,Hadoop是开源的,项目的软件成本因此会大大降低。
Hadoop项目架构
Hadoop技术框架简介:
HDFS:Hadoop中的重要组件之一,用来做分布式存储,具有高容错,高吞吐等特性,是常用的分布式文件存储
MR(MapReduce简称):Hadoop中的重要组件之一,作为分布式计算模型,程序人员只需在Mapper、Reducer中编写业务逻辑,然后直接交由框架进行分布式计算即可。
Yarn:Yarn是Hadoop中的重要组件之一,负责海量数据运算时的资源调度
Flume: Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,用来做数据采集。
Kafka:分布式的消息发布/订阅系统,通过与Spark Streaming整合,完成实时业务计算。由Java+scala开发。
Hive/Pig:Hive是基于Hadoop的一个数据仓库工具,通过将结构化的数据文件(通常为HDFS文件)映射为一张数据表,提供简单的sql查询功能,将sql语句转换为MapReduce任务运行。
pig可以看做hadoop的客户端软件,可以连接到hadoop集群进行数据分析工作,企业中很少用了。
Hbase:HBase是建立在Hadoop文件系统之上的面向列的分布式数据库。不同于一般的关系数据库,适合于存储非结构化的数据,HBase基于列而不是基于行。
Redis:Redis 可基于内存也可以持久化的日志型、Key-Value数据库。往往用来缓存key-value类型的小表数据。
Sqoop:负责数据在 HIVE---HDFS---DB之间进行导入导出
Standalone:是Spark提供的资源管理器,
Mesos:也是Apache下的开源分布式资源管理器。
Spark:Spark是大规模数据快速处理通用的计算引擎,其提供大量的库:Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX 。(只是计算,不作存储)。
大数据是时代发展的产物,为了应对大数据环境下新的业务需求,相关的分布式存储,分布式计算,大规模分布式数据库等技术,Hadoop解决了通过Hdfs实现分布式存储,通过Mapreduce实现分布式计算,围着Hadoop逐步发展出一个Hadoop生态圈。
以上就是小编整理的大数据hadoop的架构原理,如果感觉没看明白,小编为大家整理了
HDSF简介:
1.定义
整个Hadoop的体系结构主要是通过HDFS(Hadoop分布式文件系统)来实现对分布式存储的底层支持,并通过MR来实现对分布式并行任务处理的程序支持。
HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序
2.组成
HDFS采用主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。NameNode作为主服务器,管理文件系统命名空间和客户端对文件的访问操作。DataNode管理存储的数据。HDFS支持文件形式的数据。
从内部来看,文件被分成若干个数据块,这若干个数据块存放在一组DataNode上。NameNode执行文件系统的命名空间,如打开、关闭、重命名文件或目录等,也负责数据块到具体DataNode的映射。DataNode负责处理文件系统客户端的文件读写,并在NameNode的统一调度下进行数据库的创建、删除和复制工作。NameNode是所有HDFS元数据的管理者,用户数据永远不会经过NameNode。
YARN简介:
YARN 是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
Mapreduce简介:
1.定义
Hadoop MapReduce是google MapReduce 克隆版。
MapReduce是一种计算模型,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。
2.组成
(1)JobTracker
JobTracker叫作业跟踪器,运行到主节点(Namenode)上的一个很重要的进程,是MapReduce体系的调度器。用于处理作业(用户提交的代码)的后台程序,决定有哪些文件参与作业的处理,然后把作业切割成为一个个的小task,并把它们分配到所需要的数据所在的子节点。
Hadoop的原则就是就近运行,数据和程序要在同一个物理节点里,数据在哪里,程序就跑去哪里运行。这个工作是JobTracker做的,监控task,还会重启失败的task(于不同的节点),每个集群只有唯一一个JobTracker,类似单点的NameNode,位于Master节点
(2)TaskTracker
TaskTracker叫任务跟踪器,MapReduce体系的最后一个后台进程,位于每个slave节点上,与datanode结合(代码与数据一起的原则),管理各自节点上的task(由jobtracker分配),
每个节点只有一个tasktracker,但一个tasktracker可以启动多个JVM,运行Map Task和Reduce Task;并与JobTracker交互,汇报任务状态,
Map Task:解析每条数据记录,传递给用户编写的map(),并执行,将输出结果写入本地磁盘(如果为map-only作业,直接写入HDFS)。
Reducer Task:从Map Task的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行。
全套的Hadoop学习资料,有需要的小伙伴请关注小编,并私信回复【学习】来免费领取吧~~~