1、 大数据应用技术网络课程 1 课程目标 通过 讲解 几种主流大数据 产品和 技术的特性、 实现 原理和应用方向, 并 组织实习项目, 使学员了解并初步掌握目前流行的大数据主流技术 (采集、存储、挖掘等) , 了解其特点以及使用的场景, 具备一定的大数据系统架构能力,并能自行开展简单的大数据应用开发。 2 课程 内容 本次课程讲解的 大数据 产品和技术包括 : hadoop、 storm、 flume等, 其中 以 hadoop为主要培训内容。 3 培训课程列表 1. hadoop生态系统 ( 1) HDFS ( 2课时) ( 2) MapReduce2 ( 2课时) ( 3) Hive ( 1
2、课时) ( 4) HBase ( 2课时) ( 5) Sqoop ( 1课时) ( 6) Impala ( 1课时) ( 7) Spark ( 4课时) 2. Storm流计算 ( 2课时) 3. Flume分布式数据处理 ( 2课时) 4. Redis内存数据库 ( 1课时) 5 ZooKeeper ( 1课时) 4 培训方式 学员以观看录像、视频会议等方式 进行学习, 搭建集中环境供大家实习,并 设置 作业和 答疑 环节 。 每周视频课程约 2 个课时, 作业和实习时间约需 2-3 小时, 课程持续10周 左右 。 5 课程 内容 简介 大数据技术在近两年发展 迅速 ,从之前的格网计算、
3、MPP 逐步发展到现在,大数据技术发展为 3个主要技术领域:大数据存储、离线大数据分析、在线大数据处理,在各自领域内,涌现出很多流行的产品和框架。 大 数据存储 HDFS、 HBase 离线大数据分析 MapReduce、 Hive 在线大数据处理 Impala、 Storm(流处理)、 Spark、 Redis(内存数据库) 、 HBase 数据采集 Flume等 辅助工具 Zookeeper等 5.1 Hadoop 1) HDFS 介绍: Hadoop 分布式文件系统 (HDFS)被设计成适合运行在通用硬件 (commodity hardware)上的分布式文件系统。它和现有的分布式文件系
4、统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。 HDFS 是一个高度容错性的系统,适合部署在廉价的机器上。 HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。 HDFS 放宽了一部分 POSIX 约束,来实现流式读取文件系统数据的目的。 HDFS是 Apache Hadoop Core项目的一部分。 培训内容: HDFS设计的思路 HDFS的模块组成 ( NameNode、 DataNode) HADOOP Core的安装 HDFS参数含义及配置 HDFS文件访问方式 培训目标: 使学员掌握 HDFS这个 HADOOP基础套件 的原理、安装方式、配置方法等
5、 2) MAPREDUCE 介绍: MapReduce是一种编程模型,用于大规模数据集(大于 1TB)的并行运算。概念 “Map(映射) “和 “Reduce(归约) “,和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在 分布式系统 上。 当前的 软件 实现是指定一 个 Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的 Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。 培训内容: MapReduce环境配置 JobTracker/TaskTrac
6、ker的作用 简单的 MapReduce示例 培训目标: 使学员初步了解 MapReduce的工作原理与使用方式 3) HIVE 介绍: hive是基于 Hadoop的一个 数据仓库 工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 sql查询功能,可以将 sql语句转换为 MapReduce任务进行运行。 其优点是学习成本低,可以通过类 SQL语句快速实现简单的 MapReduce统计,不必开发专门的 MapReduce应用,十分适合 数据仓库 的统计分析。 培训内容: Hive组件的安装 Hive与传统关系型数据库的区别 Hive的一些特性 Hive的访问方式 简单 HiveQ
7、L语言介绍 培训目标: 使学员初步了解 Hive的作用,以及简单的 hiveql 4) HBASE 介绍: HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google论文 “Bigtable:一个结构化数据的 分布式存储系统 ”。就像 Bigtable利用了 Google文件系统( File System)所提供的分布式数据存储一样, HBase在 Hadoop之上提供了类似于 Bigtable的能力。 HBase是 Apache的 Hadoop项目的子项目。 HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是
8、HBase基于列的而不是基于行的模式。 培训内容: Hbase组件的安装 Hbase与传统 RDBMS的比较 Hbase的一些特性 Hbase的访问方式 培训目标: 使学员初步了解 Hive的作用,以及简单的 Hbase应用 5) SQOOP 介绍: Sqoop(发音: skup)是一款开源的工具,主要用于在 HADOOP(Hive)与传统的数据库 (mysql、 postgresql.)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到 Hadoop的 HDFS中,也可以将 HDFS的数据导进 到关系型数据库中。 培训内容:
9、Sqoop组件的安装 数据导入导出 Hive 数据导入一致性 培训目标: 使学员了解 Sqoop的使用,并能做一些简单的 RDBMS与 Hive之间的数据导入导出工作 6) IMPALA 介绍: Impala 是 Cloudera 公司主导开发的新型查询系统,它提供 SQL 语义,能查询存储在 Hadoop的 HDFS和 HBase中的 PB 级大数据。已有的 Hive系统虽然也提供了SQL 语义,但由于 Hive 底层执行使用的是 MapReduce 引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下, Impala的最大特点也是最大卖点就是它的快速。 培训内容: Impala的工作
10、原理 及其与 Hive的区别 Impala的一些特性 Impala的安装 Impala的访问 培训目标: 使学员初步了解 Impala的作用,以及简单的 impala的使用 7) SPARK 介绍: Spark 是发源于美国加州大学伯克利分校 AMPLab 的集群计算平台。它立足于内存计算,从多迭代批量处理出发,兼收并蓄数据仓库、流处理和图计算等多种计算范式,是罕 见的全能选手。 培训内容: Spark的工作模式 Spark与 Hadoop/MapReduce的关系与区别 Spark的安装 Spark的使用 培训目标: 使学员初步了解 Spark 这种新兴起的技术,以及它与目前广泛使用的 Ha
11、doop类技术的区别 5.2 Storm 介绍: Storm是一个 用 Clojure语言实现的 免费开源、分布式、高容错的实时计算系统。 Storm令持续不断的流计算变得容易,弥补了 Hadoop 批处理所不能满足的实时要求。 Storm 经常用于在实时分析、在线机器学习、持续计算、分布式远程调用和 ETL 等领域。 Storm 的部署管理非常简单,而且,在同类的流式计算工具, Storm的性能也是非常出众的。 Storm集成了许多库,支持包括 Kestrel、 Kafka、 JMS、 Cassandra、 Memcached以及更多系统。随着支持的库越来越多, Storm更容易与现有的系统
12、协作。 培训内容: 流处理的概念 Storm的原理 Storm的安装 Storm流处理机制 Storm数据流分发机制 Storm消息机制 培训目标 : 使学员能够了解流处理 的概念、使用场景, Storm的相关概念以及应用场景 5.3 FLUME FLUME介绍 Flume最早是 Cloudera提供的日志收集系统,目前是 Apache下的一个孵化项目, Flume支持在日志系统中定制各类数据发送方,用于收集数据。 Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力 Flume提供了从 console(控制台)、 RPC( Thrift-RPC)、 text(文件)、 ta
13、il( UNIX tail)、 syslog( syslog日志系统,支持 TCP和 UDP等 2种模式), exec(命令执行)等数据源上收集数据的能力。 培训内容 1、 FLUME-NG 的安装 2、 Flume的组件分类 3、 FLUME-NG 的工作方式 4、 FLUME-NG 的配置 5、以 UDP SYSLOG采集为例,说明 FLUME的配置 目标 通过对 FLUME的学习,使学员 初步 掌握分布式数据采集、拓扑配置的方式和方法 5.4 REDIS 介绍 Redis是一个开源的使用 ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语
14、言的 API。 培训内容 1、 redis的安装 2、 redis试用场景 3、 redis的简要开发方式( JAVA语言) 目标 通过对 redis的学些,掌握 redis简单的安装、配置、开发、试用的方式和方法 5.5 ZooKeeper 介绍 : ZooKeeper是一个 分布式 的,开放源码的 分布式应用程序 协调服务,是 Google的 Chubby一个 开源 的实现,是 Hadoop和 Hbase的重要组件。它是一个为分布式应 用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。 培训内容 : Zookeeper原理 Zookeeper部署 Zookeeper使用 (以 java为例) 培训目标 : 使学员能够基本了解 zookeeper在各种分布式系统中的作用,并初步掌握其 使用方式