学习大数据,学什么?怎么学?
1、原理和运行机制、体系结构(非常重要)
2、动手:搭建环境、写程序
目的:1、学习内容 2、熟悉一些名词
一、各章概述(Hadoop部分)
(一)、Hadoop的起源与背景知识
1、什么是大数据?两个例子、大数据的核心问题是什么?
举例:(1)商品推荐:问题1:大量的订单如何存储? 问题2:大量的订单如何计算?
(2)天气预报:问题1:大量的天气数据如何存储? 问题2:大量的天气数据如何计算?
大数据的核心问题:(1)数据的存储:分布式文件系统(分布式存储)
(2)数据的计算:分布式计算
2、概念:数据仓库(Data warehouse)
(1)我们可以把Hadoop和Spark看成是数据仓库的一种实现方式
(2)数据仓库就是一个数据库,一般只做select
(3)重要:掌握数据仓库搭建的过程
(4)数据仓库又是一种OLAP的应用系统
3、概念:OLTP和OLAP
(1)OLTP:online transaction processing 联机事务处理
(2)OLAP:online analytic processing 联机分析处理 ------> 一般:不会修改(删除)数据
4、(最重要的内容)Google的几篇论文:3篇
(1)GFS:Google File System -----> HDFS ----> 解决:数据的存储
(2)MapReduce计算模型 -----> Hadoop MapReduce ----> 解决:数据的计算
(3)BigTable大表 -----> HBase是NoSQL数据库
(二)、实验环境
(三)、Apache Hadoop的体系结构(重要):实现Google的思想论文
1、HDFS:Hadoop Distributed File System
(*)主从结构
(*)主节点:NameNode名称节点
(*)从节点:DataNode数据节点
(*)SecondaryNameNode:第二名称节点
2、Yarn:是一个容器,运行MapReduce程序
(*)主从结构
(*)主节点:ResourceManager 资源管理器
(*)从节点:NodeManager 节点管理器
3、HBase:需要单独安装
(*)主从结构
(*)主节点:HMaster
(*)从节点:RegionServer
(四)、Hadoop 2.X的安装与配置
Hadoop有三种安装模式
1、本地模式 一台Linux
2、伪分布模式 一台Linux
3、全分布模式 三台Linux
4、掌握免密码登录的原理和配置
(五)、Hadoop应用案例分析
1、大数据背景下,企业级系统的架构的变化
2、HBase进行日志分析
3、了解:Hadoop在淘宝的应用
(六)、HDFS:Hadoop的分布式文件系统,数据存储
1、操作HDFS:(1)命令行 (2)Java API (3)网页:Web Console
2、原理:数据上传的过程
数据下载的过程
3、HDFS的底层实现:RPC和Java动态代理
RPC:remote procedure call
4、高级特性
(*)回收站
(*)快照snapshot:是一种备份
(*)配额quota:(1)名称配额 (2)空间配额
(*)安全模式:safemode
(*)权限
(七)、MapReduce:是一个计算模型,可以用Java来实现
1、Demo:经典WordCount
2、重点:MapReduce处理数据的过程
3、原理:Yarn执行MapReduce的过程
4、MapReduce的高级特性
(*)序列化
(*)排序
(*)分区
(*)合并
5、MapReduce的核心:Shuffle(洗牌)
6、编程案例:
(*)排序:order by
(*)去重:distinct
(*)多表查询
(*)倒排索引
补充:MySQL数据库
(八)、Hive:蜂巢 数据分析的引擎:翻译器 SQL ---------------> MapReduce
(九)、Pig: 猪 数据分析的引擎:翻译器 PigLatin语言 ------> MapReduce
(十)、HBase: NoSQL数据库
1、是基于Hadoop之上的NoSQL
2、体系结构:HMaster、RegionServer
3、搭建:本地模式、伪分布模式、全分布模式
4、操作:命令行、Java API、Web Console
5、过滤器:实现复杂的查询
6、HBase上的MapReduce
(十一)、Sqoop:数据采集引擎,采集关系型数据库中的数据
(十二)、Flume:数据采集引擎,采集日志
(十三)、HUE:基于Web的管理工具
(十四)、ZooKeeper: 相当于是一个”数据库“,实现HA(High Avaiblity高可用性)
(十五)、Hadoop的集群和HA
1、HDFS的联盟(Federation)
2、Hadoop的HA(High Avaiblity高可用性)
(十六)、Redis:基于内存的NoSQL数据库,提高性能
(十七)、Storm:处理流式数据(实时计算)
集成Storm和Redis