提升Hadoop计算能力的并行框架
集算器是新型并行计算框架,它支持读写HDFS中的文件,可以通过并行框架将计算任务分担到多个节点中。它专注于加强Hadoop的计算能力,从而实现计算性能和开发效率更高的大数据应用。
更强的计算能力。Hadoop所使用的计算语言为JAVA,JAVA是通用性和扩展性极佳的语言,但它不适用于专业化的数据计算领域和大数据处理领域。MapReduce没有库函数来支持最简单的数据算法,对于关联计算、子查询、行间计算、有序计算这类典型的数据算法它更加不支持,计算能力很弱。
同样是以JAVA为基础,集算器则向用户提供了更专业的大数据脚本语言,它专为数据计算而设计,专为大数据处理而优化。它不仅提供了丰富的库函数,更直接支持多数据集关联查询、子查询、行间计算、有序计算。集算器配合HDFS使用,可大大加强Hadoop的计算能力。
为了解决语言专业性的问题,Hadoop提出了Hive SQL,用户只需写出类似SQL的语句就可以进行常见的数据计算。但Hive SQL局限性较大,它是SQL的子集,计算能力天生受限;它也不支持存储过程,稍具复杂性的计算它就无法完成,只能求助于MapReduce。
集算器具有完备的计算体系和强大的计算能力,可以轻松实现任意的计算要求;它支持彻底的分步计算,可以比存储过程更容易地实现复杂计算目标的简化和求解。集算器还可以通过JDBC调用Hive的计算结果,两者的配合非常方便。简单的计算仍然由Hive完成,复杂的计算则可以交给集算器。如此一来Hive没有存储过程的窘境可以轻松化解。
更高的性能。MapReduce框架很死板,默认情况下它会按照最细的粒度来分配任务,这将使任务分配所消耗的时间达到最大,如10亿条数据就会被分配10亿次,需要调用10亿次Map函数;而集算器的并行框架是灵活自由的,可以由用户根据硬件性能分配计算任务的规模,比如把数据分配100份。如此一来分配任务所消耗的时间只有MapReduce的千万分之一,性能因此大幅提升。再比如直接对大数据排序时是无需分配任务的,但hadoop仍然会分配10亿次任务,节点机也必须假装计算一番再原样返回这些数据,而集算器可以跳过这个毫无意义而又白白浪费资源的计算过程,性能提升明显。
MapReduce的死板还体现在:它规定跨机交互的中间计算结果必须以文件的形式存储于HDFS中。虽然这对数据的容错性大有好处,但每个节点大量的硬盘操作和冗余优化会产生较高的延迟门槛,无法提升性能的上限。集算器可由用户根据计算时间的长短作出灵活的选择,既可以将节点机内存中的中间计算结果存储于HDFS,也可以直接传输给汇总机。用户甚至可以选择先直接传输再存储于HDFS,如此可达到性能和安全性的双赢。
MapReduce缺乏专业的大数据计算库函数,因此它不支持多表关联、比上期、同期比等常见的数据运算。如果想变相地实现这类计算,用户必须设法绕过原有的架构,这样会大幅度降低运算性能。集算器的库函数专为大数据计算而设计,天生支持多表关联计算、行间计算、有序计算等算法。集算器配合HDFS可以大大提高Hadoop的运算效率。
Hive的底层仍然是MapReduce,实现关联计算、子查询、行间计算、有序计算时仍然需要牺牲性能。Hive SQL和RDB SQL有着一个数量级左右的差距,这是让人不可忍受的。而集算器从底层起就是为大数据计算而设计的,其性能和SQL接近。两者可通过JDBC接口进行协作,对性能要求不高的计算由Hive完成,而对计算有时实行要求的地方由集算器完成。
更高的开发效率。MapReduce没有提供针对大数据计算的库函数,即使最简单的计算都需要用户手工编程,开发效率极低。为了绕过原有的架构去实现关联计算、有序计算、等值分组、比上期、同期比等算法则需要更高的开发技巧和更大的工作量。因为开发效率极低,用户无法自由方便地将业务逻辑表达为计算机语言,因此上述做法虽可行但鲜有人愿意尝试。而Hive又不支持存储过程,稍具难度的计算就要求助于MapReduce,最终仍然要走到“用通用语言去实现专业计算”这条低效的开发途径上。
对于常见的算法,集算器已经提供了丰富的库函数直接可用;对于复杂的算法逻辑,集算器提供了敏捷的语法和专业的IDE,这方面集算器的优势更大。集算器配合HDFS和Hive,可以极大地提高Hadoop的开发效率。
集算器支持真正的集合数据类型,更易于用户从业务角度设计算法。集算器支持有序集合,可以自由地访问集合的成员并进行和序号相关的计算。集合的集合可以轻松表达复杂的分组形式,比如等值分组、对位分组、枚举分组。用户还可以像操作对象一样操作数据集中的单独记录。集算器的脚本是书写在网格中的,无需定义即可引用中间计算结果,代码的编辑和调试非常方便。
MapReduce的调试手段非常落后,用户只能在程序中写“调试代码”,然后在日志文件察看这些“调试信息”。这种“最灵活的”调试方法极大的降低了开发效率。集算器支持断点、单步执行、执行到光标、启动和结束等专业的数据计算调试功能,其方便性甚至远超SQL/SP,这可以大大提高开发效率。
MapReduce默认是按照最细的粒度来分配任务的,如果用户想自由的分配任务规模从而减少分配任务所消耗的时间,那就必须“越狱”, 即绕过原有的Reduce,在Map函数中自己编码实现类似Reduce的功能。显然这个难度太高,会严重影响开发效率。集算器的任务分配灵活自由,不存在这种困扰,开发效率更高。
小结:集算器保留了Hadoop的优点,多节点并行计算、廉价设备横向扩展、开放的对外接口,同时它也为Hadoop注入了新的活力——灵活的并行框架、专业的大数据脚本、敏捷的语法和专业的IDE。
http://www.raqsoft.cn/?p=3459
更多请访问:http://www.raqsoft.cn/?page_id=2427
转载于:https://blog.51cto.com/report5/1320841
相关文章:

在ASP.NET 2.0中建立站点导航层次
站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局。默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,…

加速数据中心变革,Xilinx推出软件定义、硬件加速型 Alveo SmartNIC
近日,为满足现代数据中心发展需求,赛灵思公司宣布推出一系列全新数据中心产品及解决方案,包括全新 Alveo SmartNIC 系列、smart world (智能世界) AI 视频分析应用、一款能够实现亚微秒级交易的加速算法交易参考设计&a…

跟阿里云技术专家阙寒一起深度了解视频直播CDN技术
网络直播平台现下已经十分火热,很多常见的直播平台都采用了阿里云直播CDN来搭建自身业务。今天,我们请来了阿里云CDN团队技术专家阙寒,来介绍下视频的一些基础知识和视频直播的架构。在进入正题之前,我们先来了解视频直播相关的名…

一个ASP.NET中使用的MessageBox类
/// <summary>/// 自定义信息对话框/// </summary>public class MessageBox{/// <summary>/// 定义一个web页面,用来显示用户自定错误提示信息/// </summary>System.Web.UI.Page p;/// <summary>/// 实例时,参数为:this 如…

Ubuntu 13.10 安装Terminalx 后更改默认终端设置
1、安装 terminalx, sudo apt-get install terminator 2、Ctrl Alt t 试一下打开什么终端,我的默认启动的是Terminator;如果想换换默认的终端,还需以下一步 3、接下来,安装dconf-tools,这个是设置默认终端的必须 打开…

360数科张家兴:如何突破三大瓶颈,破解金融科技发展难题?
3月6日,上海香港联会、普陀香港联会联合普陀新区联会,IFTA亚洲金融科技师学会共同举办了“沪港合作共创未来”——沪港两地金融科技线上论坛。本次活动通过沪港两地直播连线,探讨两地金融科技领域的发展机遇。麻省理工学院香港创坊执行董事冼…

通过改进算法来优化程序性能的真实案例(Ransac)
对于运行不了几次,一次运行不了多久的方法,我们不需要考虑性能优化,对于那些需要经常运行几百次几千次的方法,我们头脑里还是要有性能这根弦。C#太优雅方便了,以至于很多人写程序时根本就把性能抛到脑后了,…

ASP.NET中使用MD5和SHA1算法加密
你的主页或者你管理的网站有各种密码需要保护,把密码直接放在数据库或者文件中存在不少安全隐患,所以密码加密后存储是最常见的做法。在ASP.NET中实现加密非常容易。.NET SDK中提供了CookieAuthentication类,其中的HashPasswordForStoringInC…

不追逐标准化产品,360数科的一站式风控体系有何不同?
新冠肺炎疫情无疑加速了金融行业数字化转型,竞争者不断涌入,逐渐形成由BATJ、传统银行旗下金融科技子公司、以及专注于金融机构的数字化服务公司构成的竞争格局。然而,风控始终是金融行业的核心。作为定位于中国零售金融领域科技服务商的360数…

基于Bootstrap里面的Button dropdown打造自定义select
最近工作非常的忙,在对一个系统进行改版。项目后台是MVC1.0开发的,但是前端部分已经改过几个版本,而已之前的设计师很强大,又做设计又做前端开发。而已很时尚和前沿,使用了一直都很热门的Bootstrap工具包,有…

HybridDB · 源码分析 · MemoryContext 内存管理和内存异常分析
背景 最近排查和解决了几处 HybridDB for PostgreSQL 内存泄漏的BUG。觉得有一定通用性。 这期分享给大家一些实现细节和小技巧。 阿里云上的 HybridDB for PostgreSQL 是基于 PostgreSQL 开发,定位于 OLAP 场景的 MPP 架构数据库集群。它不少的内部机制沿用了 Post…

联合南京大学,爱奇艺智能论文入选顶会CVPR 2021
日前,全球计算机视觉顶级会议CVPR (IEEE Conference on Computer Vision and Pattern Recognition)公布了2021年论文接收结果。作为计算机视觉领域世界三大顶会(CVPR、ICCV、ECCV)之一,CVPR的论文投稿量近五年来持续大涨。据CVPR官网显示,今…

Forefront_TMG_2010-TMG发布Web服务器
1.环境拓扑图:2.准备DMZ区域的Web服务器:安装Web服务器:在DMZ区域的Web服务器进行测试:3.TMG发布Web服务器:打开TMG管理控制台,新建“网站发布规则”:新建名称:选择“允许”…

ASP.NET实现身份模拟
使用模拟时,ASP.NET 应用程序可以选择以这些应用程序当前正为之操作的客户的身份执行。通常这样做的原因是为了避免在 ASP.NET 应用程序代码中处理身份验证和授权问题。而您依赖于 Microsoft Internet 信息服务 (IIS) 来验证用户,然后将已通过验证的标记…

Mac homebrew类似apt-get命令安装包
INSTALL brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 其它: 其他brew命令 brew list 列出已安装的软件 brew update 更新brew brew home 用浏览器打开brew的官方网站 brew inf…

asp.net中长内容自动分页的实现
在一篇文章过长时,可以自动的写个小程序对其进行分页.具体代码:public class t3 : System.Web.UI.Page { private string str;//字符 private int strl;//字符总长度 private int pagesize;//每页显示的字符数 …

黑马程序员之List--队列、栈...
--------------------- ASP.NetUnity开发、.Net培训、期待与您交流! ---------------------- 1.队列:先进先出 运行结果: zhangsan lisi wangwu 2.栈:先进后出 结果: lisi wangwu zhangsan 3. 去除重复元素思路&#x…

龙芯架构应用迁移技术分享——搜狗输入法应用迁移
技术引领创新,用“芯”构建生态,第一期龙芯生态论坛将于2021年3月12日(周五)盛大开讲!龙芯生态论坛作为龙芯生态建设的重要技术交流窗口,将汇聚龙芯资深技术专家及行业生态伙伴精英,持续开展行业…

Health Check in eShop -- 解析微软微服务架构Demo(五)
引言 What is the Health Check Health Check(健康状态检查)不仅是对自己应用程序内部检测各个项目之间的健康状态(各项目的运行情况、项目之间的连接情况等),还包括了应用程序对外部或者第三方依赖库的状态检测。 Why…
网易伏羲论文入选 CVPR:AI 感知表情能力或实现巨大突破!
出品 | AI科技大本营(ID:rgznai100)2月28日,人工智能顶级会议CVPR 2021(国际计算机视觉与模式识别会议,Conference onComputer Vision and Pattern Recognition)公布论文录取结果,网易伏羲共有3…

asp.net/c#字符格式化大总结
一、用{0:?}格式化可通过 String.Format 方法或通过 Console.Write 方法格式化数值结果,其中后一种方法调用 String.Format。使用格式字符串指定格式。下表包含受支持的标准格式字符串。格式字符串采用的形式为 Axx,其中 A 为“格式说明符”,…

小鱼提问1 类中嵌套public修饰的枚举,外部访问的时候却只能Class.Enum这样访问,这是为何?...
/// <summary>/// 常量等定义/// </summary>public class General{/// <summary>/// 文件类型/// </summary>public enum FileType{}}小鱼提问:都是public修饰,为何外部只能General.FileType这样访问?既然外部都不能…

radio根据name 获取选中值及判断是否被选中
$(input:radio[name"fjscfs"]:checked).val();根据id判断是否被选中if($("#A26").is(":checked")){}根据class判断是否被选中if($(".A26").is(":checked")){}转载于:https://blog.51cto.com/ty2538402559/1949828

ASP.NET中用healthMonitor属性用
在ASP.NET 2.0中,可以使用healthMonitoring属性监测事件。healthMonitoring属性是一个基于方法的provider,在这里可以构造自己的provider。利用healthMonitoring属性,我们可以诸如记录错语、成功的事件等,对不同的数据源ÿ…

用 Python 动态可视化,看看比特币这几年
作者 | 刘早起来源 | 早起Python头图 | 下载于视觉中国最近几年,一直站在风口浪尖的比特币被追捧为最佳的投资产品,拥护者们认为这种加密货币是一种类似于黄金的储值工具,可以对冲通胀和美元疲软。其他人则认为,比特币的暴涨只是一…

违规用户处理办法
2019独角兽企业重金招聘Python工程师标准>>> 1.简单设置用户信赖状态 给用户设置信任字段,0不可信任,1默认许可(默认值),2可信赖用户 当用户违规后,对其进行惩罚并设置其为 不可信赖状态&#…

linux同步软件
linux同步软件:scp,rsync,inotify,sersync一、scpscp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。 与rcp 不同的是,scp 在需要进行验证时会要求你…

C语言内联函数
内联函数也称内嵌函数,它主要解决程序的运行效率。 #####################问题######################################### 函数调用需要建立栈内存环境,进行参数传递,并产生程序执行转移,这些转移都需要时间开销。 有些函数在程序…

Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [−2,1,−3,4,−1,2,1,−5,4],the contiguous subarray [4,−1,2,1] has the largest sum 6. Code: class Solution { public:int …

从Python到AI,这条路好走吗?
大家都在学Python的时候,怎么才能让自己更有竞争力?Python 的应用方向有很多,基本每个方向都是大热门,但至今为止,人工智能行业仍处于人才稀缺的情况。正因这样,近几年来,AI 成为了广大 Python …