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

[经验分享] Hadoop和大数据的关系分析

[复制链接]

尚未签到

发表于 2016-12-9 07:13:20 | 显示全部楼层 |阅读模式
  Henry和我正在进行一项检查大数据以及其真正意义的工作。大数据是一个流行语。和许多流行语一样,大数据这个词用得有些滥了,但是它包含了一些真正的有用性和技术。我们决定在这个主题上对大数据进行一番分析,努力挖掘其中的真实性以及它们对存储解决方案的意义。
  Henry用一个很好的介绍开始了这个系列。他对大数据的定义是我所见过的最好的定义。因此,我将重复这个定义:
  大数据是将数据变为信息然后变为知识的过程。
  这个定义很恰当,因为形容词“大”可以表达很多种意思。一些人将“大”想象成他们所专注的领域中的意思,而我们则专注于你可以在这个数据上做什么以及为什么。
  Henry和我决定用两个部分来进行这个讨论。Henry从最基本的硬件本身开始,然后向上讨论堆栈。更准确的是,他想知道的是硬件的哪些方面对大数据而言很重要,以及哪些技术是重要的。我则从大数据堆栈的顶端开始,也就是应用程序,然后向下讨论堆栈。我们将在中间某处会合,然后将我们的想法和评论归纳到最终的一篇文章中。
  从顶端开始并不容易,我原来的文章变得很长。因此,我们一起决定将它分成三个部分。第一个部分从讨论堆栈顶端的一些基本问题开始,包括将数据引入到存储系统以供使用的重要性(这个部分比大部分人所认识到的还要重要)。它还讨论了大数据最常见的工具——NoSQL数据库。第二个部分分析了8个使用于大数据并影响存储的NoSQL数据库类型。最后一个关于堆栈顶端的部分则将讨论Hadoop在大数据中的角色以及所有这些东西是如何联系到R这样的分析工具。
  与Hadoop的联系
  在以前的文章中所提到过的所有的数据库都需要一个地方来存储它们的数据,同时性能也是它们的一个重要组成部分。我们所提到过的一些工具与将Hadoop作为存储平台有联系。Hadoop实际上不是一个文件系统,实际上,它是一个软件框架,支持数据密集型分布式应用程序,比如这里所讨论的一些以及以前的文章所讨论过的一些应用程序。在与MapReduce在一起协同工作的时候,Hadoop可以成为一个针对数据密集型应用程序的非常有效的解决方案。
  Hadoop File System(HDFS:Hadoop文件系统)是一个发端于谷歌文件系统(GFS:Google File System)的开源文件系统。但是,GFS是谷歌专用的。Hadoop是用Java编写的,是一个分布式文件系统,是真正的元文件系统——换句话说,是一个可以作用于底层文件系统顶端的文件系统。它的设计旨在成为一个容错的文件系统,让数据的副本可以存储在文件系统内不同的地点上,因此从错误的数据副本或宕机的服务器中恢复数据就变得相当容易。不过,这些副本也可以用于改善性能。

  Hadoop的基本构建块就是所谓的“datanode”(数据节点)。这是一个一台服务器与一些存储和网络的组合。存储通常是服务器内部的或直接 连接到服务器的存储(DAS)。每个datanode使用专门的面向HDFS的块协议来在网络(以太网)上提供数据。一定数量的datanode分布在多 个机架上,而每个datanode可以通过它所在机架被部分识别。Hadoop还有元数据服务器,即所谓的“Namenode”(命名节点)。 Namenode同时也是HDFS的管理节点。此外,HDFS还有二级Namenode,不过它不是故障复原元数据服务器,而是用于其他文件系统任务,比 如快照主Namenode的目录信息以帮助减少宕机时间——如果一个Namenode发生故障的话。由于只有一个Namenode,它可能会成为一个潜在 的瓶颈或HDFS的单故障点。
  HDFS的一个重要特点就是数据复制到多个datanode上以帮助提高弹性。HDFS缺省情况下会将三个数据副本存储在不同的datanode 上。两个副本是在同一个机架上,另一个在不同的机架上(因此,即使一个机架坏了,你还可以访问你的数据)。你可以在那些拥有所需数据的datanode上 ——缺省情况下拥有数据副本的三个datanode之一——运行制定好的任务(注意,这些datanode在存储数据和提供数据的同时也可以运行任务)。
  这就是许多人所指的:“将任务移到数据上,而不是将数据移到任务上”。这样做可以减少数据迁移,减少网络负担,因为数据不用迁移来迁移去以运行任 务。一旦任务开始运行,所有的数据访问都是本地进行的,因此不需要datanode条带化或使用多个数据服务器来满足并行数据访问。Hadoop的并行性 体现在应用程序的性能上,同一个应用程序的多个副本可以被同时运行并访问不同的数据集。此外,由于你有三个数据副本,你可以在同一时间运行三个人物来访问 同一个文件,因此性能也得到了改善。
  在后端,datanode可以和其他datanode通信,使用RPC(远程过程调用)来执行一系列任务:
  在遵守数据复制规定的前提下,实现datanode之间的容量均衡;
  互相之间比较文件,以便用正确的副本覆盖损坏的文件副本;
  检查数据副本的数量,如果必要,增加额外副本;
  需要注意的是HDFS不是一个POSIX(可移植操作系统接口)兼容文件系统,这主要是因为性能可以提高。
  如果你使用Java API(应用程序编程接口)、Thrift API、命令行界面或在HTTP上通过HDFS-UI界面浏览,在HDFS中访问数据还是相当简单的。除了这个,在操作系统上直接载入HDFS是不行的。唯一的解决方案是使用Linux FUSE客户端来加载文件系统。
  记住,Hadoop是基于谷歌文件系统(GFS)的,后者是用来支持谷歌的BigTable,而BigTable是面向列的数据库。因此,Hadoop更可能支持前文所提到的那些Column Store工具。在此前提到的工具中,许多工具已经开发了面向Hadoop的界面,因此它们可以利用Hadoop来存储数据。
  http://www.hadoop.so/news/2012/0814/17.html

运维网声明 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-311563-1-1.html 上篇帖子: Hadoop in China2011参会总结 下篇帖子: hadoop 本地文件复制到hdfs目录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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