设为首页 收藏本站
查看: 1115|回复: 0

[经验分享] Hadoop平台在云计算上的应用

[复制链接]

尚未签到

发表于 2016-12-12 06:08:56 | 显示全部楼层 |阅读模式
  1 Hadoop 介绍
  Hadoop是由Apache 开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。Hadoop 的主要优点[3] 有:扩容能力强、成本低廉、效率高、高可靠性、免费开源及良好的可移植性。
  Hadoop 集群是典型的Master/Slaves 结构,NameNode与JobTracker 为Master,DataNodes 与TaskTrackers 为Slaves。NameNode 与DataNodes 负责完成HDFS 的工作,JobTracker 与TaskTrackers 则负责完MapReduce 的工作。
  Apache Hadoop 项目包括多个子项目,但主要是由Hadoop分布式文件系统HDFS 和计算模型MapReduce 两个主
  要的子项目组成。
  1.1 Hadoop 分布式文件系统HDFS
  HDFS被设计成适合运行在通用硬件上的分布式文件系统,它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式文件系统的区别也显而易见。HDFS 是一个具有高度容错性的系统,适合部署在廉价的机器上。HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS设计是基于如下的前提和目标:
  (1)硬件错误是常态而非异常:HDFS 可能有成百上千的服务器组件构成,每个组件上存储着文件系统的部分数据。任何一个组件失效都是有可能的,也就意味着总有一部分HDFS的组件是不正常工作或者不工作的。如此一来,错误检测和快速、自动化地恢复是HDFS 最核心的设计目标之一。
  (2)数据流式访:HDFS 的设计中更多地考虑到了数据批处理,而不是用户交互处理,由此保证数据访问的高吞吐量。
  (3)大规模数据集:HDFS 上的一个典型文件大小一般都在GB 级至TB 级,甚至更高的PB 级。因此,HDFS 被设计以支持大文件存储,并能提供整体上的数据传输带宽,能在一个集群里扩展到数百个节点。
  (4) 简单的一致性模型:HDFS 应用需要一个“一次写入多次读取”的文件访问模型。文件经过创建、写入和关闭之后就不需要改变,使高吞吐量的数据访问成为可能。
  (5) 移动计算比移动数据更划算:一个应用请求的计算,离它操作的数据跃进就越高效,在数据达到海量级别的时候更是如此。为了能够降低网络阻塞,提供系统数据的吞吐量,HDFS为应用提供了将计算移动到数据附近的接口。
  (6)构软硬件平台间的可移植性:该特性方便了HDFS作为大规模数据应用平台的推广。
  一个HDFS 集群是由一个NameNode 和一定数目的Datanodes 组成,NameNode 是一个中心服务器,负责管理文件系统的名字空间(Namespace)以及客户端对文件的访问。集群中的DataNode 一般是一个节点一个,负责管理它所在节点上的存储。HDFS 对外公开文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块(Block),这些块存储在一组DataNode 上。NameNode 执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录,它也负责确定数据块到具体DataNode 节点的映射。Datanode负责处理文件系统客户端的读写请求,在NamenNode 的统一调度下进行数据块的创建、删除和复制。
  1.2 计算模型MapReduce
  MapReduce[6] 是由Google 提出的云计算核心计算模型,Hadoop 计划将它开源化实现。MapReduce 是一种高效的分布式计算模型,同时是一种用于处理和生成大规模数据集的实现方式。
  (1)Input: 应用程序提供Map 和Reduce 函数,并指明输入/ 输出的位置和其他运行必要的运行参数。该阶段会把输入目录下的大文件划分为若干独立的数据块。
  (2)Map:MapReduce 模型把用户作业的输入看作是一组<key,value> 键值对,模型会调用用户自定义的Map函数处理每一个<key,value> 键值对,生成一批新的中间<key,value> 键值对,这两组键值对的类型可能不同。
  (3)Shuffle&Sort: 为了保证Reduce 的输入是Map 排好序的输出。在Shuffle 阶段,通过网络为每个Reduce 获得所有Map 输出中与之有关的<key,value> 键值对;而在Sort 阶段,将按照key 的值对Reduce 的输入进行分组。通常Shuffle 和Sort 两个阶段是并行执行的。
  (4)Reduce: 对每一个唯一key,执行用户定义的Reduce函数,输出新的<key,value> 键值对。
  (5)Output: 将Reduce 输出的结果写入输出目录中。Hadoop 采用JobTracker/TaskTrackers 的主从式结构来实现MapReduce 编程模型。JobTracker 来分配Map 任务或Reduce 任务;TaskTracker 执行由JobTracker 发来
  的指令并同时处理Map 和Reduce 阶段之间数据的移动,每个TaskTracker 节点会定期报告任务完成状态。如果一个TaskTracker 不能按照要求在特定时间间隔内完成被分配给的工作,那么JobTracker 会将分配给这个节点的数据发到别的节点上,并将该节点定义为不工作状态。
  2 基于Hadoop 的云计算模型
  在该模型中,用户的数据将被分割成多个数据块存储在每一个Slave 的DataNode 上,之后NameNode 负责管理这些数据块。用户的计算任务被分成多个Map 任务和Reduce 任务,JobTracker 负责启动、跟踪和调度Map 任务和Reduce 任务,这些任务是由每一Slave 的TaskTracker 所执行的。Job-Tracker 也同时侦测TaskTracker 的运行状况,必要时重新执行某个任务。计算结果会保存在用户指定的目录下。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-312791-1-1.html 上篇帖子: Hadoop MapReduce 学习笔记(二) 序言和准备2 下篇帖子: hbase java api, NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguratio
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表