A. 大数据所谓的分布式运算是指什么
所谓的分布式计算,其实就是将大型计算任务进行拆解,使之变成小型计算任务,从版而可以不局权限于单机处理,而可以分布到若干机器汇总进行处理。其价值,就是解决了庞大数据无法在单机上运行处理或者说单机运行处理效率较低的情况。
B. 大数据的分布式数据库的发展趋势如何(分布式数据库的优点)
现在大数据是一个十分火热的技术,这也使得很多人都开始关注大数据的任何动态,因为大数据在某种程度上来说能够影响我们的生活。在这篇文章中我们就给大家介绍一下大数据的分布式数据库的发展趋势,希望这篇文章能够帮助大家更好理解大数据的分布式数据库的发展趋势。
其实不论是Hadoop还是分布式数据库,技术体系上两者都已经向着计算存储层分离的方式演进。对于Hadoop来说这一趋势非常明显,HDFS存储与YARN调度计算的分离,使得计算与存储均可以按需横向扩展。而分布式数据库近年来也在遵循类似的趋势,很多数据库已经将底层存储与上层的SQL引擎进粗芹行剥离。传统的XML数据库、OO数据库、与pre-RDBMS正在消亡;新兴领域文档类数据库、图数据库、Table-Style数据库与Multi-Model数据库正在扩大自身影响;传统关系型数据库、列存储数据库、内存分析型数据库正在考虑转型。可以看到,从技术完整性与成熟度来看,Hadoop确实还处于相对早期的形态。直到今天,很多技术在很多企业应用中需要大量的手工调优才能够勉强运行。同时,Hadoop的主要应用场景一直以来面向批处理分析型业务,传统数据库在线联机处理部分不是其主要的发展方向。同时Hadoop技术由于开源生态体系过于庞大,同时参与改造的厂商太多,使得用户很难完全熟悉整个体系,这一方面大大增加了开发的复杂度,提升了用户使用的难度,另一方面则是各个厂商之间维护不同版本,使得产品的发展方向可能与开源版本差别逐渐加大。
而分布式数据库领域经历了几十年的磨练,传统RDBMS的MPP技术早已经炉火纯青,在分类众多的分布式数据库中,其主要发展方向基本可以分为“分布式联机数据库”与“分布式分析型数据库”两种。对比Hadoop与分布式数据库可以看出,Hadoop的产品发展方向定位,与分布式数据库中列存储数据戚枣库相当重叠而在高并发联机交易场景,在Hadoop中除了HBase能够勉强沾边以外,分布式数据库则占据绝对的优势。目前,从Hadoop行业的发展来看,很多厂商而是将其定位改变为数据科学与机器学习服务商。因此,从商业模式上看以Hadoop分销的商业模式基本已经宣告结束,用户已经体验到维护整个Hadoop平台的困难而不愿被强迫购买整个平台。大量用户更愿意把原来Hadoop的部件拆开灵活使用,为使用场景岩仔毕和结果买单,而非平台本身买单。另外一个细分市场——非结构化小文件存储,一直以来都是对象存储、块存储,与分布式文件系统的主战场。如今,一些新一代数据库也开始进入该领域,可以预见在未来的几年中,小型非结构化文件存储也可能成为具备多模数据处理能力的分布式数据库的战场之一。
我们在这篇文章中给大家介绍了很多有关大数据分布数据库的发展前景,通过这篇文章我们不难发现数据库的发展是一个极其重要的内容,只有搭建分布式数据库,大数据才能够更好地为我们服务。
C. 大数据分析一般用什么工具分析_大数据的分析工具主要有哪些
在大数据处理分析过程中常用的六大工具:
1、Hadoop
Hadoop是一个能够对大量数据进行分布式处理的软件框架。但是Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理PB级数据。此外,Hadoop依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
2、HPCC
HPCC,HighPerformanceComputingand(高性能计算与通信)的缩写。1993年,由美国科学、工程、技术联邦协调理事会向国会提交了“重大挑战项目:高性能计算与通信”的报告,也就是被称为HPCC计划的报告,即美国总统科学战略项目,其目的是通过加强研究与开发解决一批重要的科学与技术挑战问题。HPCC是美国实施信息高速公路而上实施的指槐芦计划,该计划的实施将耗资百亿美元,其主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆比特网络技术,扩展研究和教育机构及网络连接能力。
3、Storm
Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣明余。
4、ApacheDrill
为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会近日发起了一项名为“Drill”的开源项目。ApacheDrill实现了Google'sDremel.
据Hadoop厂商MapR公司产品经理TomerShiran介绍,“Drill”已经作为Apache孵化器项目来运作,将面向全球软件工程师持续推广。
5、RapidMiner
RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。
6、PentahoBI
PentahoBI平台不同于传统的BI产品,它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。
1、大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。
2、这些数据集收集自各种各样的来源:
a、传感器、气候信息、公开的信息、如杂志、报纸、文章。
b、大数据产生的其他例子包括购买交易记录、网络日志、病历、事监控、视频和图像档案、及大型电子商务。
c、大数据分析是在研究大量的数据的过程中寻找模式,相关性和其他唯带有用的信息,可以帮助企业更好地适应变化,并做出更明智的决策。
D. 大数据的分布式数据库技术的对比(主流分布式数据库)
分布式数据库是一个逻辑数据库,它的物理数据库在地理位置上分布在多个数据库管理系统的计算机网络中,这些数据库系统构成了分布式的数据库管理系统
在分布式数据库管理系统中,每台计算机上的用户在访问数据库时并不感到他使用的漏伍数据在物理上不存储在自己的计算机中,而是由分布式数据库系统由网络从其它机器中传输过来
因此,对每一用户来说,看到的都是一个统一的概念模式
分布式数据库系统的主要特点是:(1)具有较高的可靠性,当系统中一台机器发生故障时、不会导致整个系统的破坏
当故障排除后,分布式数据库系统可将故障期间的数据库加以恢复修改段搜兄
(2)分散了工作负荷,使大量的处理均匀分担
(3)便于实现系统的扩充
分布式数据库系统是计算机握袭通讯和数据库技术相结合的产物,是非常有代表性的数据库技术发展方向之一
E. 大数据解决方案_大数据的应用解决方案
目前常用的大数据解决方案包括以下几类
一、Hadoop。Hadoop是颂斗盯一个能够对大量数据进行分布式处理的软件框架。但是Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。此外,Hadoop依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
二、HPCC。HPCC,HighPerformanceComputingand(高性能计算与通信)的缩写。HPCC主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆比特网络技术,扩展研究和教育机构及野和网络连接能力。
三、Storm。Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm支持许多种编程语言,使用起来非常有趣。Storm由Twitter开源而来
四、ApacheDrill。为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会近日发起了一项名为“Drill”的开源项目。该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取Web文档、跟踪安装在AndroidMarket上的应用程序数销败据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。
F. 面试题-关于大数据量的分布式处理
面试题-关于大数据量的分布式处理
题目:生产系统每天会产生一个日志文件F,数据量在5000W行的级别。文件F保存了两列数据,一列是来源渠道,一列是来源渠道上的用户标识。文件F用来记录当日各渠道上的所有访问用户,每访问一次,记录一条。
请问如何快速计算出各渠道上新增的用户?
问题分析:首先本次面试的是有关于分布式数据处理以及数据分析的职位,所以相关的面试题目可能会偏向于使用分布式的思想去解决。但无奈本人当时反应太慢,实在没向分布式处理方向思考。
方案一:
本题最直观的一个处理方法就是,直接拿着当日新增的5000W条访问记录一条一条的去匹配历史访问用户。若存在历史访问记录,则忽略;若不存在访问记录,则保存为新增记录。很明显,假若历史访问用户有2亿条记录,则需要和2亿条数据比较5000W次。比较次数可想而知。
由于本人一直在做基于数据库的数据处理工作,很容易就想到将历史数据保存在数据库的一张表中,并对来源渠道和用户标识这两个字段建立索引,然后遍历日志文件F(5000W次)。根据日志文件F中的每一行去匹配数据库中的历史访问记录。由于历史数据表有索引,单次查询的速度也非常快。但是需要5000W次的数据库查询,很明显效率低下。
方案二:
既然多次单一查询无法满足要求,于是可以先通过一种数据导入技术将当日新增数据导入到数据库的另一张表中,并和历史数据做左外关联。若能关联成功,则表示此用户已存在;若关联失败,则表示此用户不存在。
此方案暂且不说5000W条记录的大表与2亿条记录的大表关联效率有多高以及使用到的数据库缓冲区的资源有多少,单就5000W条访问记录导入数据库表,都是一个不小的时间花费。
方案三:
很明显,面试时方案二的回答并未达到面试官的预期,最初被遗憾的PASS掉。一家很有潜力,自己很看好的公司,并计划做为自己未来发展方向的职位,就这样丢下我,扬长而去了。
这几天又看了下分布式相关的介绍,突然想到这道题。一下子醒悟过来,其实还是因为对题目要考察的点分析得不够透彻。当时以为只是仅仅考数据处理效率的一个题目,其实考的是一种将复杂问题拆分为简单问题的拆分思想。了解到这一层,一种新的方式立马在脑海中浮现出来。具体如下:
假如现在有N(N>=2)个存储块,并存在一个函数f(来源渠道,用户标识),对于给定的一组(来源渠道,用户标识),总能将其分发到一个固定的存储块内。那么可以使用此函数将5000W行访问记录尽量均匀的分发至N个存储块上,并同时使用此函数将历史访问记录也分发至这些存储块上。由于相同的一组记录,肯定会被分配至同一个存储块,所以比较时,只需要分别比较各个存储块上当日新增记录与历史访问用户,然后将N个存储块上比较的结果汇总,即可得到最终结果。
假设历史访问用户数据已通过函数f(来源渠道,用户标识)被分发至了N个历史文件H1、H2、…、HN。则详细处理步骤如下:
1、将F中的内容使用函数f(来源渠道,用户标识),分发至文件F1、F2、…、FN内。(可开M(M>=2)个并行,且若N-M越大,同时向同一文件写入数据的概率越小)
2、将文件F1、F2、…、FN内的访问记录去重。(可开N个并行分别处理对应的N个文件)。
3、将文件Fn(1=<n<=N)去重后的结果与对应的历史文件Hn比较得出新增用户结果Rn。(可开N个并行分别处理对应的N个文件且当N足够大时,实际要处理数据的量级就会相当小)。
4、合并第3步得到的结果R1、R2、…、RN即可得到当日新增用户。(可并行)
5、为使历史数据文件H1、H2、…、HN中的数据最全,将结果R1、R2、…、RN分别写入对应的历史文件中。(可并行)
本方案主要有以下优点:
1、数据的分发、处理、合并都可并行处理,明显提高了处理效率。
2、由于每个存储块上的新增数据,只需要与它对应存储块上的历史数据比较即可,大大减少了比较次数。(对于当日每一条记录来说,都只需要与大约历史的N分之一条数据去比较)
3、基本不需要考虑历史全量数据的保存及获取问题。
本方案缺点:
1、处理方案明显变的复杂许多,不仅需要处理数据的分发,处理,还需要一个并行的快速收集方法。
2、可能需要多台服务器并行处理。
本方案难点:
1、一个稳定(对于相同的一组来源渠道和用户标识,必定会被分发至同一存储块)、快速(根据一条来源渠道和用户标识数据,可以快速的计算出它将要被分发至的存储块)、均匀(当日新增数据及历史数据都能尽量均匀的被分发至N个存储块,最理想的情况是每个存储块上分发到的数据都是总数据的N分之一)的分发函数至关重要。
2、如何分发、并行处理及汇总数据。
G. 大数据所谓的分布式运算是指什么
这个问题复中有两个关制键词,‘大数据’和‘分布式运算’,其实包含了三个问题:‘什么是大数据’,什么是‘分布式运算’,以及‘什么是大数据处理的分布式运算’。
假设你已经知道了前面的两个问题(‘什么是大数据’,什么是‘分布式运算’)的答案的,因此只对第3个‘什么是大数据处理的分布式运算’做些回答;
大数据处理的最大特点是需要(计算)处理/参照的对象数据量的巨大。众所周知现在的计算机结构对待需要处理/参照的数据是需要放在与承担数据处理的CPU可直接交互(立刻调用)的存储器中。而每个CPU可直接交互的数据量有限,对大数据的处理方式就需要用多CPU的集群(并行运算)系统来处理。这种处理可以用超级计算机系统的大数据处理,但现在更多是用网络将大量的计算机(成千上万台)连接起来,实施分布式的集群运算来处理大数据。这里的分布,不只是CPU的分布,也是指存储器(磁盘或内存)的分布。将待处理的大数据分布在连接在网络上的存储器中,分布处理。现在的大数据分布式处理方式有Redis、Gemfire、SAP HANA……等等
H. 20分钟看懂大数据分布式计算
这是一篇科普性质的文章,希望能过用一个通俗易懂的例子给非计算机专业背景的朋友讲清楚大数据分布式计算技术。大数据技术虽然包含存储、计算和分析等一系列庞杂的技术,但分布式计算一直是其核心,想要了解大数据技术,不妨从MapRece分布式计算模型开始。该理论模型并不是什么新理念,早在2004年就被Google发布,经过十多年的发展,俨然已经成为了当前大数据生态的基石,可谓大数据技术之道,在于MapRece。
在进入到分布式计算技术这个概念之前,我们要先回顾一下传统计算技术,为了使计算机领域的相关概念能够生动形象深入浅出,我们要将计算机类比为人:
下面我们要用一个简单的案例,分析“人型计算机”是如何利用传统计算技术解决实际问题的。在开始之前,要增加一些限定,如同正常计算机的内存是有上限的,我们的“人型计算机”也存在记忆力的上限,这里我们假设一个“人型计算机”最多可以同时在“内存”中记住4种信息,例如:苹果、梨等四种水果的个数:
好了,背景知识已经足够了,让我们进入正题
首先,什么是分布式计算?简单点理解就是将大量的数据分割成多个小块,由多台计算机分工计算,然后将结果汇总。这些执行分布式计算的计算机叫做集群,我们仍然延续前文中人和计算机的类比,那么集群就是一个团队,单兵作战的时代已经过去,团队合作才是王道:
为什么需要分布式计算?因为“大数据”来了,单个计算机不够用了,即数据量远远超出单个计算机的处理能力范围:有时候是单位时间内的数据量大,比如在12306网上买票,每秒可能有数以万计的访问;也有可能是数据总量大,比如网络搜索引擎,要在服务器上检索数亿的中文网页信息。
实现分布式计算的方案有很多,在大数据技术出现之前就已经有科研人员在研究,但一直没有被广泛应用。直到2004年Google公布了MapRece之后才大热了起来。大数据技术、分布式计算和MapRece的关系可以用下图来描述,MapRece是分布式计算在大数据领域的应用:
MapRece模型是经过商业实践的成熟的分布式计算框架,与Google的分布式文件系统GFS、分布式数据存储系统BigTable一起,号称Google的大数据“三宝”,为大数据技术的发展提供了坚实的理论基础。但遗憾的是,谷歌并没有向外界公布自己的商业产品,而真正让大数据技术大踏步前进的是按照Google理论实现的开源免费产品Hadoop,目前已经形成了以Hadoop为核心的大数据技术生态圈。
让我们回到数扑克牌这个例子中,大数据时代的扑克牌问题是什么样子的?
我个人在查阅了一些资料、进行了一些实践以后,认为MapRece的技术可以简单地用四字诀来总结:分、变、洗、合,分别代表“切分”、“变换”、“洗牌”、“合并”四个步骤:
下面来看如何用四字诀解决大数据扑克牌问题。
既然单个“人型计算机”无法完全处理完所有的扑克,那么我们就把扑克牌随机分成多份,每份扑克牌由一个“人型计算机”来处理,个数不超过单个计算机的处理上限,而且尽量让每份的数量比较平均。
这里我们要讲一下角色分工的问题,多台计算机合作,肯定要有角色分工,我们把负责数据切分的“人型计算机”可以理解为“指挥官”,“指挥官”一般只有一个(在实际中可能有多个),统筹调度之类的工作都归他管。负责执行具体运算任务的“人型计算机”则是“计算兵”,“计算兵”按照承担的任务不同分为“变计算兵”和“合计算兵”,前者负责第二步“变换“,后者负责最后一步“合并“。
“指挥官”在切分扑克牌之前,会先分配好“变计算兵”和“合计算兵”的数量,然后根据“变计算兵”的数量把扑克拆分成相应的份数,将每份扑克分给一个“变计算兵”,然后进入下一步。
每一个“变计算兵”都要对自己分得的每一张扑克牌按照相同的规则做变换,使得后续的步骤中可以对变换后的结果做处理。这种变换可以是加减乘除等数学运算,也可以是对输入数据的结构的转换。例如对于我们这个扑克牌问题来讲,目的是为了计数,所以可以将扑克牌转换为一种计算机更容易处理的数值结构:将每张扑克牌上贴一张小便签,这条小便签上写明了其个数为1。
我们把这种贴了标签的扑克牌叫做变种扑克牌。当在后续的步骤中统计牌型个数时,只需要把每个标签上的数字加起来就可以。有的朋友肯定会好奇为什么不让每个“计算兵”直接统计各自的所有牌型的扑克的个数,这是因为这种“映射变换”运算的本质在于将每张扑克牌都进行同一种相同规则的变换,统计个数的工作要留在最后一步完成。严格的流水化操作,会让整体的效率更高,而且变换的规则要根据具体问题来制定,更容易适配不同种类的计算。
变换的运算完成之后,每个“变计算兵”要将各自的变种扑克牌按照牌型分成多个小份,每个小份要最终被一个指定的“合计算兵”进行结果合并统计,这个过程就是“洗牌”,是“变计算兵”将变换后的扑克牌按照规则分组并分配给指定的“合计算兵”的过程。
洗牌分两个阶段,第一阶段是每个“变计算兵”将变种扑克牌按照一定的规则分类,分类的规则取决于每个“合计算兵”的统计范围,分类的个数取决于“合计算兵”的个数。如上图所示,假设有3个“合计算兵”分别负责不同范围的牌型的统计,那么“变计算兵”需要根据每个“合计算兵”负责的牌型将自己的变种扑克牌分成3个小份,每份交给对应的“合计算兵”。洗牌的第二阶段,“合计算兵”在指挥官的指挥下,去各个“变计算兵”的手中获取属于他自己的那一份变种扑克牌,从而使得牌型相同的扑克牌只会在一个“合计算兵”的手上。洗牌的意义在于使相同牌型的变种扑克牌汇聚在了一起,以便于统计。
“合计算兵”将手中的变种扑克牌按照相同的计算规则依次进行合并,计算规则也需要根据具体问题来制定,在这里是对扑克牌上标签的数值直接累加,统计出最终的结果。
然后所有的“合计算兵”把自己的计算结果上交给“指挥官”,“指挥官”汇总后公布最终统计的结果。
ok,“分变洗合”四字诀介绍完毕,完整过程如下:
分布式处理技术在逻辑上并不复杂,但在具体的实现过程中会有很多复杂的过程,譬如“指挥官”如何协调调度所有的“运算兵”,“运算兵”之间如何通信等等,但对于使用MapRece来完成计算任务的程序员来讲,这些复杂的过程是透明的,分布式计算框架会自己去处理这些问题,程序员只需要定义两种计算规则:第二步中变换的规则和第四步中合并的规则。
正所谓大道至简,万变不离其宗,理解了MapRece就理解了大数据分布式处理技术,而理解大数据分布式处理技术,也就理解了大数据技术的核心。
如果你还没有理解或者发现了文中的逻辑漏洞,欢迎留言讨论。
I. 如何进行大数据处理
大数据处理之一:收集
大数据的收集是指运用多个数据库来接收发自客户端(Web、App或许传感器方式等)的 数据,而且用户能够经过这些数据库来进行简略的查询和处理作业,在大数据的收集进程中,其主要特色和应战是并发数高,因为同时有可能会有成千上万的用户 来进行拜访和操作
大数据处理之二:导入/预处理
虽然收集端本身会有许多数据库,但是假如要对这些海量数据进行有效的剖析,还是应该将这 些来自前端的数据导入到一个集中的大型分布式数据库,或许分布式存储集群,而且能够在导入基础上做一些简略的清洗和预处理作业。导入与预处理进程的特色和应战主要是导入的数据量大,每秒钟的导入量经常会到达百兆,甚至千兆等级。
大数据处理之三:核算/剖析
核算与剖析主要运用分布式数据库,或许分布式核算集群来对存储于其内的海量数据进行普通 的剖析和分类汇总等,以满足大多数常见的剖析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及根据 MySQL的列式存储Infobright等,而一些批处理,或许根据半结构化数据的需求能够运用Hadoop。 核算与剖析这部分的主要特色和应战是剖析触及的数据量大,其对系统资源,特别是I/O会有极大的占用。
大数据处理之四:发掘
主要是在现有数据上面进行根据各种算法的核算,然后起到预测(Predict)的作用,然后实现一些高等级数据剖析的需求。主要运用的工具有Hadoop的Mahout等。该进程的特色和应战主要是用于发掘的算法很复杂,并 且核算触及的数据量和核算量都很大,常用数据发掘算法都以单线程为主。
关于如何进行大数据处理,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。