开源分布式计算系统框架比较


分布式计算在许多领域都有广泛需求,目前流行的分布式计算框架主要有 Hadoop MapReduce, Spark Streaming, Storm。 这三个框架各有优势,现在都属于 Apache 基金会下的项目。
Hadoop MapReduce 是三者中出现最早,知名度最大的分布式计算框架,最早由 Google Lab 开发,使用者遍布全球,主要适用于大批量的集群任务,由于是批量执行,故时效性偏低,原生支持 Java 语言开发 MapReduce ,其它语言需要使用到 Hadoop Streaming 来开发。Spark Streaming 保留了 Hadoop MapReduce 的优点,而且在时效性上有了很大提高,中间结果可以保存在内存中,从而对需要迭代计算和有较高时效性要求的系统提供了很好的支持,多用于能容忍小延时的推荐与计算系统。Storm 一开始就是为实时处理设计,因此在实时分析/性能监测等需要高时效性的领域广泛采用,而且它理论上支持所有语言,只需要少量代码即可完成适配器。


阅读全文

写给她


如果有来生
我愿做一棵树
生长在你必经的路旁
站成永恒
没有悲欢的姿势
即使不能在尘土里安详
也要为你遮挡最后的希望

如果有来生
我愿做一阵风
轻抚过你心中的忧伤
不会徜徉
没有迷途的苦恼
即使不能唤醒春日芬芳
也要为你逐退冷冬残阳













阅读全文

OS X 下 iTerm2 实现 rz/sz 与服务器进行文件上传/下载


下载配置 iTerm2 的相关脚本:
这里是下载地址 https://github.com/mmastrac/iterm2-zmodem
将 iterm2-recv-zmodem.sh 和 iterm2-send-zmodem.sh 下载到本机,然后将它们放到/usr/local/bin目录下。
这两个文件赋予可执行权限:
chmod +x /usr/local/bin/iterm2-send-zmodem.sh /usr/local/bin/iterm2-recv-zmodem.sh

配置 iTerm2:
找到 iTerm2 的配置项:iTerm2的Preferences-> Profiles -> Default -> Advanced -> Triggers

配置项如下:

Regular ExpressionActionParametersInstant
rz waiting to receive.**B0100Run Silent Coprocess/usr/local/bin/iterm2-send-zmodem.shchecked
**B00000000000000Run Silent Coprocess/usr/local/bin/iterm2-recv-zmodem.shchecked

尤其注意最后一项,需要将 Instant 选项勾上,否则将不生效。
iterm2-lrzsz.png

阅读全文

Error: Can't set headers after they are sent


NodeJS 启动,出现如下报错。

Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:335:11)
at ServerResponse.header (/server/node/opstools/node_modules/express/lib/response.js:700:10)
at ServerResponse.send (/server/node/opstools/node_modules/express/lib/response.js:154:12)
at fn (/server/node/opstools/node_modules/express/lib/response.js:934:10)
at View.exports.renderFile [as engine] (/server/node/opstools/node_modules/ejs/lib/ejs.js:353:10)
at View.render (/server/node/opstools/node_modules/express/lib/view.js:93:8)
at EventEmitter.app.render (/server/node/opstools/node_modules/express/lib/application.js:566:10)
at ServerResponse.res.render (/server/node/opstools/node_modules/express/lib/response.js:938:7)
at /server/node/opstools/app.js:43:9
at Layer.handle_error (/server/node/opstools/node_modules/express/lib/router/layer.js:58:5)

阅读全文

NodeJS 我只需要一个店小二


美丽的七侠镇上有一条美食街,很多著名的饭店都开在这里,有老字号的 Apache、PHP, 最近几年火热的 Ruby on Rail,还有那些重量级的餐饮集团 Websphere、Weblogic 等。
这些饭店老板根据自己的实力,或多或少的雇佣了一些店小二来招待来客,这些小二干活都非常殷勤,没有一个偷懒耍滑,把顾客招待的舒舒服服,所以平日里饭馆运转的还不错,相安无事。
但是随着《武林外传》的拍摄和播放,七侠镇旅游业大爆发,游客像潮水一样蜂拥而至,现有的店小二招待不过来了,到了饭点,每家的门前都排起了长队,游客们吃不上饭,个个怨声载道。
看到这种情况,有些老板咬了咬牙,在人工费不断上涨的情况下,多雇了一些小二来帮忙,无奈总是赶不上顾客增长的速度。
某一天有个美国老外来到七侠镇上旅游,也看到了吃不上饭的问题,他仔细分析了一番后发现了一个秘密:原来这些店都采用了同一套叫做“全程贴心服务”的模式,这个模式很有意思:客人来了以后,马上有个店小二殷勤迎上去,带着找座位,点菜,给后厨下单。由于后厨做菜需要很长时间,店小二就在客人的旁边等着。后厨一摇铃铛,大喊一声:上菜,店小二马上端到客人面前,然后站在一边等着客人吃完。客人说:结账,小二收钱,找钱,送客,迎接下一位。通常这个时候门口都排成了好几百人了!
这个 VIP 服务实在是太贴心了!导致的结果很明显,饭店有几个店小二,就只能同时接待几个顾客。
老外一声不吭的回去了。
过了几个月,美食一条街上出现了一个巨火无比的饭馆:NodeJS
虽然这个饭店中人满为患,可门口竟然没有排队的!
更让人吃惊的是,这个店里声称:我只需要一个店小二。










阅读全文

折腾的博客


经过进一个月的折腾,博客终于稳定了下来。
由于这学期学习比较紧张,所以基本没有什么时间继续做论坛。
博客也准备重做了,前几天关掉了论坛,以后就以更新博客为主。
博客由 wordpress 升级到了 typecho。
typecho 没有了 wordpress 那样臃肿,小清新的风格,超简洁,我很喜欢。
博客换了新服务器,也加了 cdn,这样访问速度也能快一点。
准备把博客一直写下去。
慢慢坚持。
分享一些自己的生活经历,以及一些计算机方面的资料。
欢迎大家关注。

阅读全文

Puppet 推送文件测试


创建模块目录结构

[root@lost1 modules]# tree /etc/puppet/modules/
/etc/puppet/modules/
└── push
    ├── files
    │   └── puppet-test
    ├── manifests
    │   └── init.pp
    └── templates
4 directories, 2 files

阅读全文