Hadoop的学习历程
说是历程,其实也就两个月。但两个月的时间也是有颇多感慨的。
两个月前,我加入了“大数据处理”小组(十几个人组成的学习小团队)。大数据处理,一听就觉得高大上,想一探究竟,也就加入了这个学习小组。
既然决定要干,那么肯定要行动起来(Action speak louder than words!)。因此,一加入这个团队,带头人豪翔就给我们交代了接下来要做的事,“当务之急,是要搭建好hadoop平台,因为hadoop就是用来做大数据处理的”。因此,在接下来的一个星期里,主要就耗在这上面了。
光是搭建这个平台,就出现了不少问题。首先是安装双系统,在win7的基础上再装一个linux系统,因为hadoop的运行环境是在这种操作系统的基础上搭建的。我们统一选择装ubuntu12.04这个系统,然后我们开始在网上搜索相关资料,站在前人的肩膀上来更快地解决这一问题。但新手毕竟是新手,遇到问题总是难免的,光是装这个系统,我就重装了四五次,最后才解决。然后就是安装jdk,因为hadoop就是用java写的。最后才是安装hadoop。在这个过程中,问题层出不穷。有些小组成员用win8系统装出现的问题更多,导致系统崩溃而丢失原系统资料的,系统不能启动而到维修部做处理的.....真是好不无奈。好在我们是一个团队,我们之间的互相讨论、帮助最终使这些问题都被KO掉。之后,我们每个人还专门针对安装出现的问题各自出了一篇博客。建议想搭Hadoop平台的看这篇图文并茂的博客:http://weixiaolu.iteye.com/blog/1401931
这让我体会到了团队的力量,个人的力量是有限的,团队互相学习令我们每个人都进步得更快。这也就我们会每星期要开两次讨论会的原因了。
hadoop平台搭建好后(这时的我们搭建的是伪分布式,其运行方式和集群分布式一样,只是namenode和datanode是处在同一台机器上),之后的就是要用该平台做大数据的处理。我们这时哪里有什么大数据,因此也就用hadoop自带的Wordcount例子来处理了一些短小的像“hello world”式的几K的小文件一个几M的txt小说文件。由于hadoop是用来处理大数据的,是不适合处理这样的小文件的。因此,我们也只是借此大概了解一下它的运作机制。其实,并没有切实地感受到hadoop真正处理那种几百G以上的大数据的爽快。
这时的我们大概也就算是知道了有hadoop能处理数据这回事。但对于大数据,我们始终还没能真正地实践。再加上网络的不足,集群式分布式系统始终不能连成。这时,我们又快马加鞭地向hadoop的深层运行机制发起了进攻。研究hadoop的启动脚本,研究hadoop的源代码,研究hadoop的两大主要内容HDFS(Hadoop Distributed File System)和Map/Reduce。这时我们开始从事理论学习工作了,什么一致性哈希(涉及数据结构),什么多线程安全、分布式文件系统(涉及操作系统和网络),什么Map/Reduce编程(涉及java编程),每个涉及到的内容都可以说是一方土地(技术)养一方人(IT工作者),是一个个的大块头。这让我知道了什么叫作以点带面,从Hadoop出发而延伸出了那么多东西。我们向这些东西发起了狂轰乱炸,亦或是它们向我们发动了反击,搞得我们脑袋发胀。不管怎样,对这些理论知识的学习,让我感到学海无涯,知道的越多就会感到自己知道的越少,这大概就是长见识的感觉了。
是啊,两个月了,已经涨了知识和见识 。接下来,该怎么办呢?IT之路漫长啊,每天更新的知识都学不过来。就拿Hadoop来说吧,早就升级为Yarn了。一个个领域的限制被逐个击破,这当然是好的现象,这表明生产力的进步是如此之快。如何能适应这个信息化时代?如何能站在所处领域的制高点?这的确值得深思。靠!像是扯远了,这似乎是一个企业要思考的。但自己思考一下也无妨。
对上述问题也提出自己的几个看法:
1、站在巨人的肩膀上(牛顿如是说),前车之鉴,后事之师啊!
2、培养敏锐的眼光,像我现在就很看好云计算(当然看好的多着呢),它将是智慧地球和物联网这两个有远大前程的前沿方向的实现基础。正所谓,“平生不识云计算,徒干IT也枉然!”这就需要我们多看、多听、多交流。