hadoop需要哪些技术支持
hadoop是一个开源软件框架,可安装在一个商用机器集群中,使机器可彼此通信并协同工作,以高度分布式的方式共同存储和处理大量数据。最初,Hadoop 包含以下两个主要组件:Hadoop Distributed File System (HDFS) 和一个分布式计算引擎,该引擎支持以 MapReduce 作业的形式实现和运行程序。
Hadoop 还提供了软件基础架构,以一系列 map 和 reduce 任务的形式运行 MapReduce 作业。Map 任务在输入数据的子集上调用map函数。在完成这些调用后,reduce任务开始在 map函数所生成的中间数据上调用reduce任务,生成最终的输出。map和reduce任务彼此单独运行,这支持并行和容错的计算。
最重要的是,Hadoop 基础架构负责处理分布式处理的所有复杂方面:并行化、调度、资源管理、机器间通信、软件和硬件故障处理,等等。得益于这种干净的抽象,实现处理数百(或者甚至数千)个机器上的数 TB 数据的分布式应用程序从未像现在这么容易过,甚至对于之前没有使用分布式系统的经验的开发人员也是如此。
map reduce 过程图
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包,直接支持
搜索引擎模块:不独立发布

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Hadoop技术创新方案
如今有很多公司都在努力挖掘他们拥有的大量数据,包括结构化、非结构化、半结构化以及二进制数据等,来探索对数据的深入利用。大多数公司估计他们只分析了已有数据的12%,剩余88%还没有被充分利用。大量的数据孤岛和分析能力的缺乏是造成这种局面的主要原因。另外一个难题是如何判断数据是否有价值。尤其是在大数据时代,为了避免数据丢失你必须采集并存储这些数据。一些看起来与业务无关的数据,如手机GPS数据,将来也可能会有大用处。所以,大量公司都寄希望于使用Hadoop解决如下难题:采集并存储与公司业务职能相关的所有数据。支撑先进的分析功能,包括商业智能,采用现代方式对数据进行先进的可视化和预测性分析。将数据快速分享给所需之人。整合多个数据孤岛来解答以前根本没人提过,甚至是未知的复杂问题。Hadoop支持解决方案规模的快速、有效扩大,使不断增长的容量、速度以及多样的数据能够得到快速的处理。如今Hadoop的购买周期正处于上升阶段,因此在该领域催生了越来越多的厂商。尽管Hadoop是Apache的开源项目,任何人都可以免费下载,但大多数消费者还是倾向于采用厂商的打包方案。除了将所有的Hadoop组件打包并保...
-
下一篇
数据科学之——大数据体系
1 浅谈数据科学 数据科学(Data Science)这一概念自大数据崛起也随之成为数据领域的讨论热点,从去年开始,“数据科学家”便成为了一个工作职位出现在各种招聘信息上。那么究竟什么是数据科学?大数据和数据科学又是什么关系?大数据在数据科学中起到怎样的作用?本文主要是想起到科普作用,使即将或正在从事数据工作的朋友对数据科学工作有一个全概貌了解,也使各有想法进入大数据领域的朋友在真正从事大数据工作之前对行业的情况有所知晓。数据科学是一个混合交叉学科(如下图所示),要完整的成为一个数据科学家,就需要具备较好的数学和计算机知识,以及某一个专业领域的知识。所做的工作都是围绕数据打转转,在数据量爆发之后,大数据被看做是数据科学中的一个分支。 2 浅谈大数据 大数据(Big Data)其实已经兴起好些年了,只是随着无处不在的传感器、无处不在的数据
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- MySQL数据库在高并发下的优化方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器