设为首页 收藏本站
查看: 800|回复: 0

[经验分享] 淘宝Fourinone介绍及与Hadoop的性能PK

[复制链接]

尚未签到

发表于 2016-12-11 07:05:20 | 显示全部楼层 |阅读模式
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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-312442-1-1.html 上篇帖子: Hadoop报错:NoRouteToHostException: No route to host 下篇帖子: Hadoop安全云盘开发(第3篇)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表