完整大数据学习路线,看了就会有所收获

大数据

  • 大数据学习路线
    • 1.Java基础——主要部分是JavaSE
      • 1.1 Java初级
      • 1.2 Java高级
      • 1.3 其余常见基础......
    • 2.Linux基础——主要指的是Linux基本命令操作
    • 3.Hadoop生态学习(体系结构、原理、编程)
      • 3.1第一阶段
      • 3.2第二阶段
      • 3.3第三阶段
    • 4.Spark生态学习
      • 4.1第一阶段
      • 4.2第二阶段
      • 4.3第三阶段
      • 4.4第四个阶段
    • 5.Storm学习——实时计算
    • 6.其他学习
      • 6.1 Kafka
      • 6.2 机器学习算法
      • 6.3 大型网站高并发处理
      • 6.4 Lucene基础
      • 6.5 Solr基础
      • 6.6 Federation
    • 7.总结
    • 8.其他方向
    • 9.项目案例

大数据学习路线

大数据的本质:两个

  1. 大数据的存储——分布式文件存储
  2. 大数据的计算——分布式计算

大数据核心框架:两个

  1. Hadoop——基于Java语言开发
  2. Spark——基于Scala语言开发,Scala语言基于Java语言。Spark支持Java语言,但使用Scala语言更优。

1.Java基础——主要部分是JavaSE

1.1 Java初级

  1. 基本语法
  2. 封装
  3. 继承
  4. 多态
注:
1.主要指的是JavaSE部分。对于JavaEE(企业级应用,例Tomcat的使用)部分和JavaME(主要应用方向是嵌入式领域,目前大有被Android所替代的趋势)部分,不做掌握要求。JavaEE和JavaME两部分的基础也是JavaSE。
2.Java中没有函数的概念,C/C++中的函数在Java中成为方法,方法中的参数也称为形参,在方法的定义中,是不能使用其他方法作为形参的,但是在方法的调用中,是可以使用方法作为参数的,前提是该方法的返回值必须与形参所定义的值类型一致。

1.2 Java高级

  1. Java多线程基本知识
  2. Java同步关键词详解
  3. java并发包线程池及在开源软件中的应用
  4. Java并发包消息队里及在开源软件中的应用
  5. Java JMS技术
  6. Java动态代理反射
  7. I/O流
  8. 泛型

1.3 其余常见基础…

2.Linux基础——主要指的是Linux基本命令操作

  1. Linux的介绍,Linux的安装:VMware Workstation虚拟软件安装过程、CentOS虚拟机安装过程
  2. Linux的常用命令:常用命令的介绍、常用命令的使用和练习:包括文件/目录常见操作、用户管理与权限、免密登陆配置与网络管理。
  3. Linux系统进程管理基本原理及相关管理工具如ps、pkill、top、htop等的使用;
  4. Linux启动流程,运行级别详解,chkconfig详解
  5. VI、VIM编辑器:VI、VIM编辑器的介绍、VI、VIM扥使用和常用快捷键
  6. Linux磁盘管理,lvm逻辑卷,nfs详解
  7. Linux系统文件权限管理:文件权限介绍、文件权限的操作
  8. Linux的RPM软件包管理:RPM包的介绍、RPM安装、卸载等操作
  9. yum命令,yum源搭建
  10. Linux网络:Linux网络的介绍、Linux网络的配置和维护 防火墙配置
  11. Shell编程:Shell的介绍、Shell脚本的编写
  12. Linux上常见软件的安装:安装JDK、安装Tomcat、安装mysql,web项目部署
  13. linux高级文本处理命令cut、sed、awklinux
  14. 定时任务crontab
  15. 其余常见操作…

注:目录,在Linux系统中常称为目录,在Windows系统中常称为文件夹,不同称谓同样的性质。

3.Hadoop生态学习(体系结构、原理、编程)

3.1第一阶段

这一阶段是本节的核心,即HDFS(大数据存储)、MapReduce(大数据计算)、HBse(NoSQL数据库)。

Hadoop是一个对海量数据进行处理的分布式系统架构,可以理解为Hadoop就是一个对大量的数据进行分析的工具,和其他组件搭配使用,来完成对大量数据的收集、存储和计算。

有一个基于Hadoop的数据挖掘库——Mahout。

离线计算系统Hadoop体系基础主要内容:
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并行度设置
    倒排索引
    共同好友
    
Hadoop入门——>HDFS/MapReduce基础——>HDFS/MapReduce高级——>HDFS/MapReduce实战

3.2第二阶段

数据分析引擎——Hive(数据仓库工具,不是数据库工具。数据仓库是逻辑上的概念,底层使用的是数据库。)、Pig(Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin)

数据采集引擎——Flume(实时日志采集)、Sqoop(数据迁移工具,主要用于在Hive数据库与关系型数据库间进行数据的传递,可将关系型数据库中的数据导入Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。)、DataX(阿里开源)

注:关系型数据库包括,MySQL、Oracle、DB2、Microsoft SQL Server、Microsoft Access、PostgreSQL等。

数据仓库工具Hive基础主要内容:
    1) Hadoop的HA机制
    2) HA集群的安装部署
    3) 集群运维测试之Datanode动态上下线
    4) 集群运维测试之Namenode状态切换管理
    5) 集群运维测试之数据块的balance
    6) HA下HDFS-API变化
    7) hive简介
    8) hive架构
    9) hive安装部署
    10) hvie初使用

Hive高级
    1) HQL-DDL基本语法
    2) HQL-DML基本语法
    3) HIVE的join
    4) HIVE 参数配置
    5) HIVE 自定义函数和Transform
    6) HIVE 执行HQL的实例分析
    7) HIVE最佳实践注意点
    8) HIVE优化策略
    9) HIVE实战案例
分布式日志框架Flume主要内容:
    1) flume简介/介绍-基础知识
    2) flume安装部署与测试
    3) flume部署方式
    4) flume source相关配置及测试
    5) flume sink相关配置及测试
    6) flume selector 相关配置与案例分析
    7) flume Sink Processors相关配置和案例分析
    8) flume Interceptors相关配置和案例分析
    9) flume AVRO Client开发
    10) flume 和kafka 的整合
    11) 案例:采集目录到HDFS
    12) 案例:采集文件到HDFS
数据迁移工具Sqoop主要内容:
    1) 介绍 和 配置Sqoop
    2) Sqoop shell使用
    3) Sqoop-import   a) DBMS-hdfs   b) DBMS-hive   c) DBMS-hbase
    4) Sqoop-export

3.3第三阶段

实现Hadoop的HA(HA是High availability的缩写,即高可用,7*24小时不中断服务)——ZooKeeper(Zookeeper是分布式协调管理服务框架,管理分布式环境中的数据。简要来说,Zookeeper = 文件系统 + 监听通知机制。)

分布式协调管理服务ZooKeeper主要内容:
     1) ZooKeeper简介及应用场景
     2) ZooKeeper集群安装部署
     3) ZooKeeper的数据节点与命令行操作
     4) ZooKeeper的java客户端基本操作及事件监听
     5) ZooKeeper核心机制及数据节点
     6) ZooKeeper应用案例–分布式共享资源锁
     7) ZooKeeper应用案例–服务器上下线动态感知
     8) ZooKeeper的数据一致性原理及leader选举机制

Web管理工具——Hue(Hue是大数据分析交互平台,是大数据web管理器,是运营和开发Hadoop应用的图形化用户界面。其包括三个主要部分:Hue UI,Hue Server,Hue DB。Hue程序被整合到一个类似桌面的环境,以web程序的形式发布,对于单独的用户来说不需要额外的安装。)

工作流引擎——Oozie(Oozie,能够提供对Hadoop的MapReduce和Pig的Jobs任务调度与协调。功能相似的任务调度框架还有Azkaban和Zeus。)

注1:Hadoop-HA严格来说应该分成各个组件的HA机制——HDFSHAYARNHA

注2:大数据四大协作框架——Oozie(任务调度框架)、Sqoop(数据转换工具)、Flume(文件收集库框架)、Hue(大数据Web工具)。

4.Spark生态学习

内存计算Spark基础主要内容:
    1) Spark介绍
    2) Spark应用场景
    3) Spark和Hadoop MR、Storm的比较和优势
    4) RDD
    5) Transformation
    6) Action
    7) Spark计算PageRank
    8) Lineage
    9) Spark模型简介
    10) Spark缓存策略和容错处理
    11) 宽依赖与窄依赖
    12) Spark配置讲解
    13) Spark集群搭建
    14) 集群搭建常见问题解决
    15) Spark原理核心组件和常用RDD
    16) 数据本地性
    17) 任务调度
    18) DAGScheduler
    19) TaskScheduler
    20) Spark源码解读
    21) 性能调优
    22) Spark和Hadoop2.x整合:Spark on Yarn原理

4.1第一阶段

Scala编程

1.Scala是一门多范式(Multi-paradigm)的编程语言,类似Java编程语言,设计初衷是实现可伸缩的语言、并要集成面向对象编程和命令式编程、函数式编程的各种特性。

2.Scala是运行在Java虚拟机上的,并兼容现有Java程序。Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。

3.可应用于后端开发,表达能力较强,擅长处理数据,长期运行且吞吐量较大的场景。

编程语言Scala主要内容:
    1) scala解释器、变量、常用数据类型等
    2) scala的条件表达式、输入输出、循环等控制结构
    3) scala的函数、默认参数、变长参数等
    4) scala的数组、变长数组、多维数组等
    5) scala的映射、元组等操作
    6) scala的类,包括bean属性、辅助构造器、主构造器等
    7) scala的对象、单例对象、伴生对象、扩展类、apply方法等
    8) scala的包、引入、继承等概念
    9) scala的特质
    10) scala的操作符
    11) scala的高阶函数
    12) scala的集合
    13) scala数据库连接

4.2第二阶段

Spark Core——基于内存的数据计算,替代的是Hadoop中的MapReduce部分。MapReduce是基于外存的计算,其计算速度较慢、时效性较差。

4.3第三阶段

Spark SQL——类似于Oracle的SQL语句

4.4第四个阶段

Spark Streaming——进行实时计算(流式计算),典型流式计算的生活场景是自来水厂。

流式计算Spark Streaming主要内容:
     1) Spark-Streaming简介
     2) Spark-Streaming编程
     3) 实战:StageFulWordCount
     4) Flume结合Spark Streaming
     5) Kafka结合Spark Streaming
     6) 窗口函数
     7) ELK技术栈介绍
     8) ElasticSearch安装和使用
     9) Storm架构分析
     10) Storm编程模型、Tuple源码、并发度分析
     11) Storm WordCount案例及常用Api分析

5.Storm学习——实时计算

Storm是分布式实时大数据处理框架,是流计算中的佼佼者和主流,被业界称为实时版Hadoop。

和Storm相关的NoSQL数据库,Redis——基于内存的数据库。作用类似Spark Streaming。

实时计算Storm主要内容:
    1) Storm的基本概念
    2) Storm的应用场景
    3) Storm和Hadoop的对比 
    4) Storm集群的安装的linux环境准备 
    5) zookeeper集群搭建 
    6) Storm集群搭建
    7) Storm配置文件配置项讲解
    8) 集群搭建常见问题解决
    9) Storm常用组件和编程API:Topology、 Spout、Bolt
    10) Storm分组策略(stream groupings)
    11) 使用Strom开发一个WordCount例子
    12) Storm程序本地模式debug、Storm程序远程debug
    13) Storm事物处理
    14) Storm消息可靠性及容错原理
    15) Storm结合消息队列Kafka:消息队列基本概念(Producer、Consumer、Topic、Broker等)、消息队列Kafka使用场景、Storm结合Kafka编程API
    16) Storm Trident概念
    17) Trident state 原理
    18) Trident开发实例
    19) Storm DRPC(分布式远程调用)介绍
    20) Storm DRPC实战讲解
    21) Storm和Hadoop 2.x的整合:Storm on Yarn
内存数据库Redis主要内容:
    1) redis特点、与其他数据库的比较
    2) 如何安装redis
    3) 如何使用命令行客户端
    4) redis的字符串类型
    5) redis的散列类型
    6) redis的列表类型
    7) redis的集合类型
    8) 如何使用java访问redis【a.python访问redis,scala访问redis】
    9) redis的事务(transaction)
    10) redis的管道(pipeline)
    11) redis持久化(AOF+RDB)
    12) redis优化
    13) redis的主从复制
    14) redis的sentinel高可用
    15) twemproxy,codis实战
    16) redis3.x集群安装配置	

6.其他学习

6.1 Kafka

Kafka是一个开源流处理平台——高吞吐量的分布式发布订阅消息系统,由Scala和Java编写。它可处理用户在网站中的所有动作流数据。类似的消息中间件还有RocketMQ。

消息纸中间件Kafka主要内容:
    1) kafka是什么
    2) kafka体系结构
    3) kafka配置详解
    4) kafka的安装
    5) kafka的存储策略
    6) kafka分区特点
    7) kafka的发布与订阅
    8) java编程操作kafka
    9) scala编程操作kafka
    10) flume 和kafka 的整合
    11) Kafka 和storm 的整合

6.2 机器学习算法

1、python及numpy库
    1) 机器学习简介
    2) 机器学习与python
    3) python语言–快速入门
    4) python语言–数据类型详解
    5) python语言–流程控制语句
    6) python语言–函数使用
    7) python语言–模块和包
    8) phthon语言–面向对象
    9) python机器学习算法库–numpy
    10) 机器学习必备数学知识–概率论

2、常用算法实现
    1) knn分类算法–算法原理
    2) knn分类算法–代码实现
    3) knn分类算法–手写字识别案例
    4) lineage回归分类算法–算法原理
    5) lineage回归分类算法–算法实现及demo
    6) 朴素贝叶斯分类算法–算法原理
    7) 朴素贝叶斯分类算法–算法实现
    8) 朴素贝叶斯分类算法–垃圾邮件识别应用案例
    9) kmeans聚类算法–算法原理
    10) kmeans聚类算法–算法实现
    11) kmeans聚类算法–地理位置聚类应用
    12) 决策树分类算法–算法原理
    13) 决策树分类算法–算法实现

6.3 大型网站高并发处理

1) 第四层负载均衡
    a) Lvs负载均衡         i. 负载算法,NAT模式,直接路由模式(DR),隧道模式(TUN)
    b) F5负载均衡器介绍
2) 第七层负载均衡
    a) Nginx     b) Apache
3) Tomcat、JVM优化提高并发量
4) 缓存优化
    a) Java缓存框架       i. Oscache,ehcache
    b) 缓存数据库         i. Redis,Memcached
5) Lvs+nginx+tomcat+redis|memcache构建二层负载均衡千万并发处理
6) Haproxy
7) Fastdfs小文件独立存储管理
8) Redis缓存系统    a) Redis基本使用     b) Redis sentinel高可用     c) Redis好友推荐算法

6.4 Lucene基础

Lucene主要内容:
    1) Lucene介绍
    2) Lucene 倒排索引原理
    3) 建索引 IndexWriter
    4) 搜索 IndexSearcher
    5) Query
    6) Sort和 过滤 (filter)
    7) 索引优化和高亮

6.5 Solr基础

Solr主要内容:
    1) 什么是solr
    2) 为什么工程中要使用solr
    3) Solr的原理
    4) 如何在tomcat中运行solr
    5) 如何利用solr进行索引与搜索
    6) solr的各种查询
    7) solr的Filter
    8) solr的排序
    9) solr的高亮
    10) solr的某个域统计
    11) solr的范围统计
    12) solrcloud集群搭建

6.6 Federation

HDFS Federation即HDFS的联邦,可简单理解为多个HDFS集群聚合到一起,更准确的理解是有多个namenode节点的HDFS集群。

7.总结

常见大数据开源框架:

离线计算:Hadoop MapReduce、Spark

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

文件存储:Hadoop HDFS、Tachyon、KFS

NoSQL数据库:HBase(列存储数据库)、Redis(K-V数据库)、MongoDB(文档数据库)、Neo4j(图形数据库)

资源管理:Yarn、Mesos

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

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

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

分布式协调服务:ZooKeeper

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

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

数据同步:Sqoop、DataX

任务调度:Oozie

8.其他方向

包括:JavaWeb、关系型数据库、前端三剑客(HTML、CSS、JavaScript)

9.项目案例

千里之行,始于足下。

你可能感兴趣的:(学习路线,大数据,hadoop,spark,分布式,数据库)