1、什么是大数据
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
2、大数据能用来做什么(如何挖掘企业需要的信息!)
3、通常的关系数据库和大数据的联系和瓶颈
4、海量数据的产生是大数据分析系统产生的必然
Hadoop是一个由Apache基金会开发的一个开源项目,从2005 年开始,源于开源的收索引擎项目Nutch的一部分正式引入。Nutch项目的负责人是Doug Cutting,也是开发组的核心人员。
Hadoop系统结构受到Google开发的Map/Reduce和Google File System (GFS) 的启发。
2006年,Map/Reduce和Nutch Distributed File System (NDFS)分别被纳入称为Hadoop的项目中。
最初Hadoop 是在 Internet 上对搜索关键字进行内容分类的工具,但是Hadoop对海量数据处理的能力备受关注。例如,如果您要对一个TB级别的文件进行关键字的出现次数进行统计,会出现什么情况!在传统的关系数据库系统上,这将需要很长的时间。但是 Hadoop 在设计时就考虑到这些问题,采用分布并行执行机制,因此能大大提高效率。
HDFS(Hadoop Distributed File System),Hadoop分布式文件系统。
Map/Reduce分布式计算系统
1、什么是HDFS分布式文件系统
HDFS是一个的文件系统,可以创建、移动、删除和重命名文件。
是一个基于网络的分布式文件系统。
由多个机器联网组成,其中一台为NameNode,其他的是DataNode。
NameNode为HDFS提供元数据服务,管理保存在不同节点上的数据信息。
DataNode管理本节点上的数据。
NameNode将一个大的数据文件分成多个数据块保存到不同的DataNode节点上,并记录所有数据块所在节点的信息,DataNode管理本节点上的数据块,数据块的大小默认为128M。
HDFS上NameNode和DataNode通信基于TCP/IP协议
2、HDFS(分布式文件系统)
HDFS分布式文件系统是基于网络的。
是由多台机器组成的。
是由一个NameNode和多个DataNode组成,NameNode运行在主服务器上,管理文件系统的命名空间和客户端对文件系统的访问操作。DataNode运行在其他的多台机器上,主要管理数据的存储,包括要分析的数据,历史数据等。
在主服务器上的NameNode是HDFS分布式文件系统的主守护进程,分布在其他机器上的DataNode从进程定时向主进程NameNode发送报告,报告节点数据和磁盘的情况。NameNode进程向不同的DataNode节点发送指令,要求节点下载数据并管理数据。
3、什么是MapReduce(分布式计算系统)
MapReduce是处理数据的编程模型。
关系数据库可以采用SQL语句对数据进行操作查询。
MapReduce可以通过Java、C等其他语言对数据进行查询分析。
MapReduce分为两个阶段,map阶段和reduce阶段,map阶段将原始数据进行过滤操作,以键/值对的方式输出,map阶段的输出是reduce阶段的输入,reduce阶段对数据处理后输出最终的结果。
MapReduce处理的数据文件保存在HDFS上,并且最终的计算结果同样会保存到HDFS上。
MapReduce和HDFS相对独立由相互联系。
4、MapReduce(分布式计算系统)
Hadoop1.0版本的MapReduce
由一个JobTracker和多个TaskTracker组成。 JobTracker运行在主服务器上, TaskTracker运行在集群中的从节点上。
JobTracker进程负责调度一个作业的所有任务的执行,这些任务会分配到不同的节点上。JobTracker主进程监控所有从节点的TaskTracker进程的作业执行情况,重新执行失败的任务。TaskTracker执行JobTracker指定的任务。当一个Job(数据分析作业)提交时,JobTracker接收到提交的任作业后,将作业执行需要的配置信息和其他数据信息分发给相应的TaskTracker。同时要调度任务并监控TaskTracker的执行。
5、YARN(分布式计算系统)
Hadoop2.0版本的MapReduceV2(YARN)
YARN ( Yet Another Resource Negotiator )
由一个ResourceManager和多个NodeManager组成。 ResourceManager运行在主服务器上, NodeManager运行在集群中的从节点上。
ResourceManager是集群所有可用资源的仲裁者。是一个单纯的资源控制器和调度器。主要职责是接收应用程序的资源请求并严格控制系统的可用资源。动态的分配资源。
NodeManager是集群中每个节点上的管理进程,职责是对节点中的资源进行管理并与ResourceManager保持通信,报告节点的各种状态信息。与ResourceManager共同管理整个集群资源,资源包括内存、CPU等。
6、Hadoop2.0在Hadoop1.0上的改变
ResourceManager进程运行在主节点上,作为集群资源的管理者和总调度,不在需要关心应用程序的执行和监控。ApplicationMaster进程运行在从节点上,主要管理应用程序的执行和应用程序的生命周期,当应用程序执行结束,ApplicationMaster的生命周期结束。
客户端发出应用程序执行请求,ResourceManager会创建与应用程序对应的ApplicationMaster实例。
好处是,分工明确,粒度细化和多应用程序的同步执行。
不同的应用对应不同的ApplicationMaster。MapReduce计算框架对应相应的ApplicationMaster。不同的计算框架对应不同的ApplicationMaster实现。
好处是:职责的分离带来的是扩展性的提升。如:程序在运行阶段发生异常带来的节点任务失败是需要重新启动作业的,这些相关的容错机制在Hadoop1.0是由JobTracker负责的。使得JobTracker成为重量级,代码的维护相当困难,并且框架的耦合度高,功能模块粒度粗。在YARN中这些容错职责由ApplicationMaster担任,实现了容错机制局部化,而不是以往的全局管理。此外需要注意的是应用程序和ResourceManager的分离使ResourceManager轻量化。某个应用的执行不会影响到整个集群。
Hadoop2.0和Hadoop1.0的结构图
不同应用对应不同的ApplicationMaster。只需要增加不同计算框架的ApplicationMaster实现即可实现多种框架使用YARN,如MapReduce、MPI和图计算等。实现上是把所有与应用程序相关的代码都放到ApplicationMaster类中。并提供不同的接口满足不同用户的需求。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。