大数据最佳学习路线

  要说当下IT行业什么最火?ABC无出其右。所谓ABC者,AI + Big Data + Cloud也,即人工智能、大数据和云计算(云平台)。每个领域目前都有行业领袖在引领前行,今天我们来讨论下大数据Big Data这个方向。

  二,大数据里面的角色

  角色一:大数据工程

  大数据工程需要解决数据的定义、收集、计算与保存的工作,因此大数据工程师们在设计和部署这样的系统时首要考虑的是数据高可用的问题,即大数据工程系统需要实时地为下游业务系统或分析系统提供数据服务;

  角色二:大数据分析

  大数据分析角色定位于如何利用数据——即从大数据工程系统中接收到数据之后如何为企业或组织提供有产出的数据分析,并且确实能够帮助到公司进行业务改善或提升服务水平,所以对于大数据分析师来说,他们首要解决的问题是发现并利用数据的价值,具体可能包括:趋势分析、模型建立以及预测分析等。

  这两类角色相互依存但又独立运作,何意?没有大数据工程,大数据分析便无从谈起;但倘若没有大数据分析,我也实在想不出大数据工程存在的理由。这就类似于结婚和谈恋爱——恋爱的目的是为了结婚,且不以结婚为目的的谈恋爱都是耍流氓。

  简单总结一下,大数据工程角色需要考虑数据的收集、计算(或是处理)和保存;大数据分析角色则是执行数据的高级计算。

  

  三,大数据工程师

  针对角色一:大数据工程说,对应的工作岗位就叫大数据工程师,对于大数据工程师而言,您至少要掌握以下技能:

  linux基础

  因为大数据体系,基本都是开源软件,这些开源软件都是在开源的linux系统上运行的,所以你必须会基本的linux操作,比如用户管理,权限,shell编程之类的

  一门JVM系语言:

  当前大数据生态JVM系语言类的比重极大,某种程度上说是垄断也不为过。这里我推荐大家学习Java或Scala,至于Clojure这样的语言上手不易,其实并不推荐大家使用。另外,如今是“母以子贵”的年代,某个大数据框架会带火它的编程语言的流行,比如Docker之于Go、Kafka之于Scala。

  因此笔者这里建议您至少要精通一门JVM系的语言。值得一提的,一定要弄懂这门语言的多线程模型和内存模型,很多大数据框架的处理模式其实在语言层面和多线程处理模型是类似的,只是大数据框架把它们引申到了多机分布式这个层面。

  笔者建议:学习Java或Scala

  计算处理框架:

  严格来说,这分为离线批处理和流式处理。流式处理是未来的趋势,建议大家一定要去学习;而离线批处理其实已经快过时了,它的分批处理思想无法处理无穷数据集,因此其适用范围日益缩小。事实上,Google已经在公司内部正式废弃了以MapReduce为代表的离线处理。

  因此如果要学习大数据工程,掌握一门实时流式处理框架是必须的。当下主流的框架包括:Apache Samza, Apache Storm, Apache Spark Streaming以及最近一年风头正劲的Apache Flink。当然Apache Kafka也推出了它自己的流式处理框架:Kafka Streams

  笔者建议:学习Flink、Spark Streaming或Kafka Streams中的一个

  分布式存储框架:

  虽说MapReduce有些过时了,但Hadoop的另一个基石HDFS依然坚挺,并且是开源社区最受欢迎的分布式存储,绝对您花时间去学习。如果想深入研究的话,Google的GFS论文也是一定要读的([url=]https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf[/url])。当然开源世界中还有很多的分布式存储,国内阿里巴巴的OceanBase也是很优秀的一个。

  笔者建议:学习HDFS

  资源调度框架:

  Docker可是整整火了最近一两年。各个公司都在发力基于Docker的容器解决方案,最有名的开源容器调度框架就是K8S了,但同样著名的还有Hadoop的YARN和Apache Mesos。后两者不仅可以调度容器集群,还可以调度非容器集群,非常值得我们学习。

  笔者建议:学习YARN

  分布式协调框架:

  有一些通用的功能在所有主流大数据分布式框架中都需要实现,比如服务发现、领导者选举、分布式锁、KV存储等。这些功能也就催生了分布式协调框架的发展。最古老也是最有名的当属Apache Zookeeper了,新一些的包括Consul,etcd等。学习大数据工程,分布式协调框架是不能不了解的, 某种程度上还要深入了解。

  笔者建议:学习Zookeeper——太多大数据框架都需要它了,比如Kafka, Storm, HBase等

  

  KV数据库:

  典型的就是memcache和Redis了,特别是Redis简直是发展神速。其简洁的API设计和高性能的TPS日益得到广大用户的青睐。即使是不学习大数据,学学Redis都是大有裨益的。

  笔者建议:学习Redis,如果C语言功底好的,最好熟读源码,反正源码也不多

  列式存储数据库:

  笔者曾经花了很长的时间学习Oracle,但不得不承认当下关系型数据库已经慢慢地淡出了人们的视野,有太多的方案可以替代rdbms了。人们针对行式存储不适用于大数据ad-hoc查询这种弊端开发出了列式存储,典型的列式存储数据库就是开源社区的HBASE。实际上列式存储的概念也是出自Google的一篇论文:Google BigTable,有兴趣的话大家最好读一下:[url=]https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf[/url]

  笔者建议:学习HBASE,这是目前应用最广泛的开源列式存储

  消息队列:

  大数据工程处理中消息队列作为“削峰填谷”的主力系统是必不可少的,当前该领域内的解决方案有很多,包括ActiveMQ,Kafka等。国内阿里也开源了RocketMQ。这其中的翘楚当属Apache Kafka了。Kafka的很多设计思想都特别契合分布流式数据处理的设计理念。这也难怪,Kafka的原作者Jay Kreps可是当今实时流式处理方面的顶级大神。

  笔者建议:学习Kafka,不仅仅好找工作(几乎所有大数据招聘简历都要求会Kafka:-) ),还能触类旁通进一步理解基于备份日志方式的数据处理范型

  四,大数据分析师Or数据科学家

  针对角色二:大数据分析,对应的工作岗位就叫大数据分析师或者数据科学家,作为数据科学家的我们必须要掌握以下技能:

  数学功底:

  微积分是严格要掌握的。不一定要掌握多元微积分,但一元微积分是必须要熟练掌握并使用的。另外线性代数一定要精通,特别是矩阵的运算、向量空间、秩等概念。当前机器学习框架中很多计算都需要用到矩阵的乘法、转置或是求逆。虽然很多框架都直接提供了这样的工具,但我们至少要了解内部的原型原理,比如如何高效判断一个矩阵是否存在逆矩阵并如何计算等。

  重温同济版《高等数学》,有条件可以去Coursea学习宾夕法尼亚大学的微积分课程

  推荐学习Strang的线性代数:《Introduction to Linear Algebra》——这是最经典的教材,没有之一!

  数理统计:

  概率论和各种统计学方法要做到基本掌握,比如贝叶斯概率如何计算?概率分布是怎么回事?虽不要求精通,但对相关背景和术语一定要了解

  找一本《概率论》重新学习下

  交互式数据分析框架:

  这里并不是指SQL或数据库查询,而是像Apache Hive或Apache Kylin这样的分析交互框架。开源社区中有很多这样类似的框架,可以使用传统的数据分析方式对大数据进行数据分析或数据挖掘。

  笔者有过使用经验的是Hive和Kylin。不过Hive特别是Hive1是基于MapReduce的,性能并非特别出色,而Kylin采用数据立方体的概念结合星型模型,可以做到很低延时的分析速度,况且Kylin是第一个研发团队主力是中国人的Apache孵化项目,因此日益受到广泛的关注。

  首先学习Hive,有时间的话了解一下Kylin以及背后的数据挖掘思想。

  机器学习框架:

  机器学习当前真是火爆宇宙了,人人都提机器学习和AI,但笔者一直认为机器学习恰似几年前的云计算一样,目前虽然火爆,但没有实际的落地项目,可能还需要几年的时间才能逐渐成熟。

  不过在现在就开始储备机器学习的知识总是没有坏处的。说到机器学习的框架,大家耳熟能详的有很多种, 信手拈来的就包括TensorFlow、Caffe8、Keras9、CNTK10、Torch711等,其中又以TensorFlow领衔。

  笔者当前建议大家选取其中的一个框架进行学习,但以我对这些框架的了解,这些框架大多很方便地封装了各种机器学习算法提供给用户使用,但对于底层算法的了解其实并没有太多可学习之处。因此笔者还是建议可以从机器学习算法的原理来进行学习。

  

  

?

原文地址:https://www.cnblogs.com/qfdsj/p/9548732.html

时间: 2024-08-17 11:03:34

大数据最佳学习路线的相关文章

大数据最佳学习路线总结

一,题记 要说当下IT行业什么最火?ABC无出其右.所谓ABC者,AI + Big Data + Cloud也,即人工智能.大数据和云计算(云平台).每个领域目前都有行业领袖在引领前行,今天我们来讨论下大数据Big Data这个方向. 二,大数据里面的角色 角色一:大数据工程 大数据工程需要解决数据的定义.收集.计算与保存的工作,因此大数据工程师们在设计和部署这样的系统时首要考虑的是数据高可用的问题,即大数据工程系统需要实时地为下游业务系统或分析系统提供数据服务: 角色二:大数据分析 大数据分析

大数据入门学习路线分享,请大家收下

大数据的学习技术点Hadoop核心(1) 分布式存储基石:HDFSHDFS简介 入门演示 构成及工作原理解析:数据块,NameNode, DataNode.数据写入与读取过程.数据复制.HA方案.文件类型. HDFS常用设置 Java API代码演示(2) 分布式计算基础:MapReduceMapReduce简介.编程模型.Java API 介绍.编程案例介绍.MapReduce调优(3) Hadoop集群资源管家:YARNYARN基本架构 资源调度过程 调度算法 YARN上的计算框架离线计算(

零基础大数据新手学习路线教程

大数据-数据挖掘,越来越火,90%的企业都在运用或者都想要利用大数据为其带来更便利的服务,从而大数据高端软件类人才可谓供不应求. 如何学好大数据? 第一阶段:大数据新手入门系统教程Java+MySQL+关系型数据库+阿里巴巴<码出高效>编码规约 知识点 一.Java基础入门:Java编程入门:Java编程初体验,Java运行机制; Java语法基础:Java程序的组织形式与命名规则,变量类型和定义,表达式和运算符; 程序的流程结构:分支结构,循环结构;函授:函数的定义,函数调用,函数递归定义和

大数据技术学习路线,该怎么学?

如果你看完有信心能坚持学习的话,那就当下开始行动吧! 一.大数据技术基础 1.linux操作基础 linux系统简介与安装linux常用命令–文件操作linux常用命令–用户管理与权限linux常用命令–系统管理linux常用命令–免密登陆配置与网络管理linux上常用软件安装linux本地yum源配置及yum软件安装linux防火墙配置linux高级文本处理命令cut.sed.awklinux定时任务crontab2.shell编程 shell编程–基本语法shell编程–流程控制shell编

大数据经典学习路线(及供参考)

http://blog.csdn.net/yuexianchang/article/details/52468291 1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用linux,熟练安装Linux上的软件,了解熟悉负载均衡.高可靠等集群相关概念,搭建互联网高并发.高可靠的服务架构: 学完此阶段可解决的现实问题: 搭建负载均衡.高可靠的服务器集群,可以增大网站的并发访问量,保证服务不间断地对外服务: 学完此阶段可拥有的市场价值: 具备初级程序员必要具备的Linux服务器运

掌握这套大数据开发学习路线,从小白到精通没有问题!

很多人都知道大数据很火,就业很好,薪资很高,想往大数据方向发展.但该学哪些技术,学习路线是什么样的呢?用不用参加大数据培训呢?如果自己很迷茫.关注作者:需要更好的学习大数据,可以加我QQ群 首先先问自己几个问题,你的专业是什么,你擅长什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统.硬件.网络.服务器感兴趣?是软件专业,对软件开发.编程.写代码感兴趣?还是数学.统计学专业,对数据和数字特别感兴趣. 其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/

大数据技术学习路线,有信心能学好的朋友,就开始吧

如果你看完有信心能坚持学习的话,那就当下开始行动吧! 一.大数据技术基础 1.linux操作基础 linux系统简介与安装 linux常用命令–文件操作 linux常用命令–用户管理与权限 linux常用命令–系统管理 linux常用命令–免密登陆配置与网络管理 linux上常用软件安装 linux本地yum源配置及yum软件安装 linux防火墙配置 linux高级文本处理命令cut.sed.awk linux定时任务crontab 2.shell编程 shell编程–基本语法 shell编程

大数据开发学习路线整理

参考博客:做了五年大数据开发工程师总结的的大数据学习路线 大数据的4V特征: 1.        数据量大,TB->PB 2.        数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 3.        商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 4.        处理时效性高,海量数据的处理需求不再局限在离线计算当中. 常见的大数据的开源框架: l  文件存储:Hadoop HDFS.Tachyon.KFS l  离线计算:

云计算好学么?大数据云计算学习路线

云计算好学么?其实,小马过河的故事大家都读过,这云计算好不好学,还得看自身.有人说了,你这不是废话么?还真不是.其实我们不妨看看云计算到底是个什么东西.如今,云计算频繁出现在我们的视野,他是一种经由网络统一组织和灵活应用各种信息,通信,技术资源,来实现大规模计算的信息处理方式. 云是网络.互联网的一种比喻说法.过去在往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象.狭义云计算指IT基础设施的交付和使用模式,指经由网络以按需.易扩展的方式获得所需资源:广义云计算指服务的交付和使用模式