`

淘宝Fourinone介绍及与Hadoop的性能PK

阅读更多
FourInOne(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想解决问题的初衷:我们仅仅是想写个程序把几台甚至更多的机器一起用起来计算,把更多的cpu和内存利用上,来解决我们数量大和计算复杂的问题,当然这个过程中要考虑到分布式的协同和故障处理。如果仅仅是为了实现这个简单的初衷,为什么一切会那么复杂,我觉的自己可以写一个更简单的东西,它不需要过度设计,只需要看上去更酷一点,更小巧一点,功能更强一点。于是我将自己对分布式的理解融入到这个框架中,考虑到底层实现技术的相似性,我将Hadoop,Zookeeper,MQ,分布式缓存四大主要的分布式计算功能合为一个框架内,对复杂的分布式计算应用进行了大量简化和归纳。

fourinone-1.11.09

hadoop-0.21.0

体积:

FourInOne:82K

Hadoop:71M

依赖关系:

FourInOne:就一个jar,没有依赖

Hadoop:约12项jar包依赖

配置文件:

FourInOne:就一个配置文件

Hadoop:较多配置文件和复杂属性

集群搭建:

FourInOne:简单,每台机器放一个jar和配置文件

Hadoop:复杂,需要linux操作基础和ssh等复杂配置,还需要较多配置文件配置

计算模式:

FourInOne:提供两种计算模式:包工头和工人直接交互方式,包工头和工人通过消息中枢方式交互,后者不需要工人节点可直接访问

Hadoop:计算更多倾向于文件数据的并行读取,而非计算过程的设计。JobTracke 跟TaskTracker直接交互, 查询NameNode后,TaskTracker直接从Datanode获取数据。

并行模式:

FourInOne:N*N,支持单机并行,也支持多机并行,多机多实例并行

Hadoop:1*N,不支持单机并行,只支持多机单实例并行

内存方式:

FourInOne:支持内存方式设计和开发应用,并内置完整的分布式缓存功能

Hadoop:以hdfs文件方式进行数据处理,内存方式计算支持很弱

文件方式:

FourInOne:自带文件适配器处理io

Hadoop:Hdfs处理文件io

计算数据要求

任意数据格式和任意数据来源,包括来自数据库,分布式文件,分布式缓存等

Hdfs内的文件数据,多倾向于带换行符的数据

调度角色

包工头,可以有多个,支持链式处理,也支持大包工头对小包工头的调度

JobTracke,通常与NameNode一起

任务执行角色

农民工,框架支持设计多种类型的工人用于拆分或者合并任务

TaskTracker,通常与Datanode一起

中间结果数据保存

手工仓库,或者其他任意数据库存储设备

Hdfs中间结果文件

拆分策略

自由设计,框架提供链式处理对于大的业务场景进行环节拆分数据的存储和计算拆分根据业务场景自定义

以64m为拆分进行存储,以行为拆分进行计算

实现map接口,按行处理数据进行计算

合并策略

自由设计,框架提供农民工节点之间的合并接口,可以互相交互设计合并策略,也可以通过包工头进行合并

TaskTracker不透明,较少提供程序控制,合并策略设计复杂

实现reduce接口进行中间数据合并逻辑实现

内存耗用

无需要制定JVM内存,按默认即可,根据计算要求考虑是否增加JVM内存

需要制定JVM内存,每个进程默认1G,常常namenode,jobtracker等启动3个进程,耗用3G内存

监控

框架提供多环节链式处理设计支持监控过程,通过可编程的监控方式,给于业务开发方最大灵活的监控需求实现,为追求高性能不输出大量系统监控log

输出较多的系统监控log,如map和reduce百分比等,但是会牺牲性能,业务监控需要自己实现

打包部署

脚本工具

上传jar包到jobtracker机器

平台支撑

支持跨平台,windows支持良好

多倾向于支持linux,Windows支持不佳,需要模拟linux环境,并且建议只用于开发学习

其他

协同一致性、分布式缓存、通讯队列等跟分布式计算关系密切的功能支持

不支持

总结:

Hadoop并不是为了追求一个并行计算的框架而设计,提供快捷和灵活的计算方式去服务各种计算场景, 它更多的是一个分布式文件系统,提供文件数据的存储和查询,它的map/reduce更倾向于提供并行计算方式进行文件数据查询。而fourinone相反。

Fourinone和hadoop运行wordcount的对比测试(平均4核4g配置,输入数据为文件):

fourinone-1.11.09(n*4)

fourinone-1.11.09(n*1)

hadoop-0.21.0(n*1)

3台机器*256M

4s

12s

72s

3台机器*512M

7s

30s

140s

3台机器*1G

14s

50s

279s

19台机器*1G

21s

60s

289s

10台机器*2G

29s

5台机器*4G

60s

说明:Fourinone可以充分利用单机并行能力,4核计算机可以4个并行实例计算,hadoop目前只能N*1;另外,可以由上图看出,如果要完成20g的数据,实际上fourinone只需要使用5台机器用60秒完成,比使用19台机器完成19g的hadoop节省了14台机器,并提前了200多秒

相关分布式框架(jar格式)及demo代码下载:

http://download.csdn.net/detail/fourinone/3557912

http://www.skycn.com/soft/68321.html

作者介绍:

Stone.Peng

资深IT技术人士

现在淘宝网任高级专家,从事互联网核心技术研究

之前在金蝶总体架构部任SOA架构师,负责设计ESB

分享到:
评论

相关推荐

    淘宝fourinone 架构原理

    【淘宝FourInOne架构原理详解】 淘宝FourInOne是一款由阿里巴巴集团自主研发的轻量级并行计算框架,它主要用于解决大规模分布式系统中的高并发、低延迟的问题,为电商平台如淘宝提供强大的数据处理能力。该框架的...

    淘宝分布式框架fourinone介绍.pptx

    4. **分布式协同与锁**及简化MQ功能:提供了用于多机协作和通信的机制,确保在分布式环境中的数据一致性。 在具体实现上,Fourinone采用Java语言编写,2.0版本的大小仅为150k,只有一个jar文件和配置文件,没有额外...

    淘宝分布式框架fourinone介绍.pdf

    Hadoop是目前广泛使用的另一个分布式计算框架,但与Fourinone相比,Hadoop的结构更加复杂,它不仅包含了多个jar包依赖,而且配置过程也相对繁琐。而Fourinone的设计理念是简洁和高效,它的实现方式倾向于内存计算和...

    Fourinone分布式计算框架性能、压力、容灾测试报告

    与Hadoop相比,Fourinone在处理上亿级别的排序任务和WordCount等基础大数据运算时表现出更优的性能。这表明Fourinone在算法优化和资源调度上可能有独特的设计,能够更好地应对大规模并行计算的需求。 其次,报告中...

    fourinone配置文件

    fourinone号称了集成了hadoop,zk,memcache,mq于一身的四不像超级神器,致力于分布式应用。别的我不懂,今儿聊一下fourinone中的分布式缓存以及分布式文件系统,说到分布式,不得不用到网络通讯,不得不提及RPC,...

    学习资料:淘宝分布式并行计算四合一框架Fourinone

    内容:淘宝分布式并行计算四合一框架Fourinone详细介绍;源码分析及使用说明;Fourinone分布式计算框架性能、压力、容灾测试报告;框架压缩包 本示例把分配任务的程序比喻为“工头”,可以有一个工头进程,也可以有...

    分布式计算的fourinone四合一框架设计

    Fourinone框架是将分布式协同的技术性和故障处理的可行性,把Hadoop、Zookeeper、MQ和分布式缓存的功能合并成一个框架。Fourinone采用的是domain/node两层结构,不仅保持了Zookeeper最本质的稳定性,而且还简化Watch...

    fourinone源代码分析

    《fourinone源代码分析》 fourinone是一款分布式协调服务框架,它的设计思路是将任务...理解这些知识点,有助于开发者深入掌握fourinone框架,从而在实际项目中更好地利用其特性,构建高性能、可扩展的分布式系统。

    Fourinone分布式并行计算四合一框架

    Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想解决问题...

    fourinone-3.04.25

    淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...

    【Hadoop与大数据54】沈强-基于Windows Azure平台构建云应用

    本篇文章主要探讨了在Windows Azure平台上构建云应用时所使用的分布式框架——Fourinone 2.0,及其与Hadoop的比较分析。文章由一位资深Java技术专家撰写,他拥有超过十年的Java技术领域经验,曾担任淘宝网高级技术...

    fourinone-master.zip

    "四不像"(FourInOne)是淘宝开发的一款轻量级分布式系统框架,它以其小巧精悍的特性深受开发者喜爱,成为学习分布式系统的重要参考资料。本篇文章将围绕"fourinone-master.zip"这个压缩包,深入剖析四不像的核心...

    Fourinone四合一分布式计算框架整体介绍

    本文将深入探讨FourInOne的核心特性和应用场景,同时提供配置与示例的解析。 一、FourInOne框架概述 FourInOne的设计目标是简化分布式系统开发的复杂性,提高系统的可扩展性和容错性。它将复杂的分布式计算问题...

    大数据与云计算培训学习资料 Fourinone实现分布式计算 共3页.pdf

    Fourinone是淘宝自主研发的一个分布式并行计算框架,它巧妙地整合了Hadoop、ZooKeeper、MQ(消息队列)和分布式缓存这四大关键组件,为开发者提供了全面的分布式计算解决方案。 **Fourinone的功能特性:** 1. **...

    fourinone-2.05.28.rar

    淘宝Fourinone2.0提供了一个4合1分布式框架和简单易用的编程API,实现对多台计算机CPU,内存,硬盘的统一利用,从而获取到强大计算能力去解决复杂问题。Fourinone框架提供了一系列并行计算模式(农民工/包工头/职...

    高级java笔试题-fourinone:Fourinone项目

    也就是说,fourinone在一个简单的jar中集成了Hadoop、Zookeeper、Memcache、MQ四大功能! 它只有150k大小,没有任何依赖性,非常方便嵌入您的系统使用。 Fourinone 项目 Fourinone 1.0 版本:淘宝Fourinone(中文...

Global site tag (gtag.js) - Google Analytics