#总目标
1. 实现数据流的自我结束
2. 实现批量处理
3. 支持Hadoop MR1.0的Map和Reduce接口
---
#前期回顾
1. 第一个月
- 第一周:因还有短学期仅仅配置了下环境,期间jdk的版本问题折腾了蛮久
- 第二周:运行例程,配合输出日志文件理解源代码,同时参看storm有关的源码解读(不得不说Clojure看起来很累人)
- 第三周:暑期社会实践占去不少时间,所以还在看源代码以及写一些零碎的测试代码
- 第四周前期:着手实现自我结束功能,大致拟定批处理实现框架
- 第四周后期:在向0.9.4版本迁移的同时继续实现自我结束功能
2. 第二个月
- 第一周:集中了解关于spout、bolt的那一块,测试运行Getting-started-with-storm所带的例程,根据所产生的日志文件解读数据流的传输原理。
- 第二周:着手实现批量处理的功能,拟在不过多影响spout和bolt的情况下从grouping的方式切入
- 第三周:因参加VLDB 2014的志愿者活动,无多进展
- 第四周:补全剩余工作
---
#遇到的坑
- 前期
- JDK新版本不支持MaxTenuringThreshold超过15,且一共需要修改3个地方的配置文件,经常没改全就编译了
- 承接上条,测试例程时worker建立不起来,因为此时还没有生成worker的log文件,同时其在supervisor中的错误提示过于笼统无法在网上找到准确解决方案。最后捣鼓了半天才得知是上面那条问题,配置没全部改过来。
- 编译例程源代码时需要增加额外的依赖
- 端口未配置妥当,导致worker不断向磁盘写日志文件,导致系统卡住
- yaml文件的格式要求不是一般的严格
- 后期
- 适配storm的例程仍需要一些修改才能正确跑jstorm,比如一些依赖包的导入
- jstorm的本体缓存文件夹未清理(可能由程序未正常结束导致)使得supervisor启动错误
- 写代码时考虑不成熟导致整个方案需要推倒重来
- 自己对时间与工作量的预估能力还不够
---
#中期感想
- 初期很难进入状态,因为一无所知,这时就需要足够平和的心态
- 阅读源码是一个需要足够清晰思路的过程
- 遇到的错误问题有时候找了一圈才发现是自己手贱没有写好配置信息,所以慢慢思考有时能快速找到解决方案
- 开源是一件很有趣的事,在storm-user的group里能经常看到storm作者nathanmarz帮助解决问题的及整个社区的人之间的互助
---
#期末感想
- 像stackoverflow和google group是很好的问题解答地方,经常能得到豁然开朗的答案
- 有时候计划赶不上变化,不应当把计划排得太紧,否则一旦出现意料之外的事就会很赶甚至赶不上
- 拖延症得治
- 课堂终究是按照培养计划学习,自学能提供更广阔的天地,这次开源活动就是一个很好的平台
---
#附加文件
- [自结束测试日志](https://drive.google.com/file/d/0B-uGPHwTRE-QUnMxaU5rakZNVGs/edit?usp=sharing)
- [批处理测试日志](https://drive.google.com/file/d/0B-uGPHwTRE-QLXBRLWpzbEFVXzg/edit?usp=sharing)
CDSN夏令营期终报告
最新推荐文章于 2024-08-22 23:58:18 发布