这是一部教你如何从0到1架构与实现一个企业级大数据平台的著作,是作者在大数据和系统架构领域工作超过20000小时的经验总结。
作者从横向视角出发,手把手教你如何拉通Hadoop体系技术栈,以此搭建一个真实可用、安全可靠的大数据平台。通过阅读本书,大家一定能找到灵感和思路来应对实际工作中面对的问题。
本书在逻辑上分为三大部分:
背景篇(第1~2章):简单阐述了企业级大数据平台的重要性,并指出了作为一个企业级大数据平台应当具备的能力。接着抛砖引玉介绍了通过Hadoop生态体系去构建一个企业级大数据平台可以使用的技术栈的核心概念,如HDFS、HBase、Spark等。
方法篇(第3~6章):详细讲解了集群服务、安全网关、服务授权、Kerberos认证、单点登录和集群用户整合等各个方面的背景知识与配置整合步骤。
扩展篇(第7~8章):介绍了如何用编写Restful服务的形式进一步扩展平台功能的一些思路,以便提高平台的易用性和可用性。
推荐序 思者常新,厚积薄发
前言
第1章 浅谈企业级大数据平台的重要性
1.1 缺乏统一大数据平台的问题
1.1.1 资源浪费
1.1.2 数据孤岛
1.1.3 服务孤岛
1.1.4 安全存疑
1.1.5 缺乏可维护性和可扩展性
1.1.6 缺乏可复制性
1.2 构建统一大数据平台的优势
1.3 企业级大数据平台需要具备的基本能力
1.3.1 集群管理与监控
1.3.2 数据接入
1.3.3 数据存储与查询
1.3.4 数据计算
1.3.5 平台安全与管理
1.4 平台辅助工具
1.5 本章小结
第2章 企业级大数据平台技术栈介绍
2.1 HDFS
2.1.1 概述
2.1.2 RAID技术
2.1.3 核心设计目标
2.1.4 命名空间
2.1.5 数据模型
2.1.6 Namenode和Datanode
2.1.7 使用场景
2.2 Zookeeper
2.2.1 概述
2.2.2 核心特性
2.2.3 命名空间
2.2.4 数据模型
2.2.5 节点状态监听
2.2.6 原子消息广播协议
2.2.7 使用场景
2.3 HBase
2.3.1 概述
2.3.2 数据模型
2.3.3 Regions
2.3.4 HBase Master
2.3.5 Region Server
2.3.6 MemStore与HFile
2.3.7 使用场景
2.4 YARN
2.4.1 概述
2.4.2 资源模型和Container
2.4.3 ResourceManager
2.4.4 ApplicationMaster
2.4.5 NodeManager
2.4.6 单一集群架构
2.4.7 工作流程
2.4.8 使用场景
2.5 Spark
2.5.1 概述
2.5.2 数据模型
2.5.3 编程模型和作业调度
2.5.4 依赖
2.5.5 容错
2.5.6 集群模式
2.5.7 使用场景
2.6 本章小结
第3章 使用Ambari安装Hadoop集群
3.1 概述
3.2 集群设计
3.2.1 主控节点
3.2.2 存储与计算节点
3.2.3 安全认证与管理节点
3.2.4 协同管理与其他节点
3.3 Ambari的安装、配置与启动
3.3.1 安装前的准备
3.3.2 安装Ambari-Server
3.3.3 Ambari-Server目录结构
3.3.4 配置Ambari-Server
3.3.5 启动Ambari-Server
3.4 新建集群
3.4.1 设置集群名称并配置HDP安装包
3.4.2 配置集群
3.5 Ambari控制台功能简介
3.5.1 集群服务管理
3.5.2 集群服务配置
3.5.3 辅助工具
3.6 本章小结
第4章 构建企业级平台安全方案
4.1 浅谈企业级大数据平台面临的安全隐患
4.1.1 缺乏统一的访问控制机制
4.1.2 缺乏统一的资源授权策略
4.1.3 缺乏Hadoop服务安全保障
4.2 初级安全方案
4.2.1 访问控制
4.2.2 数据授权与管理
4.3 本章小结
第5章 Hadoop服务安全方案
5.1 Kerberos协议简介
5.2 使用FreeIPA安装Kerberos和LDAP
5.2.1 安装FreeIPA
5.2.2 IPA-Server管理控制台功能介绍
5.2.3 IPA CLI功能介绍
5.3 开启Ambari的Kerberos安全选项
5.3.1 集成前的准备
5.3.2 集成IPA
5.3.3 测试Kerberos认证
5.4 本章小结
第6章 单点登录与用户管理
6.1 集成单点登录
6.1.1 CAS简介
6.1.2 安装CAS-Server
6.1.3 集成Knox网关与CAS-Server
6.1.4 集成Ranger与CAS-Server
6.1.5 集成Ambari与CAS-Server
6.2 实现统一的用户管理系统
6.3 使用Java程序调用脚本
6.4 创建Ranger扩展用户
6.5 本章小结
第7章 搭建平台管理端RESTful服务
7.1 搭建RESTful服务框架
7.2 用户查询
7.2.1 引入LDAP模块
7.2.2 配置LDAP
7.2.3 实现持久层
7.2.4 实现服务层
7.2.5 实现RESTful服务
7.2.6 整合用户管理
7.3 RESTful服务安全认证
7.3.1 用户登录服务
7.3.2 使用JWT认证
7.3.3 创建用户登录RESTful服务
7.3.4 认证过滤器
7.3.5 测试服务安全认证
7.4 数据仓库数据查询
7.4.1 创建JDBC连接
7.4.2 Kerberos登录
7.4.3 使用JDBC协议查询
7.4.4 实现服务层与RESTful服务
7.4.5 测试查询
7.5 数据仓库元数据查询
7.5.1 使用query服务查询数仓元数据
7.5.2 引入JdbcTemplate模块
7.5.3 增加Hive元数据库配置
7.5.4 实现元数据持久层
7.5.5 实现元数据服务层与RESTful服务
7.5.6 测试元数据查询
7.6 本章小结
第8章 Spark任务与调度服务
8.1 提交Spark任务的3种方式
8.1.1 使用Spark-Submit脚本提交
8.1.2 使用Spark Client提交
8.1.3 使用YARN RESTful API提交
8.2 查询Spark日志
8.3 任务调度
8.3.1 引入Quartz模块
8.3.2 增加Quartz配置
8.3.3 编写调度任务
8.3.4 改进空间
8.4 本章小结
附录A Hadoop简史
附录B Hadoop生态其他常用组件一览
附录C 常用组件配置说明