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

[经验分享] Hadoop的基础架构

[复制链接]

尚未签到

发表于 2018-10-30 06:21:39 | 显示全部楼层 |阅读模式
  Hadoop这个名字现在对很多开发者来说,并不陌生,但是很多开发者对其工作原理和架构并不了解。Hadoop怎么实现的分布式存储和分布式计算,其计算性能为什么会提高那么多。本文将从其基本工作原理方面解释上上述问题,博主是初学者,不喜勿喷,还请前辈多多指教。
  一、Hadoop名字的起源
  大家在网上搜索Hadoop关键字的时候,出现的图片绝大多数是一头可爱的***的小象,很多人并不理解这个分布式平台和小象有什么关系。Hadoop是Apache公司对Google GFS(Google FileSystem)和MapReduce的开源实现,该项目组的负责人Doug Cutting后来解释说,其实“Hadoop”这个词并不在字典中,是一个虚拟的词,源于他的小儿子,他的小儿子有一个***的小象玩具,并且叫这个玩具Hadoop(发音类似),Doug Cutting觉得这个很有意思,简单的拼写,容易本人记住,并且不容易被用在别处,也没有其他的意义,非常合适作为这个开源项目的名字,于是这个名字就被用上了,***小象也成了Hadoop的代名词。
  二、Hadoop是什么
  首先了解一下什么是分布式计算,所谓的分布式计算,既是说把一个很负责计算或者一个计算量很大计算,拆分成由很多小型的计算同时进行,提高计算的效率,缩小时间成本。他是和集中式计算想对应的,分布式计算往往和计算机集群联系在一起,比较依赖计算资源。Hadoop比较官方的说法是,Hadoop是一个由Apache基金会所开发的分布式系统基础架构(百度百科)。简单的说,Hadoop就是分布式系统架构中的一款产品,也是其中功能实现比较齐全、使用最方便和最广泛的一款产品。
  Hadoop主要是实现了分布式文件系统(HDFS)及其对应分布式计算模型MapReduce。Hadoop可以部署在廉价的机器上,并且能保证高容错性,计算机集群又能保证高数据吞吐量,并且能充分利用MapReduce分布式计算模型实现大批量数据计算,使得很多企业越来越倾向于使用Hadoop来开发自己的产品。
  三、Hadoop的架构
  从Hadoop本身来说,如上述,Hadoop主要由两部分组成,分布式文件系统HDFS和分布式计算模型MapReduce,HDFS位于Hadoop的底层,主要提供文献存储功能,其上层是MapReduce,其数据计算来源主要是HDFS中的数据,计算完成的输出结果往往也会保存到HDFS中,也可以保存在本地,这个后面会详细介绍。
  HDFS
  从用户client的角度来说,HDFS就像是一个普通的文件系统,和Linux系统中的文件系统功能很相似,其文件操作也和linux系统的文件操作命令类似,所以,熟悉linux的朋友不会对Hadoop陌生,操作简介方便这也是Hadoop被开发者广泛接受的原因之一。
  但是从系统的角度来说,并不是那么简单,HDFS由很多台服务器共同组成,多台服务器共同完成分布式存储功能。文件数据在其中是以block的方式存储的,每一个block的大小默认是64M(可以修改配置更改),既是说一个大文件在存储时会被切割成64M大小的block,存储在HDFS中,结尾不足64M的部分独占一个block,并且每一个block都默认有三个备份(可以修改配置更改备份数量),即数据冗余。HDFS有很多优点:
  易扩展:由于是部署在集群上的,所以其容量会随着集群的扩张而扩展,如果配置高质量的集群管理,扩展到千万结点上也很轻松。
  (1)高吞吐量:由于其和集群的密切关系,并且扩展性非常好,所以HDFS可以很轻松的存储T级别或者更大量的数据,只要集群装得下。
  (2)高可靠性:由于HDFS采用的数据冗余策略,每一个block都有备份,既是出现部分服务器宕机,也不会影响数据的完整性。
  (3)高效性:由于其数据是分布式存储的,并且block可以在结点之间快速移动,保持结点平衡,所以很高效的支持分布式计算。
  (4)廉价:由于Hadoop的设计初衷就是在廉价的服务器上部署分布式计算,使得很多规模不大的小公司能够承担得起这方面的消费。
  缺点:
  HDFS不适合实时计算,其数据是一次写入,多次读取,并且数据访问时间延迟比较大,其设计初衷是高吞吐量,所以就牺牲了实时性。
  MapReduce
  MapReduce是Hadoop的另外一个核心技术:分布式计算,其实非常简单,就是利用HDFS分布式存储的特点,在此基础上在每一个block或者文件逻辑单元上建立一个子计算,牺牲计算空间来换取计算时间。其计算模型分为两个步骤,即Map(映射)和Reduce(集合),Map部分为每一条数据建立一个映射并进行简单的计算,Reduce部分将Map的输出结果收集起来,形成输出。具体内容以后会详细介绍。
  从集群的角度来说,Hadoop是由NameNode,DataNode,SecondaryNameNode和Client组成,如下图所示(图片来源于百度百科):
DSC0000.jpg

  NameNode是Hadoop集群的主节点,也是集群的控制节点,SecondaryNameNode是二级主节点,可以理解为NameNode的备份,主节点挂掉时,SecondaryNameNode补上,作为主节点。主节点本身并不存储大量数据,也不提供计算资源,只是为集群提供命名空间,其中保存的有文件映射,即Metadata,通过这种方式找到文件系统中的文件。DataNode是集群中的数据结点,用于保存大批量数据,和提供计算所需计算资源,MapReduce实际运行在DataNode中,NameNode只是控制作用。Client是客户端。集群中通信是以TCP/IP的方式来完成的。
  Hadoop的架构先介绍到这里,后面有需要会补充,谢谢!


运维网声明 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-628134-1-1.html 上篇帖子: hadoop之VMware下centos的系统安装及虚拟机网络配置(第一讲笔记) 下篇帖子: hadoop环境搭建及修改配置文件(第四讲)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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