大数据学习路线整理

一、大数据技术基础

1、linux操作基础

    linux系统简介与安装
    linux常用命令–文件操作
    linux常用命令–用户管理与权限
    linux常用命令–系统管理
    linux常用命令–免密登陆配置与网络管理
    linux上常用软件安装
    linux本地yum源配置及yum软件安装
    linux防火墙配置
    linux高级文本处理命令cut、sed、awk
    linux定时任务crontab

2、shell编程

    shell编程–基本语法
    shell编程–流程控制
    shell编程–函数
    shell编程–综合案例–自动化部署脚本

3、内存数据库redis

    redis和nosql简介
    redis客户端连接
    redis的string类型数据结构操作及应用-对象缓存
    redis的list类型数据结构操作及应用案例-任务调度队列
    redis的hash及set数据结构操作及应用案例-购物车
    redis的sortedset数据结构操作及应用案例-排行榜

4、布式协调服务zookeeper

    zookeeper简介及应用场景
    zookeeper集群安装部署
    zookeeper的数据节点与命令行操作
    zookeeper的java客户端基本操作及事件监听
    zookeeper核心机制及数据节点
    zookeeper应用案例–分布式共享资源锁
    zookeeper应用案例–服务器上下线动态感知
    zookeeper的数据一致性原理及leader选举机制

5、java高级特性增强

    Java多线程基本知识
    Java同步关键词详解
    java并发包线程池及在开源软件中的应用
    Java并发包消息队里及在开源软件中的应用
    Java JMS技术
    Java动态代理反射

6、轻量级RPC框架开发

    RPC原理学习
    Nio原理学习
    Netty常用API学习
    轻量级RPC框架需求分析及原理分析
    轻量级RPC框架开发

二、离线计算系统

1、hadoop快速入门

    hadoop背景介绍
    分布式系统概述
    离线数据分析流程介绍
    集群搭建
    集群使用初步

2、HDFS增强

    HDFS的概念和特性
    HDFS的shell(命令行客户端)操作
    HDFS的工作机制
    NAMENODE的工作机制
    java的api操作
    案例1:开发shell采集脚本

3、MAPREDUCE详解

    自定义hadoop的RPC框架
    Mapreduce编程规范及示例编写
    Mapreduce程序运行模式及debug方法
    mapreduce程序运行模式的内在机理
    mapreduce运算框架的主体工作流程
    自定义对象的序列化方法
    MapReduce编程案例

4、MAPREDUCE增强

    Mapreduce排序
    自定义partitioner
    Mapreduce的combiner
    mapreduce工作机制详解

5、MAPREDUCE实战

    maptask并行度机制-文件切片
    maptask并行度设置
    倒排索引
    共同好友

6、federation介绍和hive使用

    Hadoop的HA机制
    HA集群的安装部署
    集群运维测试之Datanode动态上下线
    集群运维测试之Namenode状态切换管理
    集群运维测试之数据块的balance
    HA下HDFS-API变化
    hive简介
    hive架构
    hive安装部署
    hvie初使用

7、hive增强和flume介绍

    HQL-DDL基本语法
    HQL-DML基本语法
    HIVE的join
    HIVE 参数配置
    HIVE 自定义函数和Transform
    HIVE 执行HQL的实例分析
    HIVE最佳实践注意点
    HIVE优化策略
    HIVE实战案例
    Flume介绍
    Flume的安装部署
    案例:采集目录到HDFS
    案例:采集文件到HDFS

三、流式计算

1、Storm从入门到精通

    Storm是什么
    Storm架构分析
    Storm架构分析
    Storm编程模型、Tuple源码、并发度分析
    Storm WordCount案例及常用Api分析
    Storm集群部署实战
    Storm+Kafka+Redis业务指标计算
    Storm源码下载编译
    Strom集群启动及源码分析
    Storm任务提交及源码分析
    Storm数据发送流程分析
    Storm通信机制分析
    Storm消息容错机制及源码分析
    Storm多stream项目分析
    编写自己的流式任务执行框架

2、Storm上下游及架构集成

    消息队列是什么
    Kakfa核心组件
    Kafka集群部署实战及常用命令
    Kafka配置文件梳理
    Kakfa JavaApi学习
    Kafka文件存储机制分析
    Redis基础及单机环境部署
    Redis数据结构及典型案例
    Flume快速入门
    Flume+Kafka+Storm+Redis整合

四、内存计算体系Spark

1、scala编程

    scala编程介绍
    scala相关软件安装
    scala基础语法
    scala方法和函数
    scala函数式编程特点
    scala数组和集合
    scala编程练习(单机版WordCount)
    scala面向对象
    scala模式匹配
    actor编程介绍
    option和偏函数
    实战:actor的并发WordCount
    柯里化
    隐式转换

2、AKKA与RPC

    Akka并发编程框架
    实战:RPC编程实战

3、Spark快速入门

    spark介绍
    spark环境搭建
    RDD简介
    RDD的转换和动作
    实战:RDD综合练习
    RDD高级算子
    自定义Partitioner
    实战:网站访问次数
    广播变量
    实战:根据IP计算归属地
    自定义排序
    利用JDBC RDD实现数据导入导出
    WorldCount执行流程详解

4、RDD详解

    RDD依赖关系
    RDD缓存机制
    RDD的Checkpoint检查点机制
    Spark任务执行过程分析
    RDD的Stage划分

5、Spark-Sql应用

    Spark-SQL
    Spark结合Hive
    DataFrame
    实战:Spark-SQL和DataFrame案例

6、SparkStreaming应用实战

    Spark-Streaming简介
    Spark-Streaming编程
    实战:StageFulWordCount
    Flume结合Spark Streaming
    Kafka结合Spark Streaming
    窗口函数
    ELK技术栈介绍
    ElasticSearch安装和使用
    Storm架构分析
    Storm编程模型、Tuple源码、并发度分析
    Storm WordCount案例及常用Api分析

7、Spark核心源码解析

    Spark源码编译
    Spark远程debug
    Spark任务提交行流程源码分析
    Spark通信流程源码分析
    SparkContext创建过程源码分析
    DriverActor和ClientActor通信过程源码分析
    Worker启动Executor过程源码分析
    Executor向DriverActor注册过程源码分析
    Executor向Driver注册过程源码分析
    DAGScheduler和TaskScheduler源码分析
    Shuffle过程源码分析
    Task执行过程源码分析

五、机器学习算法

1、python及numpy库

    机器学习简介
    机器学习与python
    python语言–快速入门
    python语言–数据类型详解
    python语言–流程控制语句
    python语言–函数使用
    python语言–模块和包
    phthon语言–面向对象
    python机器学习算法库–numpy
    机器学习必备数学知识–概率论

2、常用算法实现

    knn分类算法–算法原理
    knn分类算法–代码实现
    knn分类算法–手写字识别案例
    lineage回归分类算法–算法原理
    lineage回归分类算法–算法实现及demo
    朴素贝叶斯分类算法–算法原理
    朴素贝叶斯分类算法–算法实现
    朴素贝叶斯分类算法–垃圾邮件识别应用案例
    kmeans聚类算法–算法原理
    kmeans聚类算法–算法实现
    kmeans聚类算法–地理位置聚类应用
    决策树分类算法–算法原理
    决策树分类算法–算法实现


下面是大数据开发的课程内容:
阶段一:JavaSE开发
阶段二:JavaEE开发
阶段三:并发编程实战开发
阶段四:Linux精讲
阶段五:Hadoop生态体系
阶段六:Python实战开发
阶段七:Storm实时开发
阶段八:Spark生态体系
阶段九:ElasticSearch
阶段十:Docker容器引擎
阶段十一:机器学习
阶段十二:超大集群调优
阶段十三:大数据项目实战
从上面的课程内容看,大数据开发学习要掌握java、linux、hadoop、python、storm、spark、elastic search、docker、机器学习等基础知识。

大数据分析的课程内容:
阶段一:WEB前端实战开发
阶段二:数据库实战
阶段三:Python实战开发
阶段四:Echart数据分析
阶段五:D3大数据分析
阶段六:BI平台大数据分析
阶段七:SmartBI大数据分析
阶段八:Sap Design Studio大数据分析
阶段九:Tableau大数据分析
阶段十:R语言大数据分析
阶段十一:七大行业数据建模可视化分析
阶段十二:大数据可视化分析项目实战
大数据分析课程跟大数据开发不同,需要掌握的基础知识也不同,大数据分析需要掌握的基础有:web、数据库、python、echarts、d3、bi、smartbi、tableau、r语言以及数据建模等知识。


大数据学习路线

java
(Java se,javaweb)
Linux(shell,高并发架构,lucene,solr)
Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)
机器学习(R,mahout)
Storm(Storm,kafka,redis)
Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spark graphx)
Python(python,spark python) 
云计算平台(docker,kvm,openstack)

名词解释

一、Linux
lucene: 全文检索引擎的架构
solr: 基于lucene的全文搜索服务器,实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。

二、Hadoop
HDFS
: 分布式存储系统,包含NameNode,DataNode。NameNode:元数据,DataNode。DataNode:存数数据。
yarn: 可以理解为MapReduce的协调机制,本质就是Hadoop的处理分析机制,分为ResourceManager NodeManager。
MapReduce: 软件框架,编写程序。
Hive: 数据仓库 可以用SQL查询,可以运行Map/Reduce程序。用来计算趋势或者网站日志,不应用于实时查询,需要很长时间返回结果。
HBase: 数据库。非常适合用来做大数据的实时查询。Facebook用Hbase存储消息数据并进行消息实时的分析
ZooKeeper: 针对大型分布式的可靠性协调系统。Hadoop的分布式同步等靠Zookeeper实现,例如多个NameNode,active standby切换。
Sqoop: 数据库相互转移,关系型数据库和HDFS相互转移
Mahout: 可扩展的机器学习和数据挖掘库。用来做推荐挖掘,聚集,分类,频繁项集挖掘。
Chukwa: 开源收集系统,监视大型分布式系统,建立在HDFS和Map/Reduce框架之上。显示、监视、分析结果。
Ambari: 用于配置、管理和监视Hadoop集群,基于Web,界面友好。

二、Cloudera
Cloudera Manager: 管理 监控 诊断 集成
Cloudera CDH:(Cloudera's Distribution,including Apache Hadoop) Cloudera对Hadoop做了相应的改变,发行版本称为CDH。
Cloudera Flume: 日志收集系统,支持在日志系统中定制各类数据发送方,用来收集数据。
Cloudera Impala: 对存储在Apache Hadoop的HDFS,HBase的数据提供直接查询互动的SQL。
Cloudera hue: web管理器,包括hue ui,hui server,hui db。hue提供所有CDH组件的shell界面的接口,可以在hue编写mr。

三、机器学习/R
R
: 用于统计分析、绘图的语言和操作环境,目前有Hadoop-R
mahout: 提供可扩展的机器学习领域经典算法的实现,包括聚类、分类、推荐过滤、频繁子项挖掘等,且可通过Hadoop扩展到云中。

四、storm
Storm
: 分布式,容错的实时流式计算系统,可以用作实时分析,在线机器学习,信息流处理,连续性计算,分布式RPC,实时处理消息并更新数据库。
Kafka: 高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据(浏览,搜索等)。相对Hadoop的日志数据和离线分析,可以实现实时处理。目前通过Hadoop的并行加载机制来统一线上和离线的消息处理
Redis: 由c语言编写,支持网络、可基于内存亦可持久化的日志型、key-value型数据库。

五、Spark
Scala
: 一种类似java的完全面向对象的编程语言。

jblas: 一个快速的线性代数库(JAVA)。基于BLAS与LAPACK,矩阵计算实际的行业标准,并使用先进的基础设施等所有的计算程序的ATLAS艺术的实现,使其非常快。

Spark: Spark是在Scala语言中实现的类似于Hadoop MapReduce的通用并行框架,除了Hadoop MapReduce所具有的优点,但不同于MapReduce的是job中间输出结果可以保存在内存中,从而不需要读写HDFS,因此Spark能更好的适用于数据挖掘与机器学习等需要迭代的MapReduce算法。可以和Hadoop文件系统并行运作,用过Mesos的第三方集群框架可以支持此行为。
Spark SQL: 作为Apache Spark大数据框架的一部分,可用于结构化数据处理并可以执行类似SQL的Spark数据查询
Spark Streaming: 一种构建在Spark上的实时计算框架,扩展了Spark处理大数据流式数据的能力。
Spark MLlib: MLlib是Spark是常用的机器学习算法的实现库,目前(2014.05)支持二元分类,回归,聚类以及协同过滤。同时也包括一个底层的梯度下降优化基础算法。MLlib以来jblas线性代数库,jblas本身以来远程的Fortran程序。

Spark GraphX: GraphX是Spark中用于图和图并行计算的API,可以在Spark之上提供一站式数据解决方案,可以方便且高效地完成图计算的一整套流水作业。

Fortran: 最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。

BLAS: 基础线性代数子程序库,拥有大量已经编写好的关于线性代数运算的程序。
LAPACK: 著名的公开软件,包含了求解科学与工程计算中最常见的数值线性代数问题,如求解线性方程组、线性最小二乘问题、特征值问题和奇异值问题等。
ATLAS: BLAS线性算法库的优化版本。
Spark Python: Spark是由scala语言编写的,但是为了推广和兼容,提供了java和python接口。

六、Python
Python
: 一种面向对象的、解释型计算机程序设计语言。


七、云计算平台
Docker
: 开源的应用容器引擎
kvm: (Keyboard Video Mouse)

openstack:  开源的云计算管理平台项目

猜你喜欢

转载自www.cnblogs.com/m0rs/p/10680066.html