你的大数据开发学习路线【自己定制的】

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

    大数据,即Big Data,关于它的定义很多,我这里不再赘述了。最权威的莫属IBM的定义,读者可以自行查阅。既然本文关注如何学习大数据,那么我们首先就要定义大数据领域内的不同角色设定。这样各位才能根据自身实际情况找准自己的定位从而开启学习过程。

你的大数据开发学习路线【自己定制的】_第1张图片

 

角色    

 

    以我的愚见,当下大数据行业有两类角色:

  • 大数据工程

  • 大数据分析

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

    具体来说,大数据工程需要解决数据的定义、收集、计算与保存的工作,因此大数据工程师们在设计和部署这样的系统时首要考虑的是数据高可用的问题,即大数据工程系统需要实时地为下游业务系统或分析系统提供数据服务;而大数据分析角色定位于如何利用数据——即从大数据工程系统中接收到数据之后如何为企业或组织提供有产出的数据分析,并且确实能够帮助到公司进行业务改善或提升服务水平,所以对于大数据分析师来说,他们首要解决的问题是发现并利用数据的价值,具体可能包括:趋势分析、模型建立以及预测分析等。

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

互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群:199加上【427】最后加上210就可以找到组织学习  欢迎进阶中和进想深入大数据的小伙伴加入。

大数据工程师

    对于大数据工程师而言,您至少要掌握以下技能:

  • 一门JVM系语言:当前大数据生态JVM系语言类的比重极大,某种程度上说是垄断也不为过。这里我推荐大家学习Java或Scala,至于Clojure这样的语言上手不易,其实并不推荐大家使用。另外,如今是“母以子贵”的年代,某个大数据框架会带火它的编程语言的流行,比如Docker之于Go、Kafka之于Scala。因此笔者这里建议您至少要精通一门JVM系的语言。值得一提的,一定要弄懂这门语言的多线程模型和内存模型,很多大数据框架的处理模式其实在语言层面和多线程处理模型是类似的,只是大数据框架把它们引申到了多机分布式这个层面。

  • 接触大数据好多年了,一直没有系统学习过,今天找了个目录如下:
     
    第一阶段:Linux课程
    讲解linux基础操作,讲的是在命令行下进行文件系统的操作,这是hadoop学习的基础,后面的所有视频都是基于linux操作的。鉴于很多学员没有linux基础,特增加该内容,保证零linux基础入门。

    如果你从没有使用过linux,别担心,本节内容可以让你入门。

    Linux    
    认识linux
    如何使用vmware安装linux镜像
    认识linux的桌面环境、shell环境
    在shell环境下进行文件系统的操作,掌握more、touch、cp、mv、rm等20多个常用命令
    学习linux的网络管理,掌握ip、hostname等设置
    学习vmware与linux的通信设置,掌握如何实现host-only、bridge、nat等网络连接方式
    学习linux的进程管理,掌握如何查看、删除进程
    学习linux的软件管理,掌握java、mysql等安装
    学习环境变量配置,掌握如何设置环境变量
    学习linux的ssh管理,掌握如何实现免密码登录
    学习linux的防火墙管理,掌握如何关闭防火墙及开放指定端口
    学习linux的调度管理,掌握crontab的使用
    第二阶段:hadoop2课程
    搭建伪分布实验环境: 本节是最基本的课程,属于入门级别,主要讲述在linux单机上面安装hadoop的伪分布模式,在linux集群上面安装hadoop集群。对于不熟悉linux的同学,课程中会简单的讲解常用的linux命令。这两种是必须要掌握的。通过现在的教学发现,很多同学并不能正确的配置环境。

    搭建伪分布实验环境    
    Hadoop概念、版本、历史
    Hadoop和核心组成介绍及hdfs、mapreduce体系结构
    Hadoop的集群结构
    Hadoop伪分布的详细安装步骤
    如何通过命令行和浏览器观察hadoop
    介绍HDFS体系结构及shell、java操作方式: 本节是对hadoop核心之一——hdfs的讲解。hdfs是所有hadoop操作的基础,属于基本的内容。对本节内容的理解直接影响以后所有课程的学习。在本节学习中,我们会讲述hdfs的体系结构,以及使用shell、java不同方式对hdfs的操作。在工作中,这两种方式都非常常用。学会了本节内容,就可以自己开发网盘应用了。在本节学习中,我们不仅对理论和操作进行讲解,也会讲解hdfs的源代码,方便部分学员以后对hadoop源码进行修改。最后,还要讲解hadoop的RPC机制,这是hadoop运行的基础,通过该节学习,我们就可以明白hadoop是怎么明白的了,不必糊涂了,本节内容特别重要。

    介绍HDFS体系结构及
    shell、java操作方式    
    Hdfs体系结构详述
    NameNode、DataNode、SecondaryNameNode体系结构
    如果保证namenode的高可靠
    Datanode中block的划分原理和存储方式
    如何修改namenode、datanode数据存储位置
    如何使用命令行操纵hdfs
    如何使用java操作hdfs
    介绍rpc机制
    通过查看源码,知晓hadoop是建构在rpc之上的
    通过查看hdfs源码,知晓客户端是如何与Namenode通过rpc通信的
    介绍MapReduce体系结构及各种算法(1): 本节开始对hadoop核心之一——mapreduce的讲解。mapreduce是hadoop的核心,是以后各种框架运行的基础,这是必须掌握的。在本次讲解中,掌握mapreduce执行的详细过程,以单词计数为例,讲解mapreduce的详细执行过程。还讲解hadoop的序列化机制和数据类型,并使用自定义类型实现电信日志信息的统计。

    介绍MapReduce体
    系结构及各种算法(1)    
    Mapreduce原理
    Mapreduce执行的八大步骤
    详细讲述如何使用mapreduce实现单词计数功能
    详细讲述如何覆盖Mapper功能、如何覆盖Reducer功能。在各种hadoop认证中,这是考察重点
    详细讲述hadoop的自定义类型Writable接口
    通过电信上网日志实例讲述如何自定义hadoop类型
    实例讲述hadoop1的各种输入来源处理器,包括数据库输入、xml文件、多文件输入等,并且讲解如何自定
    义输入来源处理器
    实例讲述hadoop1的各种输出来源,包括数据库输出、文件输出等,并且讲解如何自定义输出来源处理器,
    实现自定义输出文件名称
    通过源码讲述hadoop是如何读取hdfs文件,并且转化为键值对,供map方法调用的
    介绍MapReduce体系结构及各种算法(2): 本节继续讲解mapreduce,会把旧api的用法、计数器、combiner、partitioner、排序算法、分组算法等全部讲解完毕。通过这两次课程学习,学员可以把整个mapreduce的执行细节搞清楚,把各个可扩展点都搞明白。本节内容在目前市面可见的图书、视频中还没有发现如此全面的哪。

    介绍MapReduce体
    系结构及各种算法(2)    
    讲解新旧api的区别,如何使用旧api完成操作
    介绍如何打包成jar,在命令行运行hadoop程序
    介绍hadoop的内置计数器,以及自定义计数器
    介绍合并(combiner)概念、为什么使用、如何使用、使用时有什么限制条件
    介绍了hadoop内置的分区(partitioner)概念、为什么使用、如何使用
    介绍了hadoop内置的排序算法,以及如何自定义排序规则
    介绍了hadoop内置的分组算法,以及如何自定义分组规则
    介绍了mapreduce的常见应用场景,以及如何实现mapreduce算法讲解
    如何优化mapreduce算法,实现更高的运行效率
    第三阶段:zookeeper课程
    本节内容与hadoop关系不大,只是在hbase集群安装时才用到。但是,zookeeper在分布式项目中应用较多。

    zookeeper    
    Zookeeper是什么
    搭建zookeeper集群环境
    如何使用命令行操作zookeeper
    如何使用java操作zookeeper
    第四阶段:HBase课程
    hbase是个好东西,在以后工作中会经常遇到,特别是电信、银行、保险等行业。本节讲解hbase的伪分布和集群的安装,讲解基本理论和各种操作。我们通过对hbase原理的讲解,让大家明白为什么hbase会这么适合大数据的实时查询。最后讲解hbase如何设计表结构,这是hbase优化的重点。

    HBase    
    hbase的概述
    hbase的数据模型
    hbase的表设计
    hbase的伪分布式和集群安装
    hbase的shell操作
    hbase的JavaAPI操作
    hbase的数据迁移
    hbase的数据备份及恢复
    Hbase结合Hive使用
    hbase的集群管理
    hbase的性能调优
    第五阶段:CM+CDH集群管理课程
    由cloudera公司开发的集群web管理工具cloudera manager(简称CM)和CDH目前在企业中使用的比重很大,掌握CM+CDH集群管理和使用 不仅简化了集群安装、配置、调优等工作,而且对任务监控、集群预警、快速定位问题都有很大的帮助。

    CM+CDH集群管理    
    CM + CDH集群的安装
    基于CM主机及各种服务组件的管理
    CDH集群的配置和参数调优
    CDH集群HA配置及集群升级
    CM的监控管理
    集群管理的注意事项
    第六阶段:Hive课程
    在《hadoop1零基础拿高薪》课程中我们涉及了Hive框架内容,不过内容偏少,作为入门讲解可以,但是在工作中还会遇到很多课程中没有的。本课程的目的就是把Hive框架的边边角角都涉猎到,重点讲解Hive的数据库管理、数据表管理、表连接、查询优化、如何设计Hive表结构。这都是工作中最急需的内容,是工作中的重点。

    Hive的概述、安装
    与基本操作    
    大家习惯把Hive称为hadoop领域的数据仓库。Hive使用起来非常像MySQL,但是比使用MySQL更有意思。
    我们在这里要讲述Hive的体系结构、如何安装Hive。还会讲述Hive的基本操作,目的是为了下面的继续学习。
    (理论所占比重★★★ 实战所占比重★★)
    Hive支持的数据类型    
    Hive的支持的数据类型逐渐增多。其中复合数据类型,可以把关系数据库中的一对多关系挪到Hive的一张表中,
    这是一个很神奇的事情,颠覆了我们之前的数据库设计范式。我们会讲解如何使用这种数据类型,如何把关系数
    据库的表迁移到Hive表。
    (理论所占比重★★ 实战所占比重★★★)
    Hive数据的管理    
    我们总拿Hive与MySQL做类比。其中,Hive对数据的操作方法是与MySQL最大的不同。我们会学习如何导入数
    据、导出数据,会学习如何分区导入、如何增量导入,会学习导入过程中如何优化操作等内容。这部分内容是工
    作中使用频率最高的内容之一。
    (理论所占比重★ 实战所占比重★★★★)
    Hive的查询    
    这部分内容讲解Hive查询语句的基本结构,重点讲解表连接。其中,有一些我们原来不知道的语法如left semi-
    join、sort by、cluster by等。这部分也在工作中用的是最多的内容之一。
    (理论所占比重★★ 实战所占比重★★★)
    Hive的函数    
    Hive是对查询语法的扩充,Hive运行我们非常方便的使用java来编写函数,特别方便。我们除了简单介绍常见的
    单行函数、聚合函数、表函数之外,还会介绍如何自定义函数。这样,我们就可以扩充原有函数库,实现自己的
    业务逻辑。这是体系我们能力的好地方!
    (理论所占比重★★★ 实战所占比重★★)
    Hive的文件格式    
    Hive的存储除了普通文件格式,也包括序列化文件格式和列式存储格式。讲解分别如何使用他们,已经何种场景
    下使用他们。最后讲解如何自定义数据存储格式。
    (理论所占比重★★★ 实战所占比重★★)
    Hive的性能调优    
    终于来到性能调优部分。我们会讲解本地模式、严格模式、并行执行、join优化等内容。通过实验对比发现优化
    手段的价值所在。这是整个课程的精华,也是我们以后工作能力的最重要的体现。
    (理论所占比重★ 实战所占比重★★★★)
    项目实战    
    我们会通过一个电信项目来把前面的内容综合运用起来。这是一个来自于真实工作环境的项目,学习如何使用各
    个知识点满足项目要求。并有真实数据提供给大家,供大家课下自己练习。
    (理论所占比重★ 实战所占比重★★★★)
    杂记    
    包括一些琐碎知识点,比如视图、索引、与HBase整合等。这些不好归入前面的某个章节,单独列出。并且根据
    学员就业面试情况,也不会不断增补内容。
    (理论所占比重★★★ 实战所占比重★★)
    第七阶段:Sqoop课程
    sqoop适用于在关系数据库与hdfs之间进行双向数据转换的,在企业中,非常常用。

    Sqoop    
    Sqoop是什么
    实战:讲解Sqoop如何把mysql中的数据导入到hdfs中
    实战:讲解Sqoop如何把hdfs中的数据导出到mysql中
    Sqoop如何做成job,方便以后快速执行
    第八阶段:Flume课程
    Flume是cloudera公布的分布式日志收集系统,是用来把各个的服务器中数据收集,统一提交到hdfs或者其他目的地,是hadoop存储数据的来源,企业中非常流行。

    Flume    
    Flume是什么
    详细Flume的体系结构
    讲述如何书写flume的agent配置信息
    实战:flume如何动态监控文件夹中文件变化
    实战:flume如何把数据导入到hdfs中
    实战:讲解如何通过flume动态监控日志文件变化,然后导入到hdfs中
    第九阶段:Kafka课程
    Kafka是消息系统,类似于ActiveMQ、RabbitMQ,但是效率更高。

    Kafka    
    kafka是什么
    kafka体系结构
    kafka的安装
    kafka的存储策略
    kafka的发布与订阅
    使用Zookeeper协调管理
    实战:Kafka和Storm的综合应用
    第十阶段:Storm课程
    Storm是专门用于解决实时计算的,与hadoop框架搭配使用。本课程讲解Storm的基础结构、理论体系,如何部署Storm集群,如何进行本地开发和分布式开发。通过本课程,大家可以进入到Storm殿堂,看各种Storm技术文章不再难,进行Storm开发也不再畏惧。

    Storm    
    Storm是什么,包括基本概念和应用领域
    Storm的体系结构、工作原理
    Storm的单机环境配置、集群环境配置
    Storm核心组件,包括Spout、Bolt、Stream Groupings等等
    Storm如何实现消息处理的安全性,保证消息处理无遗漏
    Storm的批处理事务处理
    实战:使用Storm完成单词计数等操作
    实战:计算网站的pv、uv等操作
    第十一阶段:Redis课程
    redis是一款高性能的基于内存的键值数据库,在互联网公司中应用很广泛。

    Redis    
    redis特点、与其他数据库的比较
    如何安装redis
    如何使用命令行客户端
    redis的字符串类型
    redis的散列类型
    redis的列表类型
    redis的集合类型
    如何使用java访问redis
    redis的事务(transaction)
    redis的管道(pipeline)
    redis持久化(AOF+RDB)
    redis优化
    redis的主从复制
    redis的sentinel高可用
    redis3.x集群安装配置
    第十二阶段:Scala课程
    Scala是学习spark的必备基础语言,必须要掌握的。

    Scala    
    scala解释器、变量、常用数据类型等
    scala的条件表达式、输入输出、循环等控制结构
    scala的函数、默认参数、变长参数等
    scala的数组、变长数组、多维数组等
    scala的映射、元祖等操作
    scala的类,包括bean属性、辅助构造器、主构造器等
    scala的对象、单例对象、伴生对象、扩展类、apply方法等
    scala的包、引入、继承等概念
    scala的特质
    scala的操作符
    scala的高阶函数(这是重点,spark的原代码几乎全是高阶函数)
    scala的集合
    第十三阶段:Spark课程
    Spark是一款高性能的分布式计算框架,传言比MapReduce计算快100倍,本课程为你揭秘。

    Spark    
    Spark入门
    Spark与Hadoop的比较
    Spark环境搭建
    实战:使用Spark完成单词计数
    Spark缓存策略
    Spark的transformation和action
    Spark的容错机制
    Spark的核心组件
    Spark的各种RDD
    Spark的流计算
    第十四阶段:Oozie课程
    oozie是Hadoop生态系统中比较重要的框架,在系统中扮演的角色是工作流引擎服务器,用于运行Hadoop Map/Reduce任务工作流(包括MR、Hive、Pig、Sqoop等),企业中多由于整个项目流程任务调度。

    Oozie    
    Oozie入门介绍
    Oozie安装配置及其简单操作
    hPDL语言学习及流程定义
    oozie工作流配置及元数据库定义
    oozie定时任务调度和oozie API操作
    第十五阶段:Impala课程
    Impala是Cloudera公司参照 Google Dreme系统进行设计并主导开发的新型查询系统,它提供复杂SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。

    Impala    
    Impala及其架构介绍
    Impala使用方法
    Impala配置及其调优
    Impala项目应用
    Impala和spark SQL对比
    第十六阶段:Kettle课程
    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。ETL是指数据的抽取(extract)、转换(transform)、加载(load)至目的端。

    Kettle    
    kettle简介
    windows开发环境的搭建和使用
    linux下服务器的搭建和使用
    资源库、变量、共享库的配置
    kettle常用组件
    kettle的应用案例
    第十七阶段:Ganglia课程
    Ganglia是一个对于数以万计的节点的各个指标的图表监控框架,提供完整的一套图形监控界面,支持C、C++、python扩展自定义指标和用户视图。

    Ganglia    
    ganglia的基本原
    搭建和使用ganglia监控服务器的指标
    配置和使用ganglia监控大数据hadoop和habase集群、flume监控
    编写和使用自定义指标
    第十八阶段:Tachyon课程
    Tachyon是一个开源分布式内存存储系统,拥有高性能、高容错等优点。并具有类Java的文件API、插件式的底层文件系统、兼容Hadoop MapReduce和 Apache Spark 等特征。Tachyon能够为集群框架(如Spark、MapReduce等)提供内存级速度的跨集群文件共享服务,官方号称最高比HDFS吞吐量高300倍。

    Tachyon    
    Tachyon简介
    Tachyon架构详解
    Tachyon安装
    Tachyon参数配置
    Tachyon结合Hadoop使用
    Tachyon结合Spark使用
    第十九阶段:Solr课程
    Solr    
    Solr简介
    Solr安装部署
    Solr example详解
    solr配置信息详解
    solr fact查询
    solr复杂查询
    自定义中文分词工具和词库
    使用solrj实现java操作solr
    solr高亮组件
    solr优化
    solr主从结构部署
    solrcloud集群安装部署
    solr实现应用
    第二十阶段:elasticsearch课程
    elasticsearch    
    elasticsearch简介
    elasticsearch和solr的对比
    elasticsearch安装部署
    elasticsearch service wrapper启动插件
    使用curl操作elasticsearch索引库
    elasticsearch DSL查询
    elasticsearch批量查询meet
    elasticsearch批量操作bulk
    elasticsearch插件介绍
    elasticsearch配置文件详解
    java操作elasticsearch
    elasticsearch的分页查询
    elasticsearch中文分词工具的集成
    elasticsearch优化
    elasticsearch集群部署
    第二十一阶段:多线程课程
    多线程    
    线程管理
    线程的同步,包括使用synchronized、lock、定时器、信号量等
    线程池的创建和管理
    并发集合的使用
    第二十二阶段:Java虚拟机优化课程
    Java虚拟机优化    
    认识jvm
    java 内存区域与内存的分配
    垃圾收集器与回收机制
    虚拟机性能监控与故障处理常用工具
    线程安全与锁优化
    大数据中的jvm 优化
    第二十三阶段:Python课程
    Python    
    Python 简介
    Python 基本语法
    使用 Python 写 MapReduce 程序、Spark 程序
    第二十四阶段:Mahout课程
    Mahout是数据挖掘和机器学习领域的利器,本课程是带领大家进入到这个领域中。课程内容包括Mahout体系结构介绍、Mahout如何在推荐、分类、聚类领域中使用。

    Mahout    
    Mahout是什么,有哪些应用场景
    Mahout机器学习环境的搭建和部署
    Mahout中支持哪些高大上的算法
    使用Mahout完成推荐引擎
    实战:实现基于web访问的推荐程序
    什么是聚类
    基于Mahout的常见聚类算法,如k-means算法
    实战:实现新闻内容的聚类
    什么是分类
    分类的工作原理
    提取特征构建分类器
    实战:构建分类服务器
    第二十五阶段:实战项目
    xx论坛日志分析(录播): 该项目的数据来自于黑马程序员(http://edu.csdn.net/)论坛的日志,该项目是为本课程量身定做的,非常适合我们hadoop课程学习。有的同学觉得应该介绍更多项目,其实做过几个项目后,就会发现项目的思路是相同的,只是业务不同而已。大家写过这个项目后,就对hadoop的各个框架在项目中是如何使用的,有个比较清晰的认识,对hadoop与javaEE结合有个比较清晰的认识了。 
    注:很多学员进入公司后发现,公司中大部分hadoop日志分析项目,都是该项目的开发过程,千真万确!

    xx论坛日志分析(录播)    
    项目背景介绍
    数据规模介绍
    业务关键指标介绍
    使用flume把日志数据导入到hdfs中
    编写MapReduce代码进行数据清洗
    使用hbase存储明细日志,实现基于ip查询
    使用hive对数据进行多维分析
    使用sqoop把hive分析结果导出到MySQL中
    互联网电商爬虫项目: 该项目使用分布式爬虫爬取互联网各大电商网站商品数据,前台实现对数据的快速精准查询和商品对比。

    互联网电商爬虫    
    商品页面抓取和解析
    分布式爬虫设计细节
    分析url链接和页面内容如何存储
    分布式爬虫监控功能
    爬虫频繁爬取数据ip被封问题解决方案
    分析爬取失败url如何处理
    抓取需要登录的网站数据
    使用solr实现海量数据精准查询
    使用hbase实现海量数据快速查询
    高频数据实时流处理项目: 该项目实现对业务数据系统的高频日志数据进行实时收集和业务处理。

    高频数据实时流处理    
    使用avro方式实现高频日志数据实时采集
    flume sink源码分析
    自定义kafkasink实现对收集的高频日志数据进行缓冲
    使用kafkaspout实现对kafka中的数据进行实时读取
    使用storm实时计算框架对日志数据进行分析处理
    flume和kafka的整合
    Kafka和storm的整合
    国内排名前50名的某网站互联网日志分析项目: 通过大数据工具将互联网中的日志的采集、清洗、分析统计出常见的互联网指标;开发各种维度UV的分布报表、各个指标每日、月指标报表,用于对产品做出正确的决策,数据的正确性校对问题,临时性的图表的开发。

    某网站互联网日志分析    
    使用hadoop、mapreduce、hive清理和分析UV、PV、登录、留存等常见指标
    使用storm实时分析充值、消费等的趋势
    各种维度的趋势对比、各个指标每日、月指标报表生成
    使用kettle数据的正确性校对问题和邮件报警
    移动业务感知项目: 移动业务感知系统主要是利用hadoop集群强大的计算能力对移动的大批量离线话单数据进行分析,统计移动用户使用移动业务(流量套餐、话费套餐、铃声套餐等)情况,达到感知用户行为和使用习惯,确定移动业务推广走向的一套系统。
     

你可能感兴趣的:(大数据学习,Hadoop,linux,大数据,大数据开发,spark,Hive,数据分析,大数据技术,程序员,大数据,大数据学习,大数据开发,编程语言,程序员)