给刚学习Hadoop朋友的一些建议

  说到大数据,很多人纷纷开始关注大数据和Hadoop以及数据挖掘和数据可视化了,我现在创业,遇到很多传统数据行业往Hadoop上面去转型的公司和个人,提了很多问题,大多数问题还都是差不多的。所以我想整理一些,也可能是很多人都关注的问题。

  

  关于Hadoop版本的选择?

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

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

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

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

  所以,不建议大家现在直接在生产集群就上2.x,再等等看吧,等稳定了再上也不迟。如果大家关注Apache JIRA的话,可以看到Hadoop 3.0已经开始内部bug跟踪了。

  关于Hadoop的人才?

  我觉得企业需要从两个方面来考虑hadoop的人才问题,一个是开发人才,一个是维护人才。

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

  维护人才我觉得互联网外的行业一段时间内基本不用考虑,不是太多了,而是根本没有。Hadoop和云计算最后拼的就是运维,大规模分布式系统的运维人才极难培养。特别是DevOps,本身DevOps就很稀缺,而在稀缺人才中大部分又是用puppet, fabric去搞web运维的,转向分布式系统运维难度还是有的。所以这种人才很难招聘,也很难培养。

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

  关于Hadoop的培训内容?

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

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

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

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

  关于与传统业务的对接?

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

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

  Hadoop提供了多种工具给大家做传统数据库业务的对接,除了sqoop,你还可以自己写,Hadoop接口很简单的,JDBC接口也很简单的。

时间: 2024-08-01 10:27:15

给刚学习Hadoop朋友的一些建议的相关文章

.NET(C#)开发刚入门的朋友请进来,有共同学习进步机会。

问题描述 因为本人即将要到北京工作,也因为在北京没有认识的朋友.所以有个想法:本人有五年.NET(C#)软件开发(C/S.B/S)经验,借此想找在软件或网站开发刚入门且要培训学习的朋友,将把我个人的特长开发技术免费提供培训(以项目开发实践为主).但本人有个要求:因为在北京没有认识的朋友,想在培训开发技术期间要求能提供住宿.希望能在这里找到共同学习进步的朋友.详细的情况可以加我QQ:249321675详谈. 解决方案 解决方案二:支持你,呵呵,很不错的idea解决方案三:呵呵...解决方案四:有了

什么是Hadoop,怎样学习Hadoop

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序.HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据. Hadoop的框架最核心的设计就是:HDFS和

大讲台浅谈什么是Hadoop及如何学习Hadoop

首先hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序.HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streamingaccess)文件系统中的数据. Hadoop的框架最核心的设计就是:HDFS和MapRe

给Hadoop初学者的一些建议

零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.从一开始什么都不懂,到能够搭建集群,开发.整个过程,只要有Linux基础,虚拟机化和java基础,其实hadoop并没有太大的困难.下面整理一下整个学习过程,给大家一个参考. 零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.从一开始什么都不懂,到能够搭建集群,开发.整个过程,只要有Linux基础,虚拟机化和java基础,其实hadoop并没有太大的困难.下面整理一下整个学习过程,给大家一个参考. 首先我们要了解h

一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop                     NameNode.DFSZKFailoverController(zkfc)slaver1    192.168.199.131    jdk.hadoop                       NameNode.DFSZKFailoverController(

openwrt luci-关于刚学习luci 界面修改时的疑问

问题描述 关于刚学习luci 界面修改时的疑问 1.通过cbi,将界面中的值修改后,会将其自动保存到相应的config中,其中的ui方式的实现方式,基本的工作流程是怎么样的? 比如说,我不想保存到etc/config下的配置文件中,想要保存到其他文件中具体该怎么做 2.entry 第一个参数path 的第三项或者之后几项的具体作用是什么, 比如说第三个参数如果我定义为"" 则无法形成我创建的界面,那我随便定义一个值,就能出现我的界面,那是否说第三个参数的值可以随我们定义,没有多大作用,

学习3DS的50条建议

这是我看过的最犀利的也是最好的建议.不知道是谁写的但这个人肯定是有经历的人,从他的话里我感觉的出来.他所说的人很像我,有时候很坚持的做3D有时候却希望玩MAYA我到底属于能坚持的人呢还是浮躁的人呢?反正看了这50条建议以后我心理有点震动所以把这50调建议推荐给大家. 学习3DS的50条建议! 1.有明确的目的或兴趣,针对性地下手. 2.初学者请不要看太多太多的书那会误人子弟的 3.看<c:3smax4help>,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被粒子,动力学,插件等词汇

需要一个简单的逻辑算法思路,求哪位朋友给点建议。

问题描述 需要一个简单的逻辑算法思路,求哪位朋友给点建议. 10C 我已经在MFC中创建一个Clistbox列表,然后打开一个文件夹历遍之后,获得文件夹内所有文件的绝对路径并传送到了Clistbox列表之中.我现在想要做的是,在列表中 按每一定数目的文件(假设20个) 读取,并多开一个线程并将它按某种算法进行加密(类似MD5之类的算法).这个地方 我没有思路. 应该怎么写,调用api函数.有做过类似项目的朋友 给点建议. 解决方案 首先,不是"历遍",是"遍历"然后

c语言-求帮助写一个代码 刚学习数据结构 实在是搞不懂 求大神帮忙谢谢

问题描述 求帮助写一个代码 刚学习数据结构 实在是搞不懂 求大神帮忙谢谢 好心人帮忙翻译好了 求大神帮忙写一下代码 谢谢大家了 解决方案 你的需求,要至少4000C币,你给的100太少了 解决方案二: http://blog.csdn.net/qq_31766907/article/details/50331951这个链接,你看看,或许能帮到你.