Hadoop和大数据的关系分析

2019-03-28 13:29|来源: 网络

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来存储数据。

相关问答

更多
  • 大数据分析工具有哪些,有什么特点? 答:1. 开源大数据生态圈 Hadoop HDFS、Hadoop MapReduce, HBase、Hive 渐次诞生,早期Hadoop生态圈逐步形成。 开源生态圈活跃,并免费,但Hadoop对技术要求高,实时性稍差。
  • Hadoop,Spark和Storm是目前最重要的三大分布式计算系统,Hadoop常用于离线的复杂的大数据处理,Spark常用于离线的快速的大数据处理,而Storm常用于在线的实时的大数据处理。 简单说,Hadoop或者说Hadoop生态圈,是为了解决大数据应用场景而出现的,它包含了文件系统、计算框架、调度系统等,Spark是Hadoop生态圈里的一种分布式计算引擎。
  • hadoop是一个开源的大数据分析软件,或者说编程模式。它是通过分布式的方式处理大数据的,因为开元的原因现在很多的企业或多或少的在运用hadoop的技术来解决一些大数据的问题,在数据仓库方面hadoop是非常强大的。但在数据集市以及实时的分析展现层面,hadoop也有着明显的不足,现在一个比较好的解决方案是架设hadoop的数据仓库而数据集市以及实时分析展现层面使用永洪科技的大数据产品,能够很好地解决hadoop的分时间长以及其他的问题。
  • 因为当数据非常巨大时,如 XXX TB 甚至 XXX PB, 区区一台服务器就很难处理过来了。 所以就需要使用 N 台服务器,组成一个群集,共同处理庞大的数据,这样就能极大提升效率了。 Hadoop其实就是一个分布式的文件系统,数据会分布到 N 台服务器中,一旦需要处理数据,则 N 台服务器共同进行处理,再把各个中间结果汇总成最后的结果。 当然,这需要特别的算法,不能再使用传统的算法了,这就要使用 MapReduce 框架了。 我们万能的淘宝就是使用了 hadoop 的,你想想上年双十一那 一千亿交易额,其 ...
  • 目前大部分人都是用Hadoop这个大数据分析工具呢吧,好像还有别的新工具。但是Hadoop是用的最多的,也是最实用的大数据分析工具了。所以,还是用这个比较好的,大数据培训柠檬学院。
  • 学习这个了会比较好,也可以不学这个,学别的替代Hadoop,看你之后想往哪一方面发展
  • hadoop是一个开源的大数据分析软件,或者说编程模式。它是通过分布式的方式处理大数据的,因为开元的原因现在很多的企业或多或少的在运用hadoop的技术来解决一些大数据的问题,在数据仓库方面hadoop是非常强大的。但在数据集市以及实时的分析展现层面,hadoop也有着明显的不足,现在一个比较好的解决方案是架设hadoop的数据仓库而数据集市以及实时分析展现层面使用尚学堂的大数据产品,能够很好地解决hadoop的分时间长以及其他的问题。看一下肖斌hadoop教学视频
  • hadoop就是基于Mapreduce框架的分布式平台,一般安装在Linex上面,也可以使用虚拟机在windows下使用。分布式程序可以在多台机器上生成多个节点,每个节点运行程序的一部分,然后合并起来,比单节点运行效率高很多。 推荐本书《hadoop in action》(hadoop实战),还有论文可以看很多数据挖掘会议的论文,现在有很多人研究。我的毕业论文就是写这个
  • CDA数据分析研究院大数据中心研发Hadoop大数据分析师应用课程,零基础学习,每位学员亲自架构真实大数据环境,感觉特别有成就感。从数据分析基础、JAVA语言入门和linux操作系统入门知识学起,系统介绍Hadoop、HDFS、MapReduce和Hbase等理论知识和hadoop的生态环境,详细演示hadoop三种模式的安装配置,以案例的形式,重点讲解基于mahout项目的大数据分析之聚类、分类以及主题推荐。区别于普通的JAVA程序员,重点基于Hadoop架构的大数据分析思想及架构设计,通过演示实际的大数 ...