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
相关推荐
基于Hadoop的大数据应用分析包括大数据背景介绍、Hadoop体系架构、大数据产品分析、大数据和云计算的关系等。 大数据应用建议: 大数据应用建议包括大数据背景介绍、Hadoop体系架构、大数据产品分析、大数据和...
基于Hadoop的大数据平台架构规划方案旨在构建一个能够...总之,基于Hadoop的大数据平台架构规划需要考虑数据的获取、存储、管理、分析和使用,以及如何通过这些过程实现数据的价值转化,为企业决策提供强有力的支持。
在"超越Hadoop的大数据技术:用Spark 和Shark进行基于内存的实时大数据分析.pdf"这本书中,读者可以期待学习到以下关键知识点: 1. **Spark架构**:了解Spark的基本组件,包括Spark Core、Spark SQL、Spark ...
随着市场规模的不断扩大,大数据应用的潜力将进一步释放,尤其是在预测分析、客户关系管理、欺诈检测和物联网等领域。 总的来说,Hadoop及其生态系统为企业提供了处理和利用大数据的强大工具,帮助企业挖掘隐藏的...
- 大数据在众多领域如商业、教育、工业、交通和医疗中发挥重要作用,这些领域通过大数据分析获取商业洞察、教育研究、生产优化、交通管理和疾病诊断等方面的改进和创新。 4. Hadoop核心组件与生态圈组件及其作用 ...
通过使用Java程序爬取出真实的大数据就业岗位数据,再结合Hadoop技术进行统计分析,最后使用可视化技术呈现大数据技术岗位不同地区招聘的薪资、数量、职业技能需求等详细信息,为各应聘者做参考和决策分析。...
Hadoop和大数据仍然很年轻,硬件趋势将继续发展,Hadoop从最初的两名开发者到现在拥有数百名贡献者,预示着巨大的社区驱动力量和广阔的发展空间。Doug Cutting鼓励更多的人加入Hadoop社区,共同推动大数据技术的发展...
本主题将深入探讨如何构建一个基于Hadoop的大数据离线分析系统,并着重讲解Hive和Sqoop的安装与配置。Hadoop是分布式计算框架,而Hive是基于Hadoop的数据仓库工具,用于数据 warehousing 和 SQL-like 查询。另一方面...
例如,可以使用Hadoop进行数据的初步整合和批量处理,而在需要实时分析或者复杂查询时,可以结合使用NoSQL数据库或者传统的关系数据库管理系统。同时,也需要考虑引入数据仓库、流处理系统以及数据集成和质量管理...
【Hadoop大数据开发基础-PPT课件】是一个涵盖了Hadoop生态系统入门知识的教育资源,适合初学者和希望深入了解大数据处理技术的IT专业人士。本课件主要围绕Hadoop框架展开,包括其设计原理、核心组件以及实际应用。...
由于Hadoop对大数据的管理和分析具有强大的支持能力,它已成为大数据生态系统中不可或缺的一部分。Hadoop的核心组件包括Hadoop Distributed File System(HDFS)用于存储大文件,以及MapReduce用于处理数据。随着...
4. **数据探索**:通过Hive或Spark SQL进行初步的数据分析和探索。 5. **深度分析**:使用Spark或其他工具进行复杂的数据挖掘和机器学习任务。 6. **结果可视化**:将分析结果通过Tableau、QlikView等工具进行可视...
在电商领域,可视化技术可以帮助企业更清晰地分析和理解消费者行为,从而制定更加精准的市场策略。 通过上述知识点的深入探讨,电商企业可以更好地利用大数据技术来提升业务水平,相关技术人员也可以根据这些知识来...
Hadoop大数据云平台是当前大数据处理领域中的核心组件,它为海量数据的存储和处理提供了高效、可扩展的解决方案。这个压缩包包含了关于Hadoop云平台的系统架构、搭建过程及理论的详细资料,让我们一起来深入探讨这些...
【大数据 / Hadoop 初级学习】:在进入Hadoop的大数据世界之前,我们需要搭建一个基本的集群环境,这是所有Hadoop学习者的第一步。...接下来,你可以开始探索Hadoop的数据存储、处理和分析能力,逐步深入大数据的世界。
【Hadoop大数据技术原理与应用】是现代大数据处理的核心框架之一,它由Apache软件基金会开发,主要用于处理和存储海量数据。Hadoop的出现解决了传统单机系统无法应对的大量非结构化和半结构化数据的问题,它以分布式...
本文将深入探讨Hadoop这一关键的大数据处理框架,以及大数据技术和相关应用的发展。 Hadoop是Apache基金会开发的一个开源项目,它是应对大数据挑战的核心工具之一。Hadoop的设计理念是分布式存储和处理,能够高效地...
【Hadoop大数据学习PPT】是一份全面介绍大数据技术的教育资源,主要涵盖了Hadoop生态系统中的核心组件,包括HDFS(Hadoop Distributed File System)、HBase、Hive以及Impala和 Pig。这些组件在大数据处理和分析领域...
### Hadoop大数据基础学习知识点概览 #### 一、Hadoop简介 1. **定义**: - Hadoop是一个能够对大量数据进行分布式处理的软件框架。 - 它能够可靠地存储和处理PB级别的数据。 2. **背景**: - 随着互联网的...