码迷,mamicode.com
首页 > 其他好文 > 详细

想学习大数据却搞不懂Hadoop?阿里云工程师带你三步解读Hadoop!

时间:2019-01-30 17:15:09      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:red   分析   文件属性   巴巴   做什么   键值   问题   数据   自动   

一、什么是Hadoop?

Google发表了两篇论文:描述如何以分布式方式存储海量数据的Google文件系统和描述如何处理大规模分布式数据的MapReduce:大型集群上的简化数据处理。受这两篇论文的启发,DougCutting实现了这两篇基于OSS(开源软件)的论文的原则,Hadoop诞生了。

Hadoop是一个用于分布式存储和处理大型数据的开源平台。Hadoop作为一个大规模的分布式数据处理平台,已经成为许多程序员的重要技能。

技术分享图片

二、Hadoop能做什么?

大数据时代已经到来,给我们的生活、工作和思维方式带来了变化。如何在大数据背后寻找价值既是一个机遇也是一个挑战。无论是财务数据,电子商务数据,社会数据,游戏数据…这些数据的规模、结构和增长速度给传统的数据存储和处理技术带来了巨大的挑战。幸运的是,Hadoop的诞生和它所建立的生态系统为大型数据的存储、处理和分析带来了曙光。

无论是像谷歌、雅虎这样的知名外国公司。微软、亚马逊、易趣、facebook、twitter、linkedin、cloudera、hortonworks等,或中国移动、阿里巴巴、华为、腾讯、百度、网易、京东商城等国内知名企业,均采用Hadoop及相关技术解决大规模数据问题,以满足公司需求。需求并创造商业价值。

例如:雅虎!垃圾邮件识别与过滤,用户特征建模系统;亚马逊(Amazon)协同过滤推荐系统;Facebook网络日志分析;Twitter、LinkedIn网络搜索系统;淘宝商品推荐系统,淘宝在自定义过滤功能中搜索…这些应用程序使用Hadoop和相关技术。

“Hadoop能做什么?”总结如下:

  • 1、搜索引擎:这是DougCutting的Hadoop设计的初衷,为了快速索引大型网页;
  • 2、大数据存储:利用Hadoop的分布式存储能力,如数据备份、数据仓库等。
  • 3、大数据处理:利用Hadoop的分布式处理能力,如数据挖掘、数据分析等。
  • 4、科学研究:Hadoop是一个分布式开源框架,对分布式系统有很大的参考价值。

很多小伙伴,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习Qun:775908246,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系。

技术分享图片

三、具有Hadoop核心的分布式文件系统HDF

Hadoop分布式文件系统(HDFS)是Hadoop的核心模块之一。它主要解决了Hadoop的大数据存储问题,其思想来源是Google的文件系统gfs。HDF的主要特点是:

保存多个拷贝,并提供容错机制,拷贝丢失或停机自动恢复。默认情况下保存三份副本,在廉价机器上运行。

适用于大数据处理。HDFS默认将文件分为块,64M是块。然后块键值对存储在HDFS上,键值对的映射存储在内存中。如果有太多的小文件,内存负担将很重。

HDF中的两个重要角色:

  • 1、管理文件系统的命名空间。
  • 2、记录每个数据节点上每个文件数据的位置和复制信息。
  • 3、协调客户机对文件的访问。
  • 4、记录命名空间中的更改或空间的省属性中的更改。
  • 5、namenode使用事务日志记录HDFS元数据中的更改。使用图像文件存储文件系统名称空间,包括文件映射、文件属性等。

从社会学角度看,namenode是hdfs的管理者,起着管理、协调和操纵的作用。

  • 1、负责物理节点的存储管理。
  • 2、一次写,多次读(不做修改)。
  • 3、文件由数据库组成。通常,数据块的大小为64MB。
  • 4、数据尽可能地移动到每个节点。

从社会学的角度来看,datanode是hdfs的工作人员。它根据namenode的命令工作,并将工作进度和问题反馈给namenode。

技术分享图片

客户机如何访问HDFS中的文件?具体流程如下:

  • 1、首先,从namenode获取组成文件的数据块的位置列表。
  • 2、接下来,我们知道根据位置列表存储数据块的数据节点。
  • 3、最后,访问datanode获取数据。
  • 注:名称节点不参与数据的实际传输。

在数据存储系统中,数据存储的可靠性是非常重要的。HDFS如何保证其可靠性?主要采用以下机制:

  • 1、冗余复制策略,即所有数据都有副本,副本数量可以在hdfs-site.xml复制因子中设置。
  • 2、机架策略,即HDFS的“机架感知”,通常在机架中存储一份拷贝,在其他机架中存储其他拷贝,这样可以防止机架故障时数据丢失,并提供带宽利用率。
  • 3、心跳机制,也就是说,namenode定期从datanode接收心跳信号和快速报告,不能按时发送心跳的datanode将被标记为停机,不会给出任何I/O请求。如果由于数据节点的故障而导致副本数量减少,并且低于预先设置的阈值,则namenode将检测这些数据块并在适当的时间复制它们。
  • 4、安全模式,名称节点启动时将进入“安全模式”阶段。
  • 5、校验和。客户端通过校验和获取数据,发现数据块是否损坏,从而判断是否读取拷贝。
  • 6、“回收站”,删除文件,将首先转到“回收站/垃圾箱”,它可以快速响应文件。
  • 7、元数据保护、镜像文件和事务日志是名称节点的核心数据,可以配置为多个副本。
  • 8、快照支持在某个时间点存储图像,它允许 数据在需要时返回到该时间点的状态。

想学习大数据却搞不懂Hadoop?阿里云工程师带你三步解读Hadoop!

标签:red   分析   文件属性   巴巴   做什么   键值   问题   数据   自动   

原文地址:http://blog.51cto.com/14189799/2347911

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!