Hadoop 大数据技术原理与应用

Hadoop 大数据技术原理与应用

大数据概述

定义

特征

  • 大量,多样,高速,价值

研究意义

应用场景

  • 医疗,金融,零售

Hadoop 概述

历史

优势

  • 扩容能力强,成本低,高效率,可靠性,高容错

Hadoop 生态

  • 分布式存储系统(HDFS)
  • 分布式计算框架(MapReduce)
  • 资源管理(YARN)
  • 数据迁移(Sqoop)
  • 数据挖掘算法库(Mahout)
  • 分布式数据库(HBase)
  • 分布式协调服务(Zookeeper)
  • 数据仓库(Hive)
  • 日志收集(Flume)

版本

搭建 Hadoop 集群

安装准备

  • 虚拟机安装
  • Linux 网络配置
  • SSH 服务配置

Hadoop 集群搭建

  • 部署模式
  • JDK 安装
  • Hadoop 安装
  • Hadoop 集群配置

测试

  • 格式化文件系统
  • 启动
  • 通过 UI 查看运行状态

HDFS 分布式文件系统

简介

  • 演变

  • 基本概念

    • 名称节点(NameNode)
    • 数据节点(DataNode)
    • 数据块(Block)
    • 机架(Rack)
    • 元数据(Metadata)
  • 特点

    • 优点:高容错,流式数据访问,支持超大文件,高数据吞吐量,可构建在廉价的机器上
    • 缺点:高延迟,不适合小文件存储场景,不适合并发写入

存储架构

文件读写原理

Shell 操作

Java API 操作

MapReduce 分布式计算框架

概述

  • 核心思想

    • 分而治之
    • Map 阶段:任务分解
    • Reduce 阶段:任务合并
  • MapReduce 编程模型

  • 实例

    • 词频统计

工作原理

  • MapReduce 工作过程

    • 分片,格式化数据源
    • 执行 MapTask
    • 执行 Shuffle 过程
    • 执行 Reduce Task
    • 写入文件
  • MapTask 工作原理

    • Read
    • Map
    • Collect
    • Spill
    • Combine
  • ReduceTask 工作原理

    • Copy
    • Merge
    • Sort
    • Reduce
    • Write
  • Shuffle 工作原理

编程组件

  • InputFormat
  • Mapper
  • Reducer
  • Partitioner
  • Combiner
  • OutputFormat

运行模式

  • 本地运行模式
  • 集群运行模式

性能优化

案例

  • 倒排索引
  • 数据去重
  • TopN

Zookeeper 分布式协调服务

初识

  • 简介

  • 特性

    • 全局数据一致性,可靠性,顺序性,数据更新原子性,实时性
  • 角色

    • Leader
    • Follower
    • Observer

数据模型

  • 数据存储结构

  • Znode

    • 类型
    • 属性

Watch 机制

  • 简介

  • 特点

    • 一次性触发,事件封装,异步发送,先注册再触发
  • 通知状态

  • 事件类型

选举机制

  • 简介

    • 服务器 ID
    • 选举状态
    • 数据 ID
    • 逻辑时钟
  • 类型

    • 全新集群选举
    • 非全新集群选举

分布式集群部署

  • 下载安装
  • 相关配置
  • 服务的启动与关闭

Shell 操作

Java API

应用场景

  • 数据发布与订阅
  • 统一命名服务
  • 分布式锁

Hadoop 2.0 新特性

改进与提升

YARN 资源管理框架

  • 体系结构

    • ResourceManager
    • NodeManager
    • ApplicationMaster
  • 工作流程

HDFS 的高可用

  • 高可用架构
  • 搭建高可用集群

Hive 数据仓储

简介

  • 数据仓库

    • 面向主题

    • 随时间变化

    • 相对稳定

    • 结构

      • 数据源
      • 数据存储及管理
      • OLAP 服务器
      • 前端工具
    • 数据模型

      • 星状模型
      • 雪花模型
  • Hive

    • 简介

    • 系统架构

      • 用户接口

        • CLI
        • JDBC/ODBC
        • WebUI
      • 跨语言服务

      • 底层的驱动引擎

        • 编译器
        • 优化器
        • 执行器
      • 元数据存储系统

        • Derby(默认)
        • MySQL
    • 工作原理

    • 数据模型

      • 数据库
      • 分区
      • 桶表

安装

  • 安装模式

    • 嵌入
    • 本地
    • 远程

管理

  • CLI 方式
  • 远程服务

内置数据类型

数据模型操作

  • 数据库操作
  • 内部表操作
  • 外部表操作
  • 分区表操作
  • 桶表操作

数据操作

Flume 日志采集

概述

  • 简介

  • 运行机制

    • Source(数据采集器)
    • Channel(缓冲通道)
    • Sink(接收器)
  • 结构图

    • 简单结构
    • 复杂结构

基本使用

  • 系统要求

  • 安装配置

  • 入门使用

    • 配置采集方案
    • 使用指定采集方案启动 Flume
    • Flume 采集数据测试

采集方案配置说明

可靠性保证

  • 负载均衡
  • 故障转移

拦截器

  • Timestamp
  • Static
  • Search and Replace

实例

Azkaban 工作流管理

概述

  • 工作流管理器

    • 工作流调度系统背景

    • 常用工作流管理器

      • Oozie
      • Azkaban
      • Zeus
  • Azkaban

    • 特点

      • 兼容任何版本的 Hadoop
      • 易用的 Web UI
      • 简单的 Web 和 HTTP 工作流上传
      • 支持工作流定时调度
      • 支持模块化和可插入
      • 支持身份验证和授权
      • 支持用户操作跟踪
      • 支持有关失败和成功的电子邮件提醒
      • 提供 SLA 警报和自动查杀功能
    • 组成结构

      • Relational Database
      • Azkaban Web Server
      • Azkaban Executor Server
    • 部署模式

      • sole servere mode
      • two server mode
      • distributed multiple-executor mode

部署

  • 资源准备

    • 下载源文件
    • 编译源文件
    • 安装包获取
  • 安装配置

    • MySQL 安装配置
    • Web 服务安装配置
    • Executor 服务安装配置
  • 启动测试

使用

  • 工作流相关概念

    • job 任务
    • 工作流
    • 嵌入流
  • 案例

Sqoop 数据迁移

概述

  • 简介
  • 原理

安装配置

指令介绍

数据导入

数据导出

你可能感兴趣的:(hadoop,大数据,hdfs)