① 大数据所谓的分布式运算是指什么
这个问题复中有两个关制键词,‘大数据’和‘分布式运算’,其实包含了三个问题:‘什么是大数据’,什么是‘分布式运算’,以及‘什么是大数据处理的分布式运算’。
假设你已经知道了前面的两个问题(‘什么是大数据’,什么是‘分布式运算’)的答案的,因此只对第3个‘什么是大数据处理的分布式运算’做些回答;
大数据处理的最大特点是需要(计算)处理/参照的对象数据量的巨大。众所周知现在的计算机结构对待需要处理/参照的数据是需要放在与承担数据处理的CPU可直接交互(立刻调用)的存储器中。而每个CPU可直接交互的数据量有限,对大数据的处理方式就需要用多CPU的集群(并行运算)系统来处理。这种处理可以用超级计算机系统的大数据处理,但现在更多是用网络将大量的计算机(成千上万台)连接起来,实施分布式的集群运算来处理大数据。这里的分布,不只是CPU的分布,也是指存储器(磁盘或内存)的分布。将待处理的大数据分布在连接在网络上的存储器中,分布处理。现在的大数据分布式处理方式有Redis、Gemfire、SAP HANA……等等
② 分布式操作系统内容与云计算,大数据有何关联,如何理解这样一些关联
1,大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产
2,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。它的特色在于对海量数据的挖掘,但它必须依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术。
他俩之间的关系你可以这样来理解,云计算技术就是一个容器,大数据正是存放在这个容器中的水,大数据是要依靠云计算技术来进行存储和计算的。
(2)分布式计算和大数据扩展阅读:
大数据的4V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)。
云计算的关键词在于“整合”,无论你是通过现在已经很成熟的传统的虚拟机切分型技术,还是通过google后来所使用的海量节点聚合型技术,他都是通过将海量的服务器资源通过网络进行整合,调度分配给用户,从而解决用户因为存储计算资源不足所带来的问题。
大数据正是因为数据的爆发式增长带来的一个新的课题内容,如何存储如今互联网时代所产生的海量数据,如何有效的利用分析这些数据等等。
大数据的趋势:
趋势一:数据的资源化
何为资源化,是指大数据成为企业和社会关注的重要战略资源,并已成为大家争相抢夺的新焦点。因而,企业必须要提前制定大数据营销战略计划,抢占市场先机。
趋势二:与云计算的深度结合
大数据离不开云处理,云处理为大数据提供了弹性可拓展的基础设备,是产生大数据的平台之一。自2013年开始,大数据技术已开始和云计算技术紧密结合,预计未来两者关系将更为密切。除此之外,物联网、移动互联网等新兴计算形态,也将一齐助力大数据革命,让大数据营销发挥出更大的影响力。
趋势三:科学理论的突破
随着大数据的快速发展,就像计算机和互联网一样,大数据很有可能是新一轮的技术革命。随之兴起的数据挖掘、机器学习和人工智能等相关技术,可能会改变数据世界里的很多算法和基础理论,实现科学技术上的突破
③ 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就理解了大数据分布式处理技术,而理解大数据分布式处理技术,也就理解了大数据技术的核心。
如果你还没有理解或者发现了文中的逻辑漏洞,欢迎留言讨论。
④ 大数据的四种主要计算模式包括
大数据的四种主要计算模式包括:批处理模式、流处理模式、交互式处理模式、图处理模式。
1、批处理模式(Batch Processing):将大量数据分成若干小批次进行处理简隐隐,通常是非实时的、离线的方式进行计算,用途包括离线数据分析、离线数据挖掘等。
2、流处理模式(Stream Processing):针对数据源的实时性要求更高,实时计算每个事件(Event)或者一组事件的处理结果,能够进行非常低延迟的计算和响应,用途包括实时监控、实时推荐等。
3、交互式处理模式(Interactive Processing):这种模式的特点是快速响应交互请求,在数据中进行查询、分组、排序等等,处理的时间通常在数秒内,用途包括复杂报表生成、数据可视化、数据探索等。
4、图处理模式(Graph Processing):针对数据之间的关系进行计算,通常以图的形式表示数据之间的联系,能够解决一些复杂的问携迟题,如社交网络分析、路径规划、推荐系统等。
这四种计算模式通常都需要在大规模分布式计算框架中实现,如Hadoop、Spark、Storm、Flink等,以应对大数据量的处理需求。
大数据技术主要涉及以下方面的学科
1、数学和统计学:大数据处理离不开高等数学、线性代数、概率论和数理统计等数学和统计学的基础。
2、拦厅计算机科学:大数据分析和处理需要有扎实的计算机编程基础,掌握各种编程语言和开发工具,并熟悉分布式系统和数据库等技术。
3、数据挖掘:数据挖掘是从大量数据中发现隐藏的关系、规律和趋势的过程,需要深入理解各种数据挖掘算法和技术。
4、人工智能:人工智能技术中的机器学习、深度学习等方法也常常用于大数据分析和处理,并能够为大数据提供更深入、更高级的分析。
5、网络和通信:现代大数据技术需要支持海量数据的传输和处理,因此还需要掌握网络和通信技术,如云计算、分布式存储和通信协议等。
总之,大数据技术是涉及多个学科领域的综合性学科,需要广泛的知识面和深入的专业技能,未来有很大的发展空间和挑战。