大数据入门级学习路线

一、学习技能

1.1 必备技能(10项)

01. Java高级(虚拟机、并发)

02. Linux操作

03. Hadoop V2.0

(分布式存储系统HDFS【redundant reliable storage】+分布式计算框架MapReduce【data process】+资源管理系统Yarn【cluste resource management】)

(1)分布式存储系统HDFSHadoop Distributed File System

    基本原理:将文件切分成等大的数据块,存储到多台机器上,将数据切分、容错、负载均衡等功能透明化,可将HDFS看成是一个容量巨大、具有高容错性的磁盘。

    应用场景:海量数据的可靠性存储

    HDFS优点:高容错性(数据自动保存多个副本,副本丢失后自动恢复);

                        适合批处理(移动计算而非数据、数据位置暴露给计算框架);

                        适合大数据处理(GB、TB、甚至PB级数据、百万规模以上的文件数量、10K+节点规模);

        默认数据块大小为64MB,可配置,如果文件大小不到64MB,则单独存成一个block;

       默认每个block有三个副本;

        HDFS写流程如下——

            HDFS读流程如下——

(2)资源管理系统YARNYet Another Resource Negotiator

   Hadoop2.0新增系统,负责集群的资源管理和调度,使得多种计算框架运行在一个集群中。

YARN基本架构如下——

 YARN运行过程剖析如下——

 

(3)分布式计算框架MapReduce

  具有良好的扩展性、高容错性,适合PB级以上海量数据的离线处理

将计算过程分为两个阶段,Map和Reduce,Map阶段并行处理输入数据,Reduce阶段对Map结果进行汇总。运用Shuffle连接Map和Reduce两个阶段(Map Task将数据写到本地磁盘,Reduce Task从每个Map Task上读取一份数据)

MapReduce架构如下——

 MapReduce运行流程如下——

 

(4)Hadoop2.0生态系统

 (5)Pig

      构建在Hadoop上的数据仓库,定义一种数据流语言——Pig Latin,通常用于离线分析。

  (6)Mahout(数据挖掘库)

      基于Hadoop的机器学习和数据挖掘的分布式计算框架,实现了三大类算法:推荐、聚类、分类。

  (7)Zookeeper(分布式协作服务)

      解决分布式环境下数据管理问题——统一命名、状态同步、集群管理、配置同步

  (8)Sqoop(数据同步工具)

      连接Hadoop与传统数据库之间的桥梁,支持多种数据库,包括MySQL、DB2等;

      插拔式,用户可根据需要支持新的数据库;

      本质上是一个MapReduce程序,充分利用MR分布式并行的特点与MR的容错性特点;

  (9)Flume(日志收集工具)

  (10)Oozie(作业流调度系统)

04. HBase分布式数据库(JavaAPI操作+Phoenix)

    (1)HBase数据模型

      Table:表——类似于传统数据库中的表

      Column Family:列簇

      Row Key:行键——Table的主键

      Timestamp:时间戳——每行数据都对应一个时间戳

05. Hive(Hql基本操作与原理)

      基于MR的数据仓库,最初用于解决海量结构化的日志数据统计问题,ETL工具;构建在Hadoop上的数据仓库;

      Hive定义了一种类SQL查询语言——HQL

      通常用于进行离线数据处理(采用MapReduce)

      日志分析(统计网站一个时间段的pv、uv),大部分互联网公司使用Hive进行日志分析,包括百度、淘宝

      多维度数据分析,

06. Kafka

07. Storm(实时计算框架)

流式计算,是指被处理的数据像流水一样不断地流入系统,而系统需针对每条数据进行实时处理和计算,并永不停止(直到用户显式杀死进程);

08. Scala需要

09. Python

10. Spark内存计算(Core+sparksql+Spark Streaming)

1.2 高级技能(6项)

1. 机器学习算法及mahout库加MLlib

2. R语言

3. Lambda架构

4. Kappa架构

5. Kylin

6. Aluxio

二、学习路径

 2.1 第一阶段(Linux基础+Java高级)

1. Linux基础(鸟哥学Linux)

2. Java高级(《深入理解Java虚拟机》、《Java高并发实战》)

2.2 第二阶段

1. Hadoop(董西成书籍)

2. HBase(《HBase权威指南》)

3. Hive(《Hive开发指南》)

4. Scala(《快学Scala》)

5. Spark(《Spark快速大数据分析》)

6. Python(廖雪峰博客)

三、官网地址资源

1. Apache官网

2. Stack Overflow

3. Github

4. Cloudra官网

5. Databrick官网

6.CSDN

7. 51CTO

更多大数据相关技术,欢迎一起讨论~

 ————————一个唯美食与远方不可辜负的程序媛——————————————