大数据 hadoop关系

hadoop是一个开源的大数据分析软件,或者说编程模式。它是通过分布式的方式处理大数据的,因为开元的原因现在很多的企业或多或少的在运用hadoop的技术来解决一些大数据的问题,在数据仓库方面hadoop是非常强大的。但在数据集市以及实时的分析展现层面,hadoop也有着明显的不足,现在一个比较好的解决方案是架设hadoop的数据仓库而数据集市以及实时分析展现层面使用永洪科技的大数据产品,能够很好地解决hadoop的分时间长以搜索及其他的问题。
------------------------------

Henry和我正在进行一项检查大数据以及其真正意义的工作。大数据是一个流行语。和许多流行语一样,大数据这个词用得有些滥了,但是它包含了一些真正的有用性和技术。我们决定在这个主题上对大数据进行一番分析,努力挖掘其中的真实性以及它们对存储解决方案的意义。

  Henry用一个很好的介绍开始了这个系列。他对大数据的定义是我所见过的最好的定义。因此,我将重复这个定义:

  大数据是将数据变为信息然后变为知识的过程。

  这个定义很恰当,因为形容词“大”可以表达很多种意思。一些人将“大”想象成他们所专注的领域中的意思,而我们则专注于你可以在这个数据上做什么以及为什么。

  Henry和我决定用两个部分来进行这个讨论。Henry从最基本的硬件本身开始,然后向上讨论堆栈。更准确的是,他想知道的是硬件的哪些方面对大数据而言很重要,以及哪些技术是重要的。我则从大数据堆栈的顶端开始,也就是应用程序,然后向下讨论堆栈。我们将在中间某处会合,然后将我们的想法和评论归纳到最终的一篇文章中。

  从顶端开始并不容易,我原来的文章变得很长。因此,我们一起决定将它分成三个部分。第一个部分从讨论堆栈顶端的一些基本问题开始,包括将数据引入到存储系统以供使用的重要性(这个部分比大部分人所认识到的还要重要)。它还讨论了大数据最常见的工具——NoSQL数据库。第二个部分分析了8个使用于大数据并影响存储的NoSQL数据库类型。最后一个关于堆栈顶端的部分则将讨论Hadoop在大数据中的角色以及所有这些东西是如何联系到R这样的分析工具。

  与Hadoop的联系

  在以前的文章中所提到过的所有的数据库都需要一个地方来存储它们的数据,同时性能也是它们的一个重要组成部分。我们所提到过的一些工具与将Hadoop作为存储平台有联系。Hadoop实际上不是一个文件系统,实际上,它是一个软件框架,支持数据密集型http://www.aliyun.com/zixun/aggregation/13506.html">分布式应用程序,比如这里所讨论的一些以及以前的文章所讨论过的一些应用程序。在与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来存储数据。

本站所有文章全部来源于互联网,版权归属于原作者。本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(yanjing@alibaba-inc.com),我们收到后立即删除。
-------------------------------------------------------

大数据与云计算的关系是什么,Hadoop又如何参与其中,Nosql在什么位置,与BI又有什么关系?以下这篇文字讲他们的关系讲的非常清楚。

在谈大数据的时候,首先谈到的就是大数据的4V特性,即类型复杂,海量,快速和价值。IBM原来谈大数据的时候谈3V,没有价值这个V。而实际我们来看4V更加恰当,价值才是大数据问题解决的最终目标,其它3V都是为价值目标服务。在有了4V的概念后,就很容易简化的来理解大数据的核心,即大数据的总体架构包括三层,数据存储,数据处理和数据分析。类型复杂和海量由数据存储层解决,快速和时效性要求由数据处理层解决,价值由数据分析层解决。

数据先要通过存储层存储下来,然后根据数据需求和目标来建立相应的数据模型和数据分析指标体系对数据进行分析产生价值。而中间的时效性又通过中间数据处理层提供的强大的并行计算和分布式计算能力来完成。三层相互配合,让大数据最终产生价值。

数据存储层

数据有很多分法,有结构化,半结构化,非结构化;也有元数据,主数据,业务数据;还可以分为GIS,视频,文件,语音,业务交易类各种数据。传统的结构化数据库已经无法满足数据多样性的存储要求,因此在RDBMS基础上增加了两种类型,一种是hdfs可以直接应用于非结构化文件存储,一种是nosql类数据库,可以应用于结构化和半结构化数据存储。

从存储层的搭建来说,关系型数据库,NoSQL数据库和hdfs分布式文件系统三种存储方式都需要。业务应用根据实际的情况选择不同的存储模式,但是为了业务的存储和读取方便性,我们可以对存储层进一步的封装,形成一个统一的共享存储服务层,简化这种操作。从用户来讲并不关心底层存储细节,只关心数据的存储和读取的方便性,通过共享数据存储层可以实现在存储上的应用和存储基础设置的彻底解耦。

数据处理层

数据处理层核心解决问题在于数据存储出现分布式后带来的数据处理上的复杂度,海量存储后带来了数据处理上的时效性要求,这些都是数据处理层要解决的问题。

在传统的云相关技术架构上,可以将hive,pig和hadoop-mapreduce框架相关的技术内容全部划入到数据处理层的能力。原来我思考的是将hive划入到数据分析层能力不合适,因为hive重点还是在真正处理下的复杂查询的拆分,查询结果的重新聚合,而mapreduce本身又实现真正的分布式处理能力。

mapreduce只是实现了一个分布式计算的框架和逻辑,而真正的分析需求的拆分,分析结果的汇总和合并还是需要hive层的能力整合。最终的目的很简单,即支持分布式架构下的时效性要求。

数据分析层

最后回到分析层,分析层重点是真正挖掘大数据的价值所在,而价值的挖掘核心又在于数据分析和挖掘。那么数据分析层核心仍然在于传统的BI分析的内容。包括数据的维度分析,数据的切片,数据的上钻和下钻,cube等。

数据分析我只关注两个内容,一个就是传统数据仓库下的数据建模,在该数据模型下需要支持上面各种分析方法和分析策略;其次是根据业务目标和业务需求建立的KPI指标体系,对应指标体系的分析模型和分析方法。解决这两个问题基本解决数据分析的问题。

传统的BI分析通过大量的ETL数据抽取和集中化,形成一个完整的数据仓库,而基于大数据的BI分析,可能并没有一个集中化的数据仓库,或者将数据仓库本身也是分布式的了,BI分析的基本方法和思路并没有变化,但是落地到执行的数据存储和数据处理方法却发生了大变化。

谈了这么多,核心还是想说明大数据两大核心为云技术和BI,离开云技术大数据没有根基和落地可能,离开BI和价值,大数据又变化为舍本逐末,丢弃关键目标。简单总结就是大数据目标驱动是BI,大数据实施落地式云技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值