1. 首页
  2. 其他

大数据新手学习路线指南

本文讲解大数据新手的学习路线图,让零基础的同学,可以了解到自己该学什么,怎么学,学习的先后顺序是什么。也了解到大数据技术整体的框架图,让新手对大数据有个大体的认识。

首先我想说明的是:大数据的框架实在太多太多了,以流式计算为例,你就可以选择Spark streaming,storm,flink等,而作为新手,我们肯定应该首先选择比较热门的主流的框架进行学习,下面我画了一张图概括了新手应该优先学习的框架:

大数据整体架构图

我们应该学什么?

结合图,我们可以看出,大数据处理主要可以分为三部分,离线计算,实时计算,即席查询,
而整个大数据的架构,一般是从数据源—>数据采集—>数据存储与计算—>数据挖掘—>可视化
因此我们也不难得出新手的学习路线,假如你想独立开发一个完整的大数据项目,你所需要学习的是:
1. 数据源层:必须要会一两门数据库技术,比如mysql,oracle。另外掌握一些半结构化的数据源,比如json用的很广泛。其实当你走入大数据这道门,你会发现还有好多数据存储格式,比如parquet等。
2. 数据采集层:既然有了数据,那么肯定先得采集才能做后续的处理,数据采集方式真的蛮多,图中不全,作为新手应该重点掌握Sqoop和Flume,Sqoop是关系型数据库和Hadoop体系进行互导的有利工具,一般用作离线的计算分析。Flume是日志采集的有利工具,既可以用于离线分析也可以实时分析。
3. 数据存储与计算层:采集到了数据之后肯定得要进行存储和计算吧,而存储与计算,就可以走离线,实时,即席三条路了。比如要统计一年的销量,那么可以用离线处理,我们所熟知的批处理就是离线处理了。又比如双十一天猫实时大屏,那就是实时技术了。而即席查询指的是用户根据自己的需求,灵活选择查询条件,系统根据用户的选择生成相应的统计报表,即普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。
* 离线处理:需要重点掌握MapReduce,HIVE,Spark也可用于离线计算。
* 实时处理:需要重点掌握Kafka,SparkStreaming(Flume+Kafka+SparkStreaming是非常经典的架构),另SparkStructureStreaming真的是蛮不错的,比SparkStreaming具有很多优势,只不过出来的比较晚,较少公司在用。Storm在金融行业用的比较多,对需要高可靠性的系统来说,Storm是不错的选择,Flink出来之后抢了蛮大的风头,现在BAT都在用了,所以我建议可以学完SparkStreaming之后选择Storm和Flink其中之一进行学习。
* 即席查询:即席查询可以用ImpalaSparkSQL,Impala与Kudu组合比较多,比如小米就在用这个架构。
4. 数据挖掘层:大数据给我们带来的价值很多都是靠数据挖掘的,比如我们最熟悉的推荐系统,用户画像,淘宝凭什么能给你精准推荐你可能喜欢的物品,靠的就是数据挖掘,数据挖掘,现在用SparkML用的比较多,Mahout也是不错的选择。
5. 可视化:我们做的一切处理最终都是需要可视化的,就像双十一实时大屏那样,新手推荐学习Echarts因为是开源免费的,而且功能也蛮强大的。
当然了,我们肯定会有一些辅助性的东西,比如说Oozie,工作流调度系统,假如你需要在凌晨两点执行某个作业,你肯定不能手工了,那么Oozie的作用就来了,Azkaban也是可以的哦。再比如Hue,大数据可视化神器,比如你可以直接在Hue上执行sql语句,就不需要登录到你的linux上去跑sql语句了。还有ClouderaManager,集群管理利器,可是实时监控你组件的运行状况。这些不是说必须要掌握,不掌握你也可以完成你的任务,但是能为我们省心省事,何乐而不为呢。
把这些基础的,必须要掌握的框架学会之后,一定要独立开发一个项目练练手,实时系统,离线系统,即席查询系统,三管齐下,这样才是真正的掌握了。

学习的顺序是怎样的?

1:Linux\Java:这是基础,不懂Linux,你没办法去搭环境,没环境什么都白讲。不懂JAVA,MapReduce等东西你就看不懂了。但是入门阶段,这两东西,也不需要掌握的很深,掌握基础就ok。
2:HDFS\MapReduce\Yarn\Zookeeper:这四个是大数据的基石,HDFS–>分布式文件存储,MR–>分布式计算,Yarn–>调度,Zookeeper–>分布式协调服务,其他框架基本都离不开这四个,所以首要任务肯定是学会这四个。
3:Hive:学完了MR之后你会发现–好复杂啊!HIVE就来了,HIVE是数据仓库,用SQL来为你解决MR复杂编程。
4:Hbase:大数据必然离不开NOSQL列式数据库,好好学HBASE!
5:Sqoop\Flume:这两个是工具,Sqoop用于RDBMS和Hadoop之间数据的互导,Flume是收集日志的工具。比较简单,也不需要太深究原理!会用就行!
6:Kafka:消息系统,大数据肯定离不开消息系统了!
7:Spark:这是重点!基于内存的计算能比MapReduce快100倍!功能非常强大,既有SQL,又有流处理,还有机器学习!
8:Oozie:企业中是离不开工作流调度的,这么多任务不可能都手工来做,所以掌握Oozie很有必要!或者学Azkaban也行。
9:Hue:我相信能有图形化界面,没多少人愿意用命令行吧。省事不少啊!Hue就是大数据图形化界面,例如查询HIVE,HBASE都能在HUE上完成。
以上是我认为必须掌握的,而接下的,我认为选择性学习吧,因为你能掌握上面的,就已经很不错了,学东西不能学太杂,要精通。当然了,下面这些如果有时间,也是很有必要学习的!
10:Impala:即席查询利器,实时分析查询引擎,比HIVE快了很多很多!
11:Storm或者Flink:流处理利器,相比Spark的流处理,它们具有自身不可比拟的优势,需要根据企业的业务需求来选择具体用哪个流处理框架。
12:Phoenix:如果说HBase是你的左手,那么Phoenix就是你的右手!!它是结合HBASE的神器!

BDStar原创文章。发布者:Liuyanling,转载请注明出处:http://bigdata-star.com/archives/826

发表评论

登录后才能评论

联系我们

562373081

在线咨询:点击这里给我发消息

邮件:562373081@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code