课程介绍:
通过本课程的学习,学员将深入了解到通过大规模集群的模式处理海量数据的方式与编程方法。通过实践相关的课程内容,使用开源的Apache Lucene Hadoop工具,学员将亲身实践Google文件系统以及Google所使用的分布式编程方式MapReduce。学员还需要完成特定的分布式应用程序设计来巩固所学的编程知识,用于处理实际的海量数据问题。
适合对象:
· 对云计算或大规模数据处理感兴趣的开发人员
· 架构师、项目经理等
课程目标:
· 熟悉和掌握云计算的架构与原理
· 了解大规模数据处理的核心技术
· 熟悉并理解企业大规模数据处理应用的注意事项
· 对开源系统的应用
预备知识:
· 对Lucene(开源的索引和检索系统)和 Hadoop有所理解
· 掌握基本的Java语法
· 对数据结构、编译原理、概率论有基本的了解
第一章 |
|
主题 |
分布式系统概述 |
大纲 |
· 分布式系统基本概念 · 分布式系统设计遇到的问题 · 分布式系统的可靠性问题 · 分布式系统的可扩展性问题 |
实验: · 实验环境的介绍:实验环境中所涉及到的软件,实验中所需要的硬件配置,编程所需要的必要的Java知识等。 · 介绍如何在集群环境下进行Hadoop系统的安装以及配置,使得每个参加的学员都能够安装完成Hadoop,并进行正确配置与运行。 |
第二章 |
|
主题 |
分布式文件系统 |
大纲 |
· 传统的分布式文件系统,例如NFS,AFS等, · 新的分布式文件系统的介绍,如Ceph等。 · 介绍分布式文件系统GFS,以及相应的在Hadoop中的模块HDFS。 |
实验: · 学员实验所必须的相关的背景知识,例如多线程程序的编写,程序的同步问题,网络编程所需要的必要知识(实际是不用的,但是为了理解分布式程序的运行,必须要了解)。 · 熟悉使用Hadoop进行编程的基础知识:Hadoop的构成,Hadoop中相关类库的介绍,在Hadoop环境下,使用Java操作接口,对文件系统进行读写操作。 |
第三章 |
|
主题 |
MapReduce编程技术 |
大纲 |
· Google的MapReduce编程介绍 · 开源软件Nutch的体系结构与构成 · Hadoop的体系结构,构成以及MapReduce设计的编程要素 |
实验: · Hadoop的MapReduce编程环境 使用Hadoop进行MapReduce编程,并进行第一个实验,即做一次倒排表的实验。 |
第四章 |
|
主题 |
MapReduce算法 |
大纲 |
· 使用MapReduce进行图算法PageRank · 使用MapReduce进行聚类算法Canopy Clustering |
实验: · 图算法PageRank的实现 |