实时计算框架Samza学习指南-前言,samza学习指南


    首先欢迎大家来到这里和笔者一起共同学习出自LinkedIn的一款优秀的实时计算框架Samza。我目前就职于百度,负责电商数据平台架构和开发的工作,大数据离线和在线计算平台都需要投入精力搭建、使用和维护,特别对实时计算这一块的技术感兴趣,也使用过storm等流式计算框架;运用了一段时间后,我想逐步深入了解实时计算框架底层的实现,碍于storm大部分是clojure实现的,对于java出身的我不太合适;突然有一天发现了Samza,尽管大部分代码是Scala实现的,但是至少对java程序员应该成本相对较小嘛,而且这个框架的作者针对Lambda架构(hadoop+storm)提出的Kappa架构(Kafka+Samza)也确实让我这个搞数据平台的眼前一亮!,再加上这个框架代码目前的实现不到1万行,何乐而不为呢?那这个新事物,中文书肯定是没有了,只能从官方文档学起,本着我为人人,人人为我的思想,决定在学习之余将官方文档精简转化为中文,方便大家更快地掌握Samza的使用,当然随着时间推移官方文档可能会有更新,所有如果总结翻译的有误的地方还请留言告知!我的email: ychao228@163.com

    在正式进入主题之前,我想大家总有着需不需要学习和使用这个新生事物——samza的念头,大部分人对这种新东西到底能给我们带来什么,怀有满心的期待,要不大家为什么要去掌握它呢?如果你还没有满心期待,请务必看完引导篇,在进入我们的正题,以免误入歧途,大家时间都很宝贵,我也不想浪费大家美好的时光。引导篇主要来自我对Samza的一些调研总结,希望先让大家宏观上了解它,因为对于一个未知的事物,让你投入精力去搞定它是一件危险的事情,你很可能三分钟热度或者更好一点——半途而废,当然这都是笔者不愿意看到的。


    先正儿八经来一发网上的介绍吧。Twitter的流处理系统Storm最近出现了一个“翻版”——Samza。Samza是近日由LinkedIn开源的一项技术,它是一个分布式流处理框架,专用于实时数据的处理,非常像Twitter的流处理系统Storm。不同的是Samza基于Hadoop,而且使用了LinkedIn自家的Kafka分布式消息系统。Storm和Samza极其相似,就像LinkedIn的Chris Riccomini在博客中阐述的那样:“[Samza]可以帮助你构建应用,处理消息队列——更新数据库、计数以及其他的聚合、转换消息等等。”而这些其实都是很经典的Storm应用,只不过迁移到Samza之上了,Samza文档也对比了这两个系统。

     为什么会诞生Samza?
    作者Chris谈到,当开始用Kafka和他们系统中的所有数据做流处理的时候,他们是从一个类似Web服务的东西开始的,它会启动,从Kafka读取消息并做一些处理,然后将消息写回。在做这件事的时候,他们意识到,要使它真正有用并具备可扩展性,有许多问题需要解决。比如分区:如何划分流?如何划分处理器?如何管理状态,其中状态本质上是指在处理器中维护的介于消息之间的东西,或者如果每次有消息到达的时候,计数器就会加1,那么它也可以是像总数这样的东西。如何重新处理?至于失败语义,我们会得到至少一次,或者至多一次,或者恰好一次消息,也有不确定性。如果流处理器与另一个系统交互,无论它是个数据库,还是依赖于时间或者消息的顺序,如何处理那些真正决定最终输出结果的数据?
    相信在搞实时计算的同学们或多或少也会碰到这些问题,而Samza就是试图解决其中的部分问题。那大家肯定都会问了既然普遍存在的问题,我也可以用storm或者spark来解决呀?的确是可以用他们来解决,但是Samza有自己的优势,相对于storm而言其底层的实现语言是scala和java,而storm则大部分是clojure,而且代码不到万行,如此小而美,使得我们可以更加低成本地去了解其实现并作扩展和优化,而对于spark这个以scala语言实现的平台级产品,的确是一个好东西,但是要摸头它恐怕会相当花时间,如果你想要摸清实时计算的实现,我觉得Samza正是你的最佳选择对象。
    这里我也想补充一下我对Scala语言的一些想法,毕竟目前不少好的开源高性能系统都有Scala的身影,作为程序员中的大部分都是java阵营的来说,未来的发展方向很可能是基于jvm的多语言混合开发模式,如果你只是拘泥于像java这种注重企业级应用的语言,你很可能只能去开发企业应用了,这很明显是悲催的,至少以后找工作的选择就少了,这里我也不能把话题扯太远,推荐大家一本书《深入理解Java虚拟机——JVM高级特性与最佳实践》,大家要想往更高的位子走就必须掌握底层的技术,成为jvm开发工程师,掌握面向对象的java是不够的,还得掌握函数式编程语言,作为面向对象与函数式编程的集大成者Scala,大家最好也能掌握,毕竟比如spark和samza都是用scala实现的,不会它你还怎么玩下去呢?
    好了笔者说了这么多,希望大家能够做到以下三件事情,或许大家离高级实时计算工程师迈出了一大步哦,先恭喜一下,哈哈
    1.看笔者后续对官网文档的翻译及总结,英文好的可以直接看英文文档
    2.学习jvm和scala
    3.打开Samza源码畅游其中吧


文献检索题 1、检索自己所学专业的权威专家(写检索步骤与理想的结果) 2、论述怎构思毕业论文的框架?

如果没猜错的话,你是牡丹江师范学院的学生,西语系,大三的吧
09级文献检索课程期末考查题答案
1.读秀学术搜索中,检索主题词为“情报学”的电子图书有215种
杨起全主编的情报学
【出版商】 科学技术文献出版社 , 1988.06
【ISBN号】7-5023-0580-7
【页 数】 206 ; 19cm

【中图法分类号】G350 (文化、科学、教育、体育>科学、科学研究>情报学、情报工作>情报学)
获取此书方式:
按需印刷服务
文献互助
本省市馆藏借阅
2.CNKI数据库中
A302篇
B41篇

3 杨振宁生平
1922年 10月1日生于安徽合肥。
1938年 考入西南联大。
1942年 大学毕业,旋即进入西南联大的研究院。
1944年 以优异成绩获得硕士学位。
1945年 赴美入芝加哥大学。
1948年 获博士学位。
1949年 进入普林斯顿高等研究院做博士后。
1956年 和李政道共同发现宇称不守恒。
1957年 获得诺贝尔物理学奖。
1971年 在美国科学家中率先访华。
1986年 返国参加中研院院士会议。
1994年 荣获美国费城富兰克林学院颁发之波维尔(Bower)奖。
1996年 获清华、交通两所大学颁授荣誉博士学位。
研究成果:同李政道一起发现宇称不守恒之外,杨振宁还率先与米尔斯(R.L.Mills)提出了“杨-米尔斯规范场”,与巴克斯特(R.Baxter)创立了“杨振宁-巴克斯方程”。 费米-杨模型(1949),与李政道合作的二分量中微子理论(1957),与李政道和R.奥赫梅合作的关于C(电荷共轭变换)和T(时间反演变换)不守恒的分析(1957),与李政道合作的高能中微子实验分析(1959)和关于W粒子的研究(1960~1962)。与吴大峻合作的CP(宇称)不守恒分析(1964),规范场的积分形式理论(1974),与吴大峻合作的规范场与纤维丛的关系(1975),与邹祖德合作的高能碰撞理论(1967~1985)等。
1957年获得诺贝尔物理学奖
4.一般来说,文献检索可分为以下步骤:
(1)明确查找目的与要求。
(2)选择检索工具
(3)确定检索途径和方法
(4)根据文献线索,查阅原始文献

检索结果随便找一个专业的权威专家 找两篇他写过的文章就可以了
下面是法学专业的同学可以写的:
《国际刑法问题研讨会综述》,高铭暄,《法学家》2002年第4期  
《正当防卫问题研究》,高铭暄,《刑XX丛》(第6卷),法律出版社2002年版   
《中国未成年犯刑事责任立法研究》,高铭暄,《国际刑法问题研究》,中国方正出版社2002年版   
《从两则案例看依命令行使职务行为的正当化》,高铭暄,《检察日报》2002年11月15日理论版
论述题一
1、论文题目:要求准确、简练、醒目、新颖。
2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录)
3、提要:是文章主要内容的摘录,要求短、精、完整。字数少可几十字,多不超过三百字为宜。
4、关键词或主题词:关键词是从论文的题名、提要和正文中选取出来的,是对表述论文的中心内容有实质意义的词汇。关键词是用作机系统标引论文内容特征的词语,便于信息系统汇集,以供读者检索。 每篇论文一般选取3-8个词汇作为关键词,另起一行,排在“提要”的左下方。
主题词是经过规范化的词,在确定主题词时,要对论文进行主题,依照标引和组配规则转换成主题词表中的规范词语。
5、论文正文:
(1)引言:引言又称前言、序言和导言,用在论文的开头。 引言一般要概括地写出作者意图,说明选题的目的和意义, 并指出......余下全文>>
 

最先进的3D引擎构架

你好!~

一个难以实现的想法
MYSQL初学者使用指南与介绍
第一次使用多线程,领教到它的威力和脾气
第一次使用多线程,领教到它的威力和脾气
DirectX 9高层着色语言介绍
ZLib2000 3D加速渲染2D游戏
ZLib2000 融和+边缘模糊
Keyboard shortcuts
ZLib2000 即时光影
ZLib2000 即时光影
基于IE浏览器的图形聊天室(类可乐8)
ZLib2000 3D引擎
电视互动点播系统
Zephyr 3
关于大型网站的构架问题
冒泡排序的算法分析与改进
冒泡排序的算法分析与改进
在不同计算机上配置 BizTalk Server(运行时)和 BAS
两个有用的oracle数据库运算:intersect和minus运算
一个基于exosip的软电话例子
自绘菜单的实现
动态分组查询
ASP.NET 安全性
Squid做反向加速,配合DNS轮询实现简单负载均衡典型配置
Squid做反向加速,配合DNS轮询实现简单负载均衡典型配置
[dotNET]COM组件转换成.NET组件{ZT}
C++文件I/O示例
登陆
OSI网络结构的七层模型-网络大典
使用C#编程将websphere MQ 5.3 windows客户端消息发送到linux服务器端
Delphi 与 Word_VBA
设置Windows系统NTFS某个目录的用户访问权限(c#)
保存数据到 olevariant
delphi 常用函数
delphi 常用函数
精妙SQL语句介绍
文件与目录
口腹之欲的文化情怀(ZT)
口腹之欲的文化情怀(ZT)
linux partition table on PC
网络函数库
网络函数库
文件与Olevariant
TCP/IP协议-网络大典
TCP/IP协议-网络大典
关于时间函数
直接访问WebBrowser控件中的HTML源码
直接访问WebBrowser控件中的HTML源码
MVC架构模式
JNI字符集的转换
用C#开发opengl
SIP基本应用
vector方法
ADO.NET读书笔记系列之------ADO.NET概述
Delphi 与 Excel (二)
TStrings的AddObject方法应用
TStrings的AddObject方法应用
fileStream
数据补丁
面向实时物流作业的板坯库管理系统
数据压缩 -- 源码
HTML中的数据绑定(Data Binding)
.NET中的xpath
数据压缩 -- 应用
独立开发并公开源代码的项目
双精度浮点数的加法计算误差及其避免的初步方法
双精度浮点数的加法计算误差及其避免的初步方法
提高FastReplace速度 (fStrRep.pas)
C#的四个基本技巧
Tapestry + Spring + Hibernate 整合工作及相关问题
掌通无线短信平台演示版客户常见问题汇总
广角霸王!尼康800万像CP8400震撼上市
广角霸王!尼康800万像CP8400震撼上市
26个日文片假名导致Access搜索(80040e14/内存溢出)的解决办法
PHP写的挖金子游戏
如何创建原生的窗口程序
eclipse +cvs 的基本使用方法
如何创建原生的窗口程序
java 数据库基本操作
OSI网络结构的七层模型--网络大典
武钢2250mm热轧厂生产物流管理系统的研究与开发
数据结构学习笔记(C语言描述)
引导协议--网络大典
工作流基于Jboss与Mysql的环境配置
仿真视频手机的设计思想
Jdom使用指南
......余下全文>>
 

相关内容