总目标
- 实现数据流的自我结束
- 实现批量处理
- 支持Hadoop MR1.0的Map和Reduce接口
当前实现目标
- 基本实现数据流在单机模式上的自我结束,尚且存在一些迁移到0.9.4版本上的问题
- 已经有了基于0.9.3的大致框架,尚待迁移到0.9.4并完善
- 预计在后期实现支持Hadoop MR1.0的Map和Reduce接口
前期回顾
- 第一周:因还有短学期仅仅配置了下环境,期间jdk的版本问题折腾了蛮久
- 第二周:运行例程,配合输出日志文件理解源代码,同时参看storm有关的源码解读(不得不说Clojure看起来很累人)
- 第三周:暑期社会实践占去不少时间,所以还在看源代码以及写一些零碎的测试代码
- 第四周前期:着手实现自我结束功能,大致拟定批处理实现框架
- 第四周后期:在向0.9.4版本迁移的同时继续实现自我结束功能
遇到的坑
- JDK新版本不支持MaxTenuringThreshold超过15,且一共需要修改3个地方的配置文件,经常没改全就编译了
- 承接上条,测试例程时worker建立不起来,因为此时还没有生成worker的log文件,同时其在supervisor中的错误提示过于笼统无法在网上找到准确解决方案。最后捣鼓了半天才得知是上面那条问题,配置没全部改过来。
- 编译例程源代码时需要增加额外的依赖
- 端口未配置妥当,导致worker不断向磁盘写日志文件,导致系统卡住
- yaml文件的格式要求不是一般得严格
中期感想
- 初期很难进入状态,因为一无所知,这时就需要足够平和的心态
- 阅读源码是一个需要足够清晰思路的过程
- 遇到的错误问题有时候找了一圈才发现是自己手贱没有写好配置信息,所以慢慢思考有时能快速找到解决方案
- 开源是一件很有趣的事,在storm-user的group里能经常看到storm作者nathanmarz帮助解决问题的帖子以及整个社区的人之间的互助
后期计划
- 尽可能在八月上旬完整完成前两项要求,然后开始着手第三项要求
- 有了第一个月的基础以及更多空余的时间,相信能比较快地实现前两项要求
- 因为有一定的hadoop经验,开发接口应该能比第一个月顺利