想从事大数据、海量数据处理相关的工作,如何自学打基础?

海量数据分成两块,一是系统建设技术,二,海量数据应用。先说系统建设,现在主流的技术是HADOOP,主要基于mapreduce的分布式框架。目前可以先学习这个。想从事大数据、海量数据处理相关的工作,如何自学打基础?

但是我的观点,在分布式系统出来之前,主要是集中式架构,如DB2,oracle。为什么现在用分布式架构,那是因为现在集中式架构受限于IO性能,出来速度慢,如果又一种硬件技术,可以很快地处理海量数据,性能上能满足需求,那么集中式架构优于分布式架构,因为集中式架构稳定,运维压力小。现在的集中式架构要么性能达不到要求,要么就是过于昂贵。我期待一种技术出现,可以非常快地传输和处理数据,那么集中式架构将再次进入人们眼球。再说海量数据应用。

 

海量数据应用主要是数据挖掘和机器算法。具体有不同的应用场景,如个性化搜索和推荐,社交网络发现,精准营销,精准广告,实时最优路径,人工智能等等。看你想做系统支撑技术还是与业务结合的应用技术。

 

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:199427210,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系


 

1. 自己装个小集群跑hadoop/hive,可以到cloudera网站上下现成的打包虚拟机。看看hadoop in action. 这本书比权威指南容易懂很多。
2. 装个cassandra什么的玩玩,在上面架个小项目,比如留言板什么的。。
3. 读一些著名的paper,nosql的或者mapreduce。
4. 看看apache hadoop家族的其他几个项目,比如zookeeper,pig,了解一下生态圈
到这里为止你大概有个概念,知道bigdata怎么回事了
找个开源项目,看看ticket list,看看能不能自己修。。
能的话看看能不能混进项目组
个人觉得,大数据要靠实践多一点。在真的上百上千节点的cluster上跑hadoop和自己虚拟机架的完全不同。cluster上跑各种奇葩的事情单机都是碰不到的。。就好比dba靠读书考证很难牛屄一样。所以最终还是要找个公司实战。。不过如果上面几个都做到的花,基本上应聘大数据公司问题不大了。
----------------------------------
做大数据平台工作现在满一周年多几天,再看上面的答案觉得说得不是很到位。
在国内的环境下,似乎还是Hadoop用得更多,其他更fancy的东西比如presto/spark什么的,湾区也算是新鲜事物,并不是很多公司都在用(也有原因是真的适用的公司也不算太多了)。更实际节省的做法是,学Hadoop,至少要了解系统架构和数据的流向,比如怎么partition,怎么shuffle,combiner怎么work之类的大概念,对入门人士面试官大多也就是面这些,不会问太深,再深入的问题,是留给有行业经验的人的。对刚入门想入行的人,知道上面这些,再写写类似Word Count(大数据版的helloworld),之类的有个实际概念,就可以找公司面着玩看了。
其他东西可以都了解个皮毛,跟上社群的演进。大数据更多是工程的东西,不是那么学术,多看看比深挖一个对初学者更有好处。每个工具被发明,都是解决一个特定问题的,大数据没有一个产品是万能的,都是解决某个特定问题来的,看到新鲜事物就想想为什么需要这样的工具,背后有什么需求。
比如有了Hive为什么facebook还要搞Presto;为什么Hadoop 2.0要做Yarn。看的时候多想想这个,视野就会更开阔。
建议如果想深入学习,没有什么比找个真的做相关行业的公司来的靠谱了。工程的东西,尤其是这样新鲜出炉的工程领域,光看书看资料是没有任何用处的,你很难了解每个技术背后的关键,也很难了解实践中会遇到的问题。我之前打杂过的实验室,到处找客户免费用他们的产品,每个出去的学生都会义务跟雇主推荐实验室的产品,为什么,因为没有真的在PB级别的数据上跑,你就不知道哪里设计有问题。你深入看一个项目,就会发现,其实用得技术没什么新鲜深奥的,比如你看Hive或者Presto,会发现用到的技术,在Query引擎领域只能算是入门级的知识,传统数据库厂商都用了几十年了。真正好玩的是,每个Feature设计是如何切入大数据这个背景的。
所以说,没有比找一家公司真的干一段时间更能让你了解大数据的了。当然请别被忽悠去拿大数据做噱头的公司了。现在有些公司招聘,就算不用hadoop也会往上写,反正去了老板会说,现在数据不够,以后肯定会需要Hadoop的。