从0到1,成为大数据行业领袖

目前最火的大数据,很多人想往大数据方向发展,想问该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统、硬件、网络、服务器感兴趣?是软件专业,对软件开发、编程、写代码感兴趣?还是数学、统计学专业,对数据和数字特别感兴趣。

其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/ 设计/ 架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。

先扯一下大数据的4V特征:

数据量大,TB->PB

数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

处理时效性高,海量数据的处理需求不再局限在离线计算当中。

现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

文件存储:Hadoop HDFS、Tachyon、KFS

离线计算:Hadoop MapReduce、Spark

流式、实时计算:Storm、Spark Streaming、S4、Heron

K-V、NOSQL数据库:HBase、Redis、MongoDB

资源管理:YARN、Mesos

日志收集:Flume、Scribe、Logstash、Kibana

消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ

查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

分布式协调服务:Zookeeper

集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager

数据挖掘、机器学习:Mahout、Spark MLLib

数据同步:Sqoop

任务调度:Oozie

眼花了吧,上面的有30多种吧,别说精通了,全部都会使用的,估计也没几个。就我个人而言,主要经验是在第二个方向(开发/设计/架构),且听听我的建议吧,有安装教程。

初识Hadoop

1.1 学会百度与Google

不论遇到什么问题,先试试搜索并自己解决。Google首选,翻不过去的,就用百度吧。

1.2 参考资料首选官方文档

特别是对于入门来说,官方文档永远是首选文档。相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。

1.3 先让Hadoop跑起来

Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。

关于Hadoop,你至少需要搞清楚以下是什么:

Hadoop 1.0、Hadoop 2.0

MapReduce、HDFS

NameNode、DataNode

JobTracker、TaskTracker

Yarn、ResourceManager、NodeManager

自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。建议先使用安装包命令行安装,不要使用管理工具安装。另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.

1.4 试试使用Hadoop

HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。知道Hadoop的系统日志在哪里。

1.5 你该了解它们的原理了

MapReduce:如何分而治之;HDFS:数据到底在哪里,什么是副本;

Yarn到底是什么,它能干什么;NameNode到底在干些什么;Resource Manager到底在干些什么;

1.6 自己写一个MapReduce程序

请仿照WordCount例子,自己写一个(照抄也行)WordCount程序,

打包并提交到Hadoop运行。你不会Java?Shell、Python都可以,有个东西叫Hadoop Streaming。如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。

大数据方向的工作目前分为三个主要方向: 01.大数据工程师 02.数据分析师 03.大数据科学家 04.其他(数据挖掘本质算是机器学习,不过和数据相关,也可以理解为大数据的一个方向吧)

总结如下:

必须技能10条: 01.Java高级(虚拟机、并发) 02.Linux 基本操作 03.Hadoop(此处为侠义概念单指HDFS+MapReduce+Yarn ) 04.HBase(JavaAPI操作+Phoenix ) 05.Hive(Hql基本操作和原理理解) 06.Kafka 07.Storm 08.Scala需要 09.Python 10.Spark (Core+sparksql+Spark streaming )

高阶技能6条: 11.机器学习算法以及mahout库加MLlib 12.R语言 13.Lambda 架构 14.Kappa架构 15.Kylin 16.Aluxio

二、学习路径

由于本人是从Java开发通过大概3个月的自学转到大数据开发的。所以我主要分享一下自己的学习路劲。

第一阶段: 01.Linux学习(跟鸟哥学就ok了) 02.Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)

第二阶段: 03.Hadoop (董西成的书) 04.HBase(《HBase权威指南》) 05.Hive(《Hive开发指南》) 06.Scala(《快学Scala》) 07.Spark (《Spark 快速大数据分析》) 08.Python (跟着廖雪峰的博客学习就ok了)

第三阶段: 对应技能需求,到网上多搜集一些资料就ok了,

我把最重要的事情(要学什么告诉你了), 剩下的就是你去搜集对应的资料学习就ok了

当然如果你觉得自己看书效率太慢,你可以网上搜集一些课程,跟着课程走也OK 。这个完全根据自己情况决定。如果看书效率不高就很网课,相反的话就自己看书。

三,学习资源推荐:

01.Apache 官网 02.Stackoverflow 04.github 03.Cloudra官网 04.Databrick官网 05.过往的记忆(技术博客) 06.CSDN,51CTO 07.至于书籍当当一搜会有很多,其实内容都差不多。

最后但却很重要一点:要多关注技术动向,持续学习。

原文发布于微信公众号 - JAVA高级架构(gaojijiagou)

原文发表时间:2018-03-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hadoop学习

大数据hadoop入门之hadoop家族详解

大数据这个词也许几年前你听着还会觉得陌生,但我相信你现在听到hadoop这个词的时候你应该都会觉得“熟悉”!越来越发现身边从事hadoop开发或者是正在学习ha...

17520
来自专栏CDA数据分析师

嫌弃Hadoop?可能是你的打开方式有问题

原作者 Andrew Brust 编译 CDA 编译团队 本文为 CDA 数据分析师原创作品,转载需授权 关于 Hadoop 所谓的消亡,以及它跌落神坛的报...

21690
来自专栏华章科技

2分钟读懂大数据框架Hadoop和Spark的异同

谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是停留在字面上,并没有对它们进行深入的思考,下面不妨跟我...

10040
来自专栏开源优测

大数据测试学习笔记之hadoop家族

前言 在进行大数据测试之前,我们必须了解下大数据处理的的相关技术体系,今天主要学习和了解了hadoop家族,这里记录下来分享给大家。 hadoop家族产品 ha...

31960
来自专栏云计算D1net

为什么不改进MapReduce,而要取代它?

MapReduce的高延迟已经成为Hadoop发展的瓶颈,为当前的MapReduce寻找性能更高的替代品已成为Hadoop社区的一个共识。 MapReduce ...

44560
来自专栏Albert陈凯

《Hadoop大数据技术体系:原理、内幕与项目实践》课程体系

《Hadoop大数据技术体系:原理、内幕与项目实践》课程体系 课程特色: 本课程以 “互联网日志分析系统”这一大数据应用案例为主线,依次介绍相关的大数据技...

43650
来自专栏腾讯大数据的专栏

飞起来的大象-Hadoop从离线到在线

时代在变迁,市场在变化,周边的软硬件环境也突飞猛进般的发展,同时企业的业务需求也不断升级,从规模到成本都有较高的要求,这刺激Hadoop生态圈的变革。据AMR研...

30880
来自专栏大数据技术学习

常用的大数据技术有哪些?hadoop学习总结

大数据技术为决策提供依据,在政府、企业、科研项目等决策中扮演着重要的角色,在社会治理和企业管理中起到了不容忽视的作用,很多国家,如中国、美国以及欧盟等都已将大数...

29120
来自专栏CSDN技术头条

Hadoop、Hive、Spark 之间是什么关系?

大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢...

1.9K80
来自专栏大数据

使用Hadoop分析大数据

大数据由于其庞大的规模而显得笨拙,并且大数据需要工具进行高效地处理并从中提取有意义的结果。Hadoop是一个用于存储,分析和处理数据的开源软件框架和平台。本文是...

22020

扫码关注云+社区

领取腾讯云代金券