hadoop的核心技术是什么(hadoop框架的核心是什么)

本文目录
hadoop框架的核心是什么
mapreduce
由于现在大家都接触的是hadoop2.x。对于hadoop1.x了解还是比较少的。
很多人问,如果没有1.x的基础,能否学习hadoop2.x。答案是可以的。但是如果了解hadoop1.x有助于我们理解hadoop2.x。
我们来看看hadoop1.x存在哪些问题?
hadoop有jobtracker,trasktracker.对于jobtracker,trasktracker刚接触其实还是比较抽象的。可能多次遇到过。但是对于它的认识和理解还是比较模糊。
我们这里打个比喻:在一个组织结构中,既有管理者,又有执行者。而jobtracker,trasktracker则是管理者,执行者是map task和reduce task。
trasktracker像是一个中层管理者,既监控执行者--map task和reduce task,如果map任务或reduce任务有更新,会通过心跳(一般间隔是3秒)告诉TraskTracker,TraskTracker再通过心跳(一般至少5s,因为代价比较大)告诉JobTracker。
JobTracker是最高层管理者,它接受trasktracker的心跳,负责资源管理和job的调度。
上面如果你思维谨密,就能看出,如果一旦最高层管理JobTracker挂掉,那么整个集群就瘫痪了。
为什么那?
1.不能提交job。
2.不能分配资源
3.job无法调度
这就有点像一个国家的leader挂掉了,那么谁会来负责国家的运转。如果你了解运行机制,其实也是有方案的。而这个方案就是我们所熟悉的高可用方案。而如果JobTracker挂掉了,显然hadoop集群就挂掉了。所以显然hadoop1.x是存在缺陷的。
既然存在缺陷,那么我们该如何来弥补。如果还是在原先的框架上修改,弄两个jobtracker是否可以。这肯定是一种方案。但是hadoop也是有野心的。作为大数据最初的开拓者,Spark,storm都非常的活跃。
所以我们列出了,hadoop需改造的下面需求:
1.hadoop存在单点故障
2.hadoop能否统一spark,storm
从上面我们看到hadoop自身存在问题,需要改造,同时又想统一spark和storm。所以hadoop急切需要改造升级。
这里想到了很多种解决方案。
方案1:两个jobtraker
hadoop自身来讲,既然存在单点故障,所以那么我们可以创建两个jobtraker,这是否可以。答案是可以的。因为一旦一个挂掉。我们启用另外一个jobtraker,这也是合适的。但是还存在另外一个问题,就是该如何统一spark和storm。如果spark和storm运行的话,两个jobtraker是否可以。答案是不行的,因为jobtraker其实还是没有脱离他本身的框架,只能运行hadoop的map和reduce。spark的DAG和storm的拓扑,还是不能运行的。那如果你说我们在jobtraker中加入不就行了。可是这是相当麻烦的,jobtraker肯定会累死的,他的任务太多。显然需要分离的职务。
方案2:Yarn
两个jobtraker是不行了,那么就从jobtraker职能分离并且解决存在的问题
1.性能问题
2.单点故障
3.能运行mapreduce,spark,storm。
所以这时候就产生了Yarn。
补充hadoop的发展历程
(1)Hadoop 1.0
Hadoop 1.0即第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成,对应Hadoop版本为Apache Hadoop 0.20.x、1.x、0.21.X、0.22.x和CDH3。
(2)Hadoop 2.0
Hadoop 2.0即第二代Hadoop,为克服Hadoop 1.0中HDFS和MapReduce存在的各种问题而提出的。针对Hadoop 1.0中的单NameNode制约HDFS的扩展性问题,提出了HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时它彻底解决了NameNode 单点故障问题;针对Hadoop 1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制功能分开,分别由组件ResourceManager和ApplicationMaster实现,其中,ResourceManager负责所有应用程序的资源分配,而ApplicationMaster仅负责管理一个应用程序,进而诞生了全新的通用资源管理框架YARN。基于YARN,用户可以运行各种类型的应用程序(不再像1.0那样仅局限于MapReduce一类应用),从离线计算的MapReduce到在线计算(流式处理)的Storm等。Hadoop 2.0对应Hadoop版本为Apache Hadoop 0.23.x、2.x和CDH4。
(3)MapReduce 1.0或MRv1
MapReduce 1.0计算框架主要由三部分组成,分别是编程模型、数据处理引擎和运行时环境。它的基本编程模型是将问题抽象成Map和Reduce两个阶段,其中Map阶段将输入数据解析成key/value,迭代调用map()函数处理后,再以key/value的形式输出到本地目录,而Reduce阶段则将key相同的value进行规约处理,并将最终结果写到HDFS上;它的数据处理引擎由MapTask和ReduceTask组成,分别负责Map阶段逻辑和Reduce阶段逻辑的处理;它的运行时环境由(一个)JobTracker和(若干个)TaskTracker两类服务组成,其中,JobTracker负责资源管理和所有作业的控制,而TaskTracker负责接收来自JobTracker的命令并执行它。该框架在扩展性、容错性和多框架支持等方面存在不足,这也促使了MRv2的产生。
(4)MRv2
MRv2具有与MRv1相同的编程模型和数据处理引擎,唯一不同的是运行时环境。MRv2是在MRv1基础上经加工之后,运行于资源管理框架YARN之上的计算框架MapReduce。它的运行时环境不再由JobTracker和TaskTracker等服务组成,而是变为通用资源管理系统YARN和作业控制进程ApplicationMaster,其中,YARN负责资源管理和调度,而ApplicationMaster仅负责一个作业的管理。简言之,MRv1仅是一个独立的离线计算框架,而MRv2则是运行于YARN之上的MapReduce。
(5)YARN
YARN是Hadoop 2.0中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度。YARN不仅限于MapReduce一种框架使用,也可以供其他框架使用,比如Tez(将在第9章介绍)、Spark、Storm(将在第10章介绍)等。YARN类似于几年前的资源管理系统Mesos(将在12章介绍)和更早的Torque(将在6章介绍)。由于YARN的通用性,下一代MapReduce的核心已经从简单的支持单一应用的计算框架MapReduce转移到通用的资源管理系统YARN。
(6)HDFS Federation
Hadoop 2.0中对HDFS进行了改进,使NameNode可以横向扩展成多个,每个NameNode分管一部分目录,进而产生了HDFS Federation,该机制的引入不仅增强了HDFS的扩展性,也使HDFS具备了隔离性。
Hadoop中单机模式和伪分布式分别是什么
1、Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价硬件设备组成的集群上运行应用程序,并未应用程序提供一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。Hadoop的核心是HDFS(Hadoop Distributed File System),Mapreduce和Hbase,他们分别是Google云计算核心技术GFS,Mapreduce和Bigtable的开源实现。Hadoop集群有三种运行模式,分别为单机模式,伪分布式模式和完全分布式模式。hadoop完全分布式:3个及以上的实体机或者虚拟机组件的机群。hadoop伪分布式:一个节点。
2、单机模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。hadoop完全分布式:3个及以上的实体机或者虚拟机组件的机群。通过分析bin/hadoop脚本可知,-jar并不是bin/hadoop脚本定义的参数,此脚本会把-jar作为Java的参数,Java的-jar参数表示执行一个Jar文件(这个Jar文件必须是一个可执行的Jar,即在MANIFEST中定义了主类),此时外部定义的classpath是不起作用的,因而会抛出java.lang.NoClassDefFoundError异常。而jar是bin/hadoop脚本定义的参数,会调用Hadoop自己的一个工具类RunJar,这个工具类也能够执行一个Jar文件,并且外部定义的classpath有效。
3、伪分布模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点(NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode),请注意分布式运行中的这几个结点的区别:从分布式存储的角度来说,集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。从分布式应用的角度来说,集群中的结点由一个JobTracker和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。JobTracker和NameNode则无须在同一台机器上。
hadoop的核心是什么
Hadoop是一个开源框架,用于以分布式方式存储和处理大数据。Hadoop的核心组件是 -
HDFS(Hadoop分布式文件系统) - HDFS是Hadoop的基本存储系统。在商用硬件集群上运行的大型数据文件存储在HDFS中。即使硬件出现故障,它也能以可靠的方式存储数据。
Hadoop MapReduce - MapReduce是负责数据处理的Hadoop层。它编写了一个应用程序来处理存储在HDFS中的非结构化和结构化数据。它负责通过将数据划分为独立任务来并行处理大量数据。处理分两个阶段完成Map和Reduce。Map是指定复杂逻辑代码的第一个处理阶段,Reduce是指定轻量级操作的第二阶段处理。
YARN - Hadoop中的处理框架是YARN。它用于资源管理并提供多种数据处理引擎,即数据科学,实时流和批处理。
hadoop到底是什么
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
1、用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
2、Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
3、Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
hadoop的核心技术是什么
MapReduce为大数据场景下数据计算提供了一套通用框架,用于处理TB级别数据的统计、排序等问题(单机内存无法处理)。用户需自己实现mapper和reducer方法,仅可用于离线批量计算,实时性不高。Spark作为更新一代的分布式计算引擎,更多的利用内存存储中间结果,减少了磁盘存储的IO开销,计算性能更高。流式计算场景下可用的计算引擎有Spark Streaming和Flink。
分布式文件系统HDFS,十多年来一直作为大数据存储的标配。HDFS通过多副本策略,充分利用节点的存储资源,解决了大数据可靠性,一致性问题。
HBase用于解决大数据场景下数据随机读写的问题,基于kv存储,扩展性更高。

更多文章:
avantage怎么设置为中文(Avantage安装丢失GIT)
2026年10月15日 03:00
activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)
2026年10月14日 20:30
excel连接sql数据库教程(excel怎么连接sql数据库)
2026年10月14日 19:40






