给大家推荐一本比较系统的 Hadoop 大数据书籍, 方便大家快速入门
图书简介:
本书以 Hadoop 及其周边框架为主线, 介绍了整个 Hadoop 生态系统主流的大数据开发技术. 全书共 16 章, 第 1 章讲解了 VMware 中 CentOS 7 操作系统的安装; 第 2 章讲解了大数据开发之前对操作系统集群环境的配置; 第 3~16 章讲解了 Hadoop 生态系统各框架 HDFS,MapReduce,YARN,ZooKeeper,HBase,Hive,Sqoop 和数据实时处理系统 Flume,Kafka,Storm,Spark 以及分布式搜索系统 Elasticsearch 等的基础知识, 架构原理, 集群环境搭建, 同时包括常用的 Shell 命令, API 操作, 源码剖析, 并通过实际案例加深对各个框架的理解与应用. 通过阅读本书, 读者即使没有任何大数据基础, 也可以对照书中的步骤成功搭建属于自己的大数据集群并独立完成项目开发.
本书适合大数据开发初学者, 大数据运维人员以及大数据分析与挖掘的从业者阅读, 也可作为培训机构与高校相关专业的教学参考书.
前 言
当今互联网已进入大数据时代, 大数据技术已广泛应用于金融, 医疗, 教育, 电信, 政府等领域. 各行各业每天都在产生大量的数据, 数据计量单位已从 B,KB,MB,GB,TB 发展到 PB,EB,ZB,YB 甚至 BB,NB,DB. 预计未来几年, 全球数据将呈爆炸式增长. 谷歌, 阿里巴巴, 百度, 京东等互联网公司都急需掌握大数据技术的人才, 而大数据相关人才却出现了供不应求的状况.
对大数据以及人工智能概念都是模糊不清的, 该按照什么线路去学习, 学完往哪方面发展, 想深入了解, 想学习的同学欢迎加入大数据学习 qq 群: 458345782, 有大量干货 (零基础以及进阶的经典实战) 分享给大家, 并且有清华大学毕业的资深大数据讲师给大家免费授课, 给大家分享目前国内最完整的大数据高端实战实用学习流程体系 . 从 java 和 Linux 入手, 其后逐步的深入到 HADOOP-hive-oozie-web-flume-python-hbase-kafka-scala-SPARK 等相关知识一一分享!
Hadoop 作为大数据生态系统中的核心框架, 专为离线和大规模数据处理而设计. Hadoop 的核心组成 HDFS 为海量数据提供了分布式存储; MapReduce 则为海量数据提供了分布式计算. 很多互联网公司都使用 Hadoop 来实现公司的核心业务, 例如华为的云计算平台, 淘宝的推荐系统等, 只要和海量数据相关的领域都有 Hadoop 的身影.
本书从实战角度出发, 介绍了 Hadoop 及其周边框架, 涉及知识面比较广, 几乎涵盖了当前整个 Hadoop 生态系统主流的大数据开发技术, 如 HDFS,MapReduce,YARN,ZooKeeper,HBase,Hive,Sqoop 和数据实时处理系统 Flume,Kafka,Storm,Spark 以及分布式搜索系统 Elasticsearch 等的基础知识, 架构原理, 集群环境搭建, 同时包括常用的 Shell 命令, API 操作, 源码剖析, 并通过实际案例加深对各个框架的理解与应用.
本书的特色是内容全面, 代码可读性强, 以实操为主, 理论为辅, 一步一步手把手对常用的离线计算以及实时计算等系统进行了深入讲解.
本书推荐的阅读方式是按照章节顺序从头到尾完成阅读, 因为后面的很多章节是以前面的章节为基础, 而且这种一步一个脚印, 由浅入深的方式将使你更加顺利地掌握大数据的开发技能.
学习本书时, 首先根据第 1,2 章搭建好开发环境, 然后依次学习第 3~16 章, 学习每一章时先了解该章的基础知识和框架的架构原理, 然后再进行集群环境搭建, Shell 命令操作等实操练习, 这样学习效果会更好. 当书中的理论和实操知识都掌握后, 可以进行举一反三, 自己开发一个大数据程序, 或者将所学知识运用到自己的编程项目上, 也可以到各种在线论坛与其他大数据爱好者进行讨论, 互帮互助.
本书可作为 Hadoop 新手入门的指导书籍或者大数据开发人员的参考用书, 要求读者具备一定的 Java 语言基础和 Linux 系统基础, 对于没有任何大数据基础的读者, 本书非常适合, 你完全可以对照书中的步骤成功搭建属于自己的大数据集群. 通过对本书的学习, 读者能够对大数据相关框架迅速理解并掌握, 可以熟练使用 Hadoop 集成环境进行大数据项目的开发.
由于时间原因, 书中难免出现一些错误或不准确的地方, 恳请读者批评指正.
著者
2019 年 5 月于青岛
II | 再也不踩坑的 Kubernetes 实战指南
目 录
第 1 章 VMware 中安装 CentOS 7
1.1 下载 CentOS 7 镜像文件
1.2 新建虚拟机
1.3 安装操作系统
第 2 章 CentOS 7 集群环境配置
2.1 系统环境配置
2.1.1 新建用户
2.1.2 修改用户权限
2.1.3 关闭防火墙
2.1.4 设置固定 IP
2.1.5 修改主机名
2.1.6 新建资源目录
2.2 安装 JDK
2.3 克隆虚拟机
2.4 配置主机 IP 映射
第 3 章 Hadoop
3.1 Hadoop 简介
3.1.1 Hadoop 生态系统架构
3.1.2 Hadoop 1.x 与 2.x 的架构对比
3.2 YARN 基本架构及组件
3.3 YARN 工作流程
3.4 配置集群各节点 SSH 无密钥登录
3.4.1 无密钥登录原理
3.4.2 无密钥登录操作步骤
3.5 搭建 Hadoop 2.x 分布式集群
第 4 章 HDFS
4.1 HDFS 简介
4.1.1 设计目标
4.1.2 总体架构
4.1.3 主要组件
4.1.4 文件读写
4.2 HDFS 命令行操作
4.3 HDFS Web 界面操作
4.4 HDFS Java API 操作
4.4.1 读取数据
4.4.2 创建目录
4.4.3 创建文件
4.4.4 删除文件
4.4.5 遍历文件和目录
4.4.6 获取文件或目录的元数据
4.4.7 上传本地文件
4.4.8 下载文件到本地
第 5 章 MapReduce
5.1 MapReduce 简介
5.1.1 设计思想
5.1.2 任务流程
5.1.3 工作原理
5.2 MapReduce 程序编写步骤
5.3 案例分析: 单词计数
5.4 案例分析: 数据去重
5.5 案例分析: 求平均分
5.6 案例分析: 二次排序
5.7 使用 MRUnit 测试 MapReduce 程序
第 6 章 ZooKeeper
6.1 ZooKeeper 简介
6.1.1 应用场景
6.1.2 架构原理
6.1.3 数据模型
6.1.4 节点类型
6.1.5 Watcher 机制
6.1.6 分布式锁
6.2 ZooKeeper 安装配置
6.2.1 单机模式
6.2.2 伪分布模式
6.2.3 集群模式
6.3 ZooKeeper 命令行操作
6.4 ZooKeeper Java API 操作
6.4.1 创建 Java 工程
6.4.2 创建节点
6.4.3 修改数据
6.4.4 获取数据
6.4.5 删除节点
6.5 案例分析: 监听服务器动态上下线
第 7 章 HDFS 与 YARN HA
7.1 HDFS HA 搭建
7.1.1 架构原理
7.1.2 搭建步骤
7.1.3 结合 ZooKeeper 进行 HDFS 自动故障转移
7.2 YARN HA 搭建
7.2.1 架构原理
7.2.2 搭建步骤
第 8 章 HBase
8.1 什么是 HBase
8.2 HBase 基本结构
8.3 HBase 数据模型
8.4 HBase 集群架构
8.5 HBase 安装配置
8.5.1 单机模式
8.5.2 伪分布模式
8.5.3 集群模式
8.6 HBase Shell 命令操作
8.7 HBase Java API 操作
8.7.1 创建 Java 工程
8.7.2 创建表
8.7.3 添加数据
8.7.4 查询数据
8.7.5 删除数据
8.8 HBase 过滤器
8.9 案例分析: HBase MapReduce 数据转移
8.9.1 HBase 不同表间数据转移
8.9.2 HDFS 数据转移至 HBase
8.10 案例分析: HBase 数据备份与恢复
第 9 章 Hive
9.1 什么是 Hive
9.1.1 数据单元
9.1.2 数据类型
9.2 Hive 架构体系
9.3 Hive 三种运行模式
9.4 Hive 安装配置
9.4.1 内嵌模式
9.4.2 本地模式
9.4.3 远程模式
9.5 Hive 常见属性配置
9.6 Beeline CLI 的使用
9.7 Hive 数据库操作
9.8 Hive 表操作
9.8.1 内部表
9.8.2 外部表
9.8.3 分区表
9.8.4 分桶表
9.9 Hive 查询
9.9.1 SELECT 子句查询
9.9.2 JOIN 连接查询
9.10 其他 Hive 命令
9.11 Hive 元数据表结构分析
9.12 Hive 自定义函数
9.13 Hive JDBC 操作
9.14 案例分析: Hive 与 HBase 整合
9.15 案例分析: Hive 分析搜狗用户搜索日志
第 10 章 Sqoop
10.1 什么是 Sqoop
10.1.1 Sqoop 基本架构
10.1.2 Sqoop 开发流程
10.2 使用 Sqoop253
10.3 数据导入工具
10.4 数据导出工具
10.5 Sqoop 安装与配置
10.6 案例分析: 将 MySQL 表数据导入到 HDFS 中
10.7 案例分析: 将 HDFS 中的数据导出到 MySQL 中
10.8 案例分析: 将 MySQL 表数据导入到 HBase 中
第 11 章 Kafka267
11.1 什么是 Kafka
11.2 Kafka 架构
11.3 主题与分区
11.4 分区副本
11.5 消费者组
11.6 数据存储机制
11.7 集群环境搭建
11.8 命令行操作
11.8.1 创建主题
11.8.2 查询主题
11.8.3 创建生产者
11.8.4 创建消费者
11.9 Java API 操作
11.9.1 创建 Java 工程
11.9.2 创建生产者
11.9.3 创建消费者
11.9.4 运行程序
11.10 案例分析: Kafka 生产者拦截器
第 12 章 Flume
12.1 什么是 Flume
12.2 架构原理
12.2.1 单节点架构
12.2.2 组件介绍
12.2.3 多节点架构
12.3 安装与简单使用
12.4 案例分析: 日志监控(一)
12.5 案例分析: 日志监控(二)
12.6 拦截器 306
12.6.1 内置拦截器
12.6.2 自定义拦截器
12.7 选择器
12.8 案例分析: 拦截器和选择器的应用
12.9 案例分析: Flume 与 Kafka 整合
第 13 章 Storm
13.1 什么是 Storm
13.2 Storm Topology
13.3 Storm 集群架构
13.4 Storm 流分组
13.5 Storm 集群环境搭建
13.6 案例分析: 单词计数
13.6.1 设计思路
13.6.2 代码编写
13.6.3 程序运行
13.7 案例分析: Storm 与 Kafka 整合
第 14 章 Elasticsearch
14.1 什么是 Elasticsearch
14.2 基本概念
14.2.1 索引, 类型和文档
14.2.2 分片和副本
14.2.3 路由
14.3 集群架构
14.4 集群环境搭建
14.5 Kibana 安装
14.6 REST API
14.6.1 集群状态 API
14.6.2 索引 API
14.6.3 文档 API
14.6.4 搜索 API
14.6.5 Query DSL
14.7 Head 插件安装
14.8 Java API 操作: 员工信息
第 15 章 Scala
15.1 什么是 Scala
15.2 安装 Scala
15.2.1 Windows 中安装 Scala
15.2.2 CentOS 7 中安装 Scala
15.3 Scala 基础
15.3.1 变量声明
15.3.2 数据类型
15.3.3 表达式
15.3.4 循环
15.3.5 方法与函数
15.4 集合
15.4.1 数组
15.4.2 List
15.4.3 Map 映射
15.4.4 元组
15.4.5 Set
15.5 类和对象
15.5.1 类的定义
15.5.2 单例对象
15.5.3 伴生对象
15.5.4 get 和 set 方法
15.5.5 构造器
15.6 抽象类和特质
15.6.1 抽象类
15.6.2 特质
15.7 使用 Eclipse 创建 Scala 项目
15.7.1 安装 Scala for Eclipse IDE
15.7.2 创建 Scala 项目
15.8 使用 IntelliJ IDEA 创建 Scala 项目
15.8.1 IDEA 中安装 Scala 插件
15.8.2 创建 Scala 项目
第 16 章 Spark
16.1 Spark 概述
16.2 Spark 主要组件
16.3 Spark 运行时架构
16.3.1 Spark Standalone 模式
16.3.2 Spark On YARN 模式
16.4 Spark 集群环境搭建
16.4.1 Spark Standalone 模式
16.4.2 Spark On YARN 模式
16.5 Spark HA 搭建
16.6 Spark 应用程序的提交
16.7 Spark Shell 的使用
16.8 Spark RDD
16.8.1 创建 RDD
16.8.2 RDD 算子
16.9 案例分析: 使用 Spark RDD 实现单词计数
16.10 Spark SQL
16.10.1 DataFrame 和 Dataset
16.10.2 Spark SQL 基本使用
16.11 案例分析: 使用 Spark SQL 实现单词计数
16.12 案例分析: Spark SQL 与 Hive 整合
16.13 案例分析: Spark SQL 读写 MySQL
来源: http://www.jianshu.com/p/1b2098703147