2010 年是我从学校到公司的第一个年头, 7 月份离开学校踏入工作,开始有很多的不适应,其间心理的苦唯有自已知道,但是不管如何,也算熬过了 2010 年,收获谈不上,算是体验生活吧。
架构设计
前不久的一个小项目,让我感受到了架构设计的重要性, tim 里面有句话:架构师要有完美心态,今年有很多感悟,如果没有这种心态,始终需要有人为设计缺陷买单 。我就为缺陷买了一次单,教训够深的,错误连连不断的来,太可怕了。
编程语言
来到公司,发现 java 牛人多,从他们身上学到了很多,同时看到自已很多的未知,精通语言不是说说就可以的,一定要吃透这门语言的低层实现与设计,当然,随着互联网的发展,越来越多的语言出现了,如 erlang,python,scala 。 2010 年初学了一下 python 和 erlang ,知道二者的优缺点, 2011 年需要深入去学习 java 和 erlang ,了解其内部的技术机制。
分布式 & 数据库
随着各个互联网对海量数据处理的需求越来越多, hadoop 开源项目成为了首选,而要利用好 hadoop ,就需要真正吃透它,同时要时刻关注开源社区对它的优化,另外提出自已对某些特性的看法及优化。另外元数据结点成为了瓶颈,过去的一年,开源社区没有看到很好的解决方案,这需要 2011 年继续关注。
为了减少开发人员的编程代价,利用 SQL 就能处理海量数据, Hive 作为并行数据库,正是有这样的一项特性,将复杂的关系代数包装成 SQL ,让开发人员不需写 mapreduce 的 java 程序,而是写简单的 SQL 语句就能完成。 Hive 目前还有很多关系数据库里面特性没有实现,另外某些操作的效率还可以提高, 2011 年同样值得继续关注。
前面的 hadoop , hive 适用于离线数据处理,而随着业务需求,实时数据处理应用开始流行,公司在 2010 年已经有项目产出了,同时目前的 nosql 有好多实现版本,如 hbase,Cassandra,redis 等,但是都没有一个相对统一的解决方案,到底如何实时处理海量数据,还是一个问题。
海量数据处理算法
Apache 单独开了一个项目 openNLP 来支持这个,还是在学校时研究过这方面知识,比如关联分析,分类,聚类等,同时面对海量数据,就需要并行计算来支撑,于是有了另一个项目 -mahout ,运用 hadoop 实现了多种挖掘算法。
数据仓库
如何将数据像平常生活中的货物一样,从源生产地,搬运到加工厂,加工厂加工完后产出商品,再将商品推送到超市,提供给大家观看。这是一条流水线过程,中间步骤多并且针对不同的场景需要采用不同的工具,来保证数据的实时性和正确性。 Cloudera 公司有几个开源项目支撑它,如 sqoop,flume 。
博客
过去在学校没有重视这方面,后来发现写出来对自已的理解会更加深刻,坚持每周一篇博客,这样每周可以给自已的一个研究的小模块,同时写成小文章可以加深理解和与网友分享。
说了这么多,其实 2010 年的技术在2 011 年需要继续关注和深入,站在更高的角度看世界,每一个角落,都能看到,这种感觉会非常好。
参考:
http://timyang.net/programming/2010-review/
http://www.nosqlnotes.net/?p=128