《从零开始学Hadoop大数据分析》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:温春水,毕洁馨编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:9787111619314
  • 页数:348 页
图书介绍:本书针对愿意加入大数据行业的初学者量身定做,以简练风趣的语言介绍了大数据程核心技术及相关案例。内容包括了数据的基本概念、Hadoop的安装与配置、HDFS、基于Hadoop3的HDFS高可用、Zookeeper、MapReduce、YARN、Sqoop、KafKa、Redis,每个知识点配有可运行的案例,同时结合企业实际案例,让读者能够掌握从大数据环境搭建到大数据核心技术,并且进一步熟悉企业案例的分析及开发过程,从而轻松进入到大数据领域。本书实用性强,非常适合Hadoop大数据分析入门读者阅读,也适合相关院校作为大数据分析与挖掘的教材使用。

第1篇 Hadoop基础知识 2

第1章 初识Hadoop 2

1.1 大数据初探 2

1.1.1 大数据技术 2

1.1.2 大数据技术框架 3

1.1.3 大数据的特点 3

1.1.4 大数据在各个行业中的应用 4

1.1.5 大数据计算模式 4

1.1.6 大数据与云计算、物联网的关系 4

1.2 Hadoop简介 5

1.2.1 Hadoop应用现状 6

1.2.2 Hadoop简介与意义 6

1.3 小结 6

第2章 Hadoop的安装与配置 7

2.1 虚拟机的创建 7

2.2 安装Linux系统 10

2.3 配置网络信息 11

2.4 克隆服务器 12

2.5 SSH免密码登录 13

2.6 安装和配置JDK 15

2.6.1 上传安装包 15

2.6.2 安装JDK 16

2.6.3 配置环境变量 16

2.7 Hadoop环境变量配置 16

2.7.1 解压缩Hadoop压缩包 17

2.7.2 配置Hadoop的bin和sbin文件夹到环境变量中 17

2.7.3 修改/etc/hadoop/hadoop-env.sh 17

2.8 Hadoop分布式安装 17

2.8.1 伪分布式安装 17

2.8.2 完全分布式安装 19

2.9 小结 21

第3章 Hadoop分布式文件系统 22

3.1 DFS介绍 22

3.1.1 什么是DFS 22

3.1.2 DFS的结构 22

3.2 HDFS介绍 23

3.2.1 HDFS的概念及体系结构 23

3.2.2 HDFS的设计 23

3.2.3 HDFS的优点和缺点 24

3.2.4 HDFS的执行原理 24

3.2.5 HDFS的核心概念 25

3.2.6 HDFS读文件流程 27

3.2.7 HDFS写文件流程 28

3.2.8 Block的副本放置策略 29

3.3 Hadoop中HDFS的常用命令 30

3.3.1 对文件的操作 30

3.3.2 管理与更新 31

3.4 HDFS的应用 31

3.4.1 基于Shell的操作 31

3.4.2 基于Java API的操作 33

3.4.3 创建文件夹 34

3.4.4 递归显示文件 34

3.4.5 文件上传 35

3.4.6 文件下载 35

3.5 小结 36

第4章 基于Hadoop 3的HDFS高可用 37

4.1 Hadoop 3.x的发展 37

4.1.1 Hadoop 3新特性 37

4.1.2 Hadoop 3 HDFS集群架构 38

4.2 Hadoop 3 HDFS完全分布式搭建 39

4.2.1 安装JDK 40

4.2.2 配置JDK环境变量 40

4.2.3 配置免密码登录 40

4.2.4 配置IP和主机名字映射关系 41

4.2.5 SSH免密码登录设置 41

4.2.6 配置Hadoop 3.1.0 42

4.3 什么是HDFS高可用 47

4.3.1 HDFS高可用实现原理 47

4.3.2 HDFS高可用实现 48

4.4 搭建HDFS高可用 50

4.4.1 配置ZooKeeper 50

4.4.2 配置Hadoop配置文件 52

4.4.3 将配置文件复制到其他节点上 54

4.4.4 启动JN节点 54

4.4.5 格式化 55

4.4.6 复制元数据到node2节点上 55

4.4.7 格式化ZKFC 55

4.4.8 启动集群 56

4.4.9 通过浏览器查看集群状态 56

4.4.10 高可用测试 57

4.5 小结 58

第2篇 Hadoop核心技术 60

第5章 Hadoop的分布式协调服务——ZooKeeper 60

5.1 ZooKeeper的核心概念 60

5.1.1 Session会话机制 60

5.1.2 数据节点、版本与Watcher的关联 61

5.1.3 ACL策略 61

5.2 ZooKeeper的安装与运行 61

5.3 ZooKeeper服务器端的常用命令 63

5.4 客户端连接ZooKeeper的相关操作 64

5.4.1 查看ZooKeeper常用命令 64

5.4.2 connect命令与ls命令 65

5.4.3 create命令——创建节点 65

5.4.4 get命令——获取数据与信息 66

5.4.5 set命令——修改节点内容 66

5.4.6 delete命令——删除节点 67

5.5 使用Java API访问ZooKeeper 67

5.5.1 环境准备与创建会话实例 68

5.5.2 节点创建实例 69

5.5.3 Java API访问ZooKeeper实例 70

5.6 小结 73

第6章 分布式离线计算框架——MapReduce 74

6.1 MapReduce概述 74

6.1.1 MapReduce的特点 74

6.1.2 MapReduce的应用场景 75

6.2 MapReduce执行过程 76

6.2.1 单词统计实例 76

6.2.2 MapReduce执行过程 77

6.2.3 MapReduce的文件切片Split 77

6.2.4 Map过程和Reduce过程 78

6.2.5 Shuffle过程 78

6.3 MapReduce实例 79

6.3.1 WordCount本地测试实例 79

6.3.2 ETL本地测试实例 84

6.4 温度排序实例 86

6.4.1 时间和温度的封装类MyKey.Java 87

6.4.2 Map任务MyMapper.java 88

6.4.3 数据分组类MyGroup.Java 89

6.4.4 温度排序类MySort.java 89

6.4.5 数据分区MyPartitioner.java 90

6.4.6 Reducer任务MyReducer.java 90

6.4.7 主函数RunJob.java 91

6.5 小结 94

第7章 Hadoop的集群资源管理系统——YARN 95

7.1 为什么要使用YARN 95

7.2 YARN的基本架构 96

7.2.1 ResourceManager进程 96

7.2.2 ApplicationMaster和NodeManager 97

7.3 YARN工作流程 97

7.4 YARN搭建 98

7.5 小结 100

第8章 Hadoop的数据仓库框架——Hive 101

8.1 Hive的理论基础 101

8.1.1 什么是Hive 101

8.1.2 Hive和数据库的异同 102

8.1.3 Hive设计的目的与应用 104

8.1.4 Hive的运行架构 104

8.1.5 Hive的执行流程 105

8.1.6 Hive服务 106

8.1.7 元数据存储Metastore 106

8.1.8 Embedded模式 107

8.1.9 Local模式 108

8.1.10 Remote模式 109

8.2 Hive的配置与安装 109

8.2.1 安装MySQL 110

8.2.2 配置Hive 112

8.3 Hive表的操作 113

8.3.1 创建Hive表 114

8.3.2 导入数据 114

8.4 表的分区与分桶 115

8.4.1 表的分区 115

8.4.2 表的分桶 117

8.5 内部表与外部表 118

8.5.1 内部表 119

8.5.2 外部表 119

8.6 内置函数与自定义函数 121

8.6.1 内置函数实例 121

8.6.2 自定义UDAF函数实例 123

8.7 通过Java访问Hive 124

8.8 Hive优化 125

8.8.1 MapReduce优化 126

8.8.2 配置优化 126

8.9 小结 127

第9章 大数据快速读写——HBase 128

9.1 关于NoSQL 128

9.1.1 什么是NoSQL 128

9.1.2 NoSQL数据库的分类 129

9.1.3 NoSQL数据库的应用 129

9.1.4 关系型数据库与非关系型数据库的区别 130

9.2 HBase基础 130

9.2.1 HBase简介 130

9.2.2 HBase数据模型 131

9.2.3 HBase体系架构及组件 132

9.2.4 HBase执行原理 134

9.3 HBase安装 135

9.4 HBase的Shell操作 138

9.5 Java API访问HBase实例 139

9.5.1 创建表 139

9.5.2 插入数据 140

9.5.3 查询数据 141

9.6 小结 142

第10章 海量日志采集工具——Flume 143

10.1 什么是Flume 143

10.2 Flume的特点 143

10.3 Flume架构 144

10.4 Flume的主要组件 144

10.4.1 Event、 Client与Agent——数据传输 145

10.4.2 Source—Event接收 145

10.4.3 Channel—Event传输 146

10.4.4 Sink—Event发送 147

10.4.5 其他组件 148

10.5 Flume安装 148

10.6 Flume应用典型实例 149

10.6.1 本地数据读取(confl) 149

10.6.2 收集至HDFS 150

10.6.3 基于日期分区的数据收集 152

10.7 通过exec命令实现数据收集 153

10.7.1 安装工具 153

10.7.2 编辑配置文件conf4 155

10.7.3 运行Flume 156

10.7.4 查看生成的文件 156

10.7.5 查看HDFS中的数据 157

10.8 小结 158

第11章 Hadoop和关系型数据库间的数据传输工具——Sqoop 159

11.1 什么是Sqoop 159

11.2 Sqoop工作机制 159

11.3 Sqoop的安装与配置 161

11.3.1 下载Sqoop 161

11.3.2 Sqoop配置 162

11.4 Sqoop数据导入实例 163

11.4.1 向HDFS中导入数据 165

11.4.2 将数据导入Hive 167

11.4.3 向HDFS中导入查询结果 170

11.5 Sqoop数据导出实例 172

11.6 小结 173

第12章 分布式消息队列——Kafka 174

12.1 什么是Kafka 174

12.2 Kafka的架构和主要组件 174

12.2.1 消息记录的类别名——Topic 175

12.2.2 Producer与Consumer——数据的生产和消费 176

12.2.3 其他组件——Broker、 Partition、 Offset、 Segment 177

12.3 Kafka的下载与集群安装 177

12.3.1 安装包的下载与解压 177

12.3.2 Kafka的安装配置 178

12.4 Kafka应用实例 181

12.4.1 Producer实例 181

12.4.2 Consumer实例 182

12.5 小结 184

第13章 开源的内存数据库——Redis 185

13.1 Redis简介 185

13.1.1 什么是Redis 185

13.1.2 Redis的特点 186

13.2 Redis安装与配置 186

13.3 客户端登录 187

13.3.1 密码为空登录 187

13.3.2 设置密码登录 188

13.4 Redis的数据类型 188

13.4.1 Stnng类型 188

13.4.2 List类型 190

13.4.3 Hash类型 191

13.4.4 Set类型 194

13.5 小结 197

第14章 Ambari和CDH 198

14.1 Ambari的安装与集群管理 198

14.1.1 认识HDP与Ambari 198

14.1.2 Ambari的搭建 199

14.1.3 配置网卡与修改本机名 199

14.1.4 定义DNS服务器与修改hosts主机映射关系 200

14.1.5 关闭防火墙并安装JDK 200

14.1.6 升级OpenSSL安全套接层协议版本 201

14.1.7 关闭SELinux的强制访问控制 201

14.1.8 SSH免密码登录 202

14.1.9 同步NTP 202

14.1.10 关闭Linux的THP服务 204

14.1.11 配置UMASK与HTTP服务 204

14.1.12 安装本地源制作相关工具与Createrepo 205

14.1.13 禁止离线更新与制作本地源 205

14.1.14 安装Ambari-server与MySQL 208

14.1.15 安装Ambari 210

14.1.16 安装Agent与Ambari登录安装 211

14.1.17 安装部署问题解决方案 214

14.2 CDH的安装与集群管理 216

14.2.1 什么是CDH和Cloudera Manager介绍 216

14.2.2 Cloudera Manager与Ambari对比的优势 216

14.2.3 CDH安装和网卡配置 217

14.2.4 修改本机名与定义DNS服务器 217

14.2.5 修改hosts主机映射关系 218

14.2.6 关闭防火墙 218

14.2.7 安装JDK 219

14.2.8 升级OpenSSL安全套接层协议版本 219

14.2.9 禁用SELinux的强制访问功能 220

14.2.10 SSH免密码登录 220

14.2.11 同步NTP安装 220

14.2.12 安装MySQL 222

14.2.13 安装Cloudera Manager 222

14.2.14 添加MySQL驱动包和修改Agent配置 223

14.2.15 初始化CM5数据库和创建cloudera-scm用户 223

14.2.16 准备Parcels 223

14.2.17 CDH的安装配置 224

14.3 小结 227

第15章 快速且通用的集群计算系统——Spark 228

15.1 Spark基础知识 228

15.1.1 Spark的特点 228

15.1.2 Spark和Hadoop的比较 229

15.2 弹性分布式数据集RDD 230

15.2.1 RDD的概念 230

15.2.2 RDD的创建方式 230

15.2.3 RDD的操作 230

15.2.4 RDD的执行过程 231

15.3 Spark作业运行机制 232

15.4 运行在YARN上的Spark 233

15.4.1 在YARN上运行Spark 233

15.4.2 Spark在YARN上的两种部署模式 233

15.5 Spark集群安装 234

15.5.1 Spark安装包的下载 234

15.5.2 Spark安装环境 236

15.5.3 Scala安装和配置 236

15.5.4 Spark分布式集群配置 238

15.6 Spark实例详解 241

15.6.1 网站用户浏览次数最多的URL统计 241

15.6.2 用户地域定位实例 243

15.7 小结 246

第3篇 Hadoop项目案例实战 248

第16章 基于电商产品的大数据业务分析系统实战 248

16.1 项目背景、实现目标和项目需求 248

16.2 功能与流程 249

16.2.1 用户信息 250

16.2.2 商品信息 251

16.2.3 购买记录 251

16.3 数据收集 252

16.3.1 Flume的配置文件 252

16.3.2 启动Flume 253

16.3.3 查看采集后的文件 253

16.3.4 通过后台命令查看文件 254

16.3.5 查看文件内容 255

16.3.6 上传user.list文件 256

16.3.7 上传brand.list目录 256

16.4 数据预处理 257

16.5 数据分析——创建外部表 261

16.6 建立模型 264

16.6.1 各年龄段用户消费总额 264

16.6.2 查询各品牌销售总额 265

16.6.3 查询各省份消费总额 266

16.6.4 使用Sqoop将数据导入MySQL数据库 266

16.7 数据可视化 268

16.8 小结 272

第17章 用户画像分析实战 273

17.1 项目背景 273

17.2 项目目标与项目开发过程 274

17.2.1 数据采集 274

17.2.2 数据预处理 275

17.2.3 模型构建 275

17.2.4 数据分析 276

17.3 核心代码解读 277

17.3.1 项目流程介绍 277

17.3.2 核心类的解读 278

17.3.3 core-site.xml配置文件 279

17.3.4 hdfs-site.xml配置文件 279

17.3.5 UserProfile.properties配置文件 280

17.3.6 LoadConfig.java:读取配置信息 280

17.3.7 ReadFile.java:读取文件 281

17.3.8 ReadFromHdfs.java:提取信息 281

17.3.9 UserProfile.java:创建用户画像 282

17.3.10 TextArrayWritable.java:字符串处理工具类 285

17.3.11 MapReduce任务1:UserProfileMapReduce.java 285

17.3.12 MapReduce任务2:UserProfileMapReduce2.java 289

17.3.13 UserProfilePutInHbaseMap.java:提取用户画像 291

17.3.14 UserProfilePutInHbaseReduce:存储用户画像 292

17.4 项目部署 293

17.5 小结 294

第18章 基于个性化的视频推荐系统实战 295

18.1 项目背景 295

18.2 项目目标与推荐系统简介 295

18.2.1 推荐系统的分类 295

18.2.2 推荐模型的构建流程 296

18.2.3 推荐系统核心算法 297

18.2.4 如何基于Mahout框架完成商品推荐 300

18.2.5 基于Mahout框架的商品推荐实例 300

18.3 推荐系统项目架构 302

18.4 推荐系统模型构建 303

18.5 核心代码 304

18.5.1 公共部分 305

18.5.2 离线部分 307

18.5.3 在线部分 311

18.6 小结 314

第19章 电信离网用户挽留实战 315

19.1 商业理解 315

19.2 数据理解 316

19.2.1 收集数据 316

19.2.2 了解数据 317

19.2.3 保证数据质量 318

19.3 数据整理 318

19.3.1 数据整合 318

19.3.2 数据过滤 319

19.4 数据清洗 319

19.4.1 噪声识别 320

19.4.2 离群值和极端值的定义 321

19.4.3 离群值处理方法 321

19.4.4 数据空值处理示例 323

19.5 数据转换 324

19.5.1 变量转换 324

19.5.2 压缩分类水平数 324

19.5.3 连续数据离散化 325

19.5.4 变换哑变量 326

19.5.5 数据标准化 326

19.5.6 数据压缩 326

19.6 建模 327

19.6.1 决策树算法概述 327

19.6.2 决策树的训练步骤 327

19.6.3 训练决策树 328

19.6.4 C4.5算法 329

19.6.5 决策树剪枝 332

19.7 评估 335

19.7.1 混淆矩阵 335

19.7.2 ROC曲线 336

19.8 部署 338

19.9 用户离网案例代码详解 339

19.9.1 数据准备 339

19.9.2 相关性分析 341

19.9.3 最终建模 342

19.9.4 模型评估 343

19.10 小结 346