给刚玩Hadoop的朋友一些建议

关于Hadoop版本的选择?
php

   目前为止,做为半只脚迈进Hadoop大门的人,我建议你们仍是选择Hadoop 1.x用。可能不少人会说,Hadoop都出到2.4,为啥还用1.x呢,说这话一听就没玩过hadoop。mysql

   理由一: Hadoop 1.x和2.x是彻底两个不一样的东西,并非像说单机的webserver从1.0升级到2.0那么简单的事情。也不是说我如今用的mysql 5.0,只要编译一个新版本就直接无缝迁移到5.5的事情。Hadoop从1.0过分到2.0是整个架构体系所有推翻重写的。从实现方式到用户接口彻底是两个彻底不一样的东西,不要简单的认为那不过就像nginx从0.8升级到1.4同样。因此我给的建议是,生产环境用1.x,实验环境部署2.x做为熟悉使用。
linux

   理由二: 依然是,Hadoop不是webserver,分布式系统尽管Hadoop实现出来了,可是他仍然是很是复杂的一套体系,单说HDFS存储,之前Hadoop 0.20.2想升级到0.20.203,首先你须要在全部节点部署上新版的Hadoop,而后中止整个集群的全部服务,作好元数据备份,而后作HDFS升级,还不能保证HDFS必定能升级成功。这样升级一次的代价是很大的,停服务不说,万一升级不成功能不能保证元数据完整无误都是不可预知的。远比你想象的麻烦的多得多得多。千万不要觉得有了Cloudera Manager或者其余管理软件你就真的能够自动化运维了,部署Hadoop只是万里长征的第一步而已。
nginx

   理由三: Hadoop 2.x目前很不稳定,Bug比较多,更新迭代速度太快,若是你想选择2.x,想清楚再作决定,这玩意不是说你选择新的版本就万无一失了,Openssl多少年了,还出现了心脏滴血的漏洞,况且刚出来才不到一年的Hadoop2,要知道,Hadoop升级到1.0用了差很少7,8年的时间,并且通过了无数大公司包括Yahoo,Facebook,BAT这样的公司不停的更新,修补,才稳定下来。Hadoop2才出现不到一年,根本没有通过长期稳定的测试和运行,看最近Hadoop从2.3升级到2.4只用了一个半月,就修复了400多个bug。
web

   因此,不建议你们如今直接在生产集群就上2.x,再等等看吧,等稳定了再上也不迟。若是你们关注Apache JIRA的话,能够看到Hadoop 3.0已经开始内部bug跟踪了。
sql


关于Hadoop的人才?
数据库

   我以为企业须要从两个方面来考虑hadoop的人才问题,一个是开发人才,一个是维护人才。
编程

   开发人才目前比较匮乏,基本都集中在互联网,但这个是一个在相对短期内能解决的事情,随着Hadoop培训的普及和传播。以及Hadoop自己在接口方面的完善,这样的人才会愈来愈多。
windows

   维护人才我以为互联网外的行业一段时间内基本不用考虑,不是太多了,而是根本没有。Hadoop和云计算最后拼的就是运维,大规模分布式系统的运维人才极难培养。特别是DevOps,自己DevOps就很稀缺,而在稀缺人才中大部分又是用puppet, fabric去搞web运维的,转向分布式系统运维难度仍是有的。因此这种人才很难招聘,也很难培养。参看左耳朵耗子的InfoQ访谈 http://www.infoq.com/cn/articles/chenhao-on-cloud服务器

   而后你须要明确本身想要的开发人才类型,打个比方Hadoop就好象是windows或者linux操做系统,在这个操做系统上,既能够用photoshop画图,又能够用3dmax作动画,也能够用Office处理表格,可是应用软件所实现的目的是不同的。这仍是须要CTO,CIO对大数据和Hadoop及周边应用有个起码的了解。不要把Hadoop跟mysql php或者传统的J2EE作类比,认为没什么难的,大不了外包。彻底不是这么回事。


关于Hadoop的培训内容?

   通过几家企业的Hadoop内部培训,我发现刚转型企业都有一个问题是贪多。想作一次培训把hadoop和周边全部东西都了解透了,比较典型的是我最近去上海培训的一个公司,从Hadoop到HBase到Mahout到分词到Spark Storm全要听。而后培训机构就只能找几个老师分别讲不一样的内容,我以为这种培训对企业的意义不大,顶多就是给员工一个扎堆睡午觉的机会。

   第1、Hadoop就不是一两次讲课就能搞明白的东西,除了理论知识,还须要大量的实践经验的支持。

   第2、每一个Hadoop生态组件都是一个很复杂的玩意,使用确实简单,可是要真正理解每个组件没那么容易。尤为是Mahout,Spark,R这些涉及大量统计学和数学理论的玩意,你叫一帮搞产品的,毫无编程和统计学背景的人来听课,他们真的只能睡午觉,我都以为让他们过来听Hadoop是很残忍的事情,明明听不懂,由于领导在旁边,还不得不努力坚持不睡觉。

   第3、每一个人擅长的领域不一样,没有任何一个老师既能讲Windows服务器运维,又能讲Excal高级技巧还能讲3DMax动画PhotoShop绘图的。而培训机构为了抢单,每每承诺企业找几个老师一块儿讲,企业也每每以为,同样的价格,我把全部都听了,多爽啊。其实否则,每一个老师的讲课风格,知识点水平,内容设计都是不一样的,鸡肉,面粉,蔬菜放在一块儿不必定是大盘鸡和皮带面,也颇有多是方便面,最后搞得食之无味弃之惋惜。因此企业在选择作培训的时候必定要有的放矢,不要搞大而全,浪费资源不说,还毫无效果。能够分开几种不一样的培训方向,找不一样的,专业性强的培训机构来完成。固然,这也须要CTO,CIO具备必定的想法和眼光,更多的是,起码你做为领导者,应该比别人了解的更多一点,不是说技术细节上的,而是技术方向上的把握要比员工更精准。


关于与传统业务的对接?

   这个也是不少人关心的,特别是传统企业,以前用的是Oracle,大量的数据存放在里面,一会儿用Hadoop替代是不可能的。这个我以为就属于想多了,Hadoop说白了是离线分析处理工具,目的不是代替你的数据库,事实上也根本不可能代替关系型数据库。他所做的是关系型数据库作不了的脏活累活,是原有业务架构的补充,而不是替换者。

   并且这种辅助和替换是逐步完成的,不能一蹴而就,在我所认知的范围内,没有任何一家公司上来就说我直接把mysql不用了,直接上Hadoop,碰上这样的,我首先会赞叹他的决心,而后我拒绝给他出方案,我会明确告诉他,这样是不可能的。

   Hadoop提供了多种工具给你们作传统数据库业务的对接,除了sqoop,你还能够本身写,Hadoop接口很简单的,JDBC接口也很简单的。

相关文章
相关标签/搜索