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

[经验分享] 初探Hadoop

[复制链接]

尚未签到

发表于 2015-7-13 10:44:25 | 显示全部楼层 |阅读模式
  一.引言
  Hadoop是Apache开源组织在2005年推出的一个分布式计算开源框架,至今已在许多大型网站上得到应用,如:Yahoo就是一个例子。Hadoop非常适用于海量数据存储与分析,它的特点是:使用起来配置简单,数据安全,硬件投入成本低。
  

  二.Hadoop的核心设计
  Hadoop的核心设计是:HDFS+MapReduce。
  1.HDFS
  HDFS是Hadoop使用的分布式文件系统,它是具有高度容错性的系统,适合部署在廉价的机器上。另外HDFS能提供高吞吐量的数据访问,所以非常适合大规模数据集上的应用。
  (1)HDFS的前提与设计目标
  关于这个话题,《Hadoop分布式文件系统:架构和设计》一文讲得非常详细(hyddd极力推荐此文:>),这里简单说下HDFS最初的想法。
  【1】硬件错误
  HDFS有成千上万的服务器构成,硬件错误是非常平常的事,因此错误检测和快速、自动的恢复是HDFS最核心的架构目标。
  【2】流式数据访问
  HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。
  【3】大规模数据集
  HDFS一开始设计就着眼于大规模的数据集的应用。
  【4】简单的一致性模型
  HDFS的文件访问模型是:“一次写入多次读取”。这种模型简化了数据一致性的问题,并且使提高吞吐量成为了可能。“MapReduce”和“网络爬虫”都非常适合这种模型,其实这也就是为什么上面说“Hadoop非常适用于海量数据存储与分析”!
  【5】移动计算比移动数据更划算
  一个应用请求的计算,离它操作的数据越近就越高效,在数据达到海量级别的时候更是如此。将计算移动到数据附近,比之将数据移动到应用所在显然更好。显然,HDFS就是为“移动计算”做准备。
  【6】异构软硬件平台间的可移植性
  HDFS在设计的时候就已经考虑到移植性的问题。
  (2)HDFS架构
  下面是HDFS的架构图:

  HDFS采用Master/Slave架构,一个HDFS集群是由一个Namenode和N个Datanodes组成。
  1.2Namenode
  Namenode是一个中心服务器,它的工作包括:
  (1)管理文件系统的namespace
  (2)外界对本系统存储的文件的访问,比如:打开,关闭,重命名,删除……,并把需要的数据块映射到具体Datanode节点上。
  2.Datanode
  Datanode一般是子节点,负责管理本节点的存储。实际上,一个大文件往往会分割成N个小文件,然后存储到不同的Datanode节点上,而相应的Datanode就会负责管属于它的这些小文件。
  3.用户访问流程
  用户通过访问HDFS的namespace实现对文件系统访问,在Namenode的统一调度下,实现用户的各种操作,而这些操作最终都会落实在Datanode上。
  
  2.MapReduce
  MapReduc是Google的一项重要技术,它是一个编程模型,用以进行大数据量的计算。hyddd觉得,它的价值很大一部份体现在:简化并行计算编程模型,降低了开发并行应用的入门门槛。
  MapReduce源于这个模型的两大核心操作:Map和Reduce。顾名思义,“Map(展开)”就是将一个任务分解成为多个任务。而“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。而作为开发人员,你可以用JAVA去实现Map和Reduce操作。
  

  三.Hadoop的其他子项目
  Hadoop还包括:Hive,ZooKeeper……等子项目,详细可到官方网站:http://hadoop.apache.org/查询。
  这里值得一提的是Hive。
  Hive
  Hive是facebook数据团队基于hadoop开发的数据仓库封装。以数据库的方式去管理HDFS,极大地简化了MapReduce统计功能的实现
  优点:可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,数据表分区方式十分适合HDFS数据管理,在简单应用中使用非常方便!
  缺点:目前版本不稳定,有些bug,SQL语句还不够强大。

  

  四.参考资料
  【1】Hadoop分布式文件系统:架构和设计
  【2】http://www.hadoop.org.cn/
  【3】http://hadoop.apache.org/
  【4】http://cn.hadoop.org/
  【5】http://rdc.taobao.com/blog/dw/archives/category/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-86230-1-1.html 上篇帖子: ZooKeeper学习第五期--ZooKeeper管理分布式环境中的数据 下篇帖子: hadoop lzo应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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