hadoop是一个开源软件框架,可安装在一个商用机器集群中,使机器可彼此通信并协同工作,以高度分布式的方式共同存储和处理大量数据。最初,Hadoop 包含以下两个主要组件:Hadoop Distributed File System (HDFS) 和一个分布式计算引擎,该引擎支持以 MapReduce 作业的形式实现和运行程序。
Hadoop 还提供了软件基础架构,以一系列 map 和 reduce 任务的形式运行 MapReduce 作业。Map 任务在输入数据的子集上调用map函数。在完成这些调用后,reduce任务开始在 map函数所生成的中间数据上调用reduce任务,生成最终的输出。map和reduce任务彼此单独运行,这支持并行和容错的计算。
最重要的是,Hadoop 基础架构负责处理分布式处理的所有复杂方面:并行化、调度、资源管理、机器间通信、软件和硬件故障处理,等等。得益于这种干净的抽象,实现处理数百(或者甚至数千)个机器上的数 TB 数据的分布式应用程序从未像现在这么容易过,甚至对于之前没有使用分布式系统的经验的开发人员也是如此。
map reduce 过程图
<!--EndFragment-->shuffle combine
整体的Shuffle过程包含以下几个部分:Map端Shuffle、Sort阶段、Reduce端Shuffle。即是说:Shuffle 过程横跨 map 和 reduce 两端,中间包含 sort 阶段,就是数据从 map task 输出到reduce task输入的这段过程。
sort、combine 是在 map 端的,combine 是提前的 reduce ,需要自己设置。
Hadoop 集群中,大部分 map task 与 reduce task 的执行是在不同的节点上。当然很多情况下 Reduce 执行时需要跨节点去拉取其它节点上的map task结果。如果集群正在运行的 job 有很多,那么 task 的正常执行对集群内部的网络资源消耗会很严重。而对于必要的网络资源消耗,最终的目的就是最大化地减少不必要的消耗。还有在节点内,相比于内存,磁盘 IO 对 job 完成时间的影响也是可观的。从最基本的要求来说,对于 MapReduce 的 job 性能调优的 Shuffle 过程,目标期望可以有:
完整地从map task端拉取数据到reduce 端。
在跨节点拉取数据时,尽可能地减少对带宽的不必要消耗。
减少磁盘IO对task执行的影响。
总体来讲这段Shuffle过程,能优化的地方主要在于减少拉取数据的量及尽量使用内存而不是磁盘。
YARN
ResourceManager 代替集群管理器
ApplicationMaster 代替一个专用且短暂的 JobTracker
NodeManager 代替 TaskTracker
一个分布式应用程序代替一个 MapReduce 作业
一个全局 ResourceManager 以主要后台进程的形式运行,它通常在专用机器上运行,在各种竞争的应用程序之间仲裁可用的集群资源。
在用户提交一个应用程序时,一个称为 ApplicationMaster 的轻量型进程实例会启动来协调应用程序内的所有任务的执行。这包括监视任务,重新启动失败的任务,推测性地运行缓慢的任务,以及计算应用程序计数器值的总和。有趣的是,ApplicationMaster 可在容器内运行任何类型的任务。
NodeManager 是 TaskTracker 的一种更加普通和高效的版本。没有固定数量的 map 和 reduce slots,NodeManager 拥有许多动态创建的资源容器。
大数据Hadoop开发厂商有Amazon Web Services、Cloudera、Hortonworks、IBM、MapR科技、华为和大快搜索。这些厂商都是基于Apache开源项目,然后增加打包、支持、集成等特性以及自己的创新等内容。
大快的大数据通用计算平台(DKH),已经集成相同版本号的开发框架的全部组件。如果在开源大数据框架上部署大快的开发框架,需要平台的组件支持如下:
数据源与SQL引擎:DK.Hadoop、spark、hive、sqoop、flume、kafka
数据采集:DK.hadoop
数据处理模块:DK.Hadoop、spark、storm、hive
机器学习和AI:DK.Hadoop、spark
NLP模块:上传服务器端JAR包,直接支持
搜索引擎模块:不独立发布
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
相关推荐
《Hadoop技术内幕》是一本深入探讨Hadoop生态系统核心组件的专业书籍,涵盖了Hadoop Common、HDFS(Hadoop ...通过深入学习和实践,你可以提升自己在大数据领域的专业素养,为企业的数据驱动决策提供强有力的技术支持。
Hadoop是大数据处理领域的重要工具,它以...通过对Hadoop的学习和应用,我们可以有效地管理和分析海量数据,为企业决策提供强有力的支持。通过阅读《Hadoop核心技术.pdf》这份文档,相信你将对这一领域有更深入的理解。
- Hadoop支持本地模式、伪分布式模式和分布式模式。本地模式适用于开发阶段,伪分布式模式适合模拟小规模集群运行,而分布式模式是真正的集群环境运行。 - VMware网络工作模式包括桥接模式、NAT模式和仅主机模式。...
【Hadoop 技术原理概览】 Hadoop 是一个开源的大数据处理框架,核心由 HDFS(Hadoop Distributed File System)和 MapReduce 组成,它允许在廉价硬件上进行大规模数据处理。Hadoop 旨在提供高容错性和高可扩展性,...
相较于Hadoop MapReduce,Spark的核心优势在于其内存计算模型,它可以将中间结果存储在内存中,避免了Hadoop每次计算都需要写入硬盘再读取的低效过程。这种设计显著提高了数据处理速度,使得Spark在迭代计算和交互式...
在大数据处理领域,Hadoop和Spark是两个至关重要的框架,它们各自扮演着不同的角色并有着互补的优势。Hadoop,作为Apache软件基金会的旗舰项目,以其分布式文件系统HDFS(Hadoop Distributed File System)和...
《Hadoop技术内幕三件套》是一套深入探讨Apache Hadoop生态系统的专业书籍,涵盖了Hadoop的核心组件:Common、HDFS(Hadoop Distributed File System)和MapReduce以及资源管理框架YARN(Yet Another Resource ...
Hadoop环境的安装需要对Linux操作系统有一定了解,因为Hadoop主要运行在类Unix操作系统上。 HDFS是Hadoop的核心组件之一,它拥有高吞吐量、可扩展、可靠和容错的特点。HDFS适合处理大量数据集的存储和访问,尤其...
Hadoop的关键技术改良不仅需要关注数据采集和处理的效率,还要注重接口的标准化与数据可视化的实用性。通过对现有技术的研究与改进,大数据分析平台Hadoop可以在不受特定场景限制的前提下,为用户提供高效、灵活的大...
2. 配置Hadoop的kerberos认证策略,例如,决定哪些操作需要进行Kerberos认证,哪些可以免密。 3. 确保Kerberos环境与操作系统、网络环境兼容,并正确配置时间同步,因为Kerberos认证对时间精度有要求。 4. 对于跨域...
本文将从企业应用的角度,对比Hadoop技术与其他传统技术之间的差异,并分析其比较优势。 首先,我们来看Hadoop的主要技术特性以及它面向的企业应用案例。Hadoop的设计初衷是为了处理大规模数据集,尤其适用于互联网...
参考文献部分提到的两篇研究论文分别由李伟卫和宋伟撰写,它们分别探讨了基于Hadoop平台的数据挖掘技术的研究,为本文的研究提供了理论支持和实践指导。参考文献详细信息的缺失可能是由于OCR技术的识别问题,但它们...
【标题】:Hadoop技术总结 【描述】:Hadoop是一种开源框架,专门设计用于处理和存储大量数据,尤其适合初次接触大数据领域的学习者。它以其分布式计算模型、高容错性和可扩展性而闻名,使得企业能够有效地管理和...
- 安装Java运行环境(JRE)或Java Development Kit(JDK),Hadoop需要Java环境支持,推荐版本为Java 8。 - 设置好Java环境变量,包括`JAVA_HOME`,`PATH`和`CLASSPATH`。 3. **下载与解压Hadoop**: 从Apache...
通过HBTC 2012大会,参与者不仅了解了Hadoop及其在大数据领域的应用,还获取了最新的技术动态和行业洞察,为他们在大数据时代的创新和决策提供了有力支持。文件列表中的"HBTC 2012"可能包含了会议的所有演讲材料,...
然而,随着大数据技术在各行各业的广泛应用,Windows用户对Hadoop的需求也日益增长。为了满足这一需求,Hadoop团队对Winutil进行了优化,使其在Windows系统下运行更加顺畅。 Winutil主要包含以下功能: 1. **安全...
【Hadoop 技术文档】 Hadoop 是一个开源的分布式计算框架,由Apache基金会开发,主要设计用于处理和存储大规模数据集。它借鉴了Google的MapReduce编程模型和Google File System(GFS)的设计理念,提供了高容错性和...
Hadoop作为大数据技术平台中最流行的一个生态系统,其技术复杂而全面,涵盖从数据存储到数据处理的多个环节。Hadoop生态系统的核心技术包括HDFS和MapReduce,HDFS负责数据的分布式存储,而MapReduce负责数据的分布式...