大数据开发者权威教程:NoSQL Hadoop组件及大数据实施
出版时间: 2018
内容简介
“大数据”近年来成为IT领域的热点话题,人们每天都会通过互联网、移动设备等产生大量数据。如何管理大数据、掌握大数据的核心技术、理解大数据相关的生态系统等,是作为大数据开发者必须学习和熟练掌握的知识。本系列书以“大数据开发者”应掌握的技术为主线,共分两卷,以7个模块分别介绍如何管理大数据生态系统、如何存储和处理数据、如何利用Hadoop工具、如何利用NoSQL与Hadoop协同工作,以及如何利用Hadoop商业发行版和管理工具。本系列书涵盖了大数据开发工作的核心内容,全面且详尽地涵盖了大数据开发的各个领域。本书为第2卷,共3个模块,分别介绍Hadoop工具(如ZooKeeper、Sqoop、Flume、YARN和Storm等),利用NoSQL和Hadoop完成实时、安全和云的相关工作,以及Hadoop商业发行版和管理工具(如Cloudera、Hortonworks、Greenplum Pivotal HD等),最后介绍几个实用软件的功能、指南和安装步骤。本书适用于想成为大数据开发人员以及所有对大数据开发感兴趣的技术人员和决策者阅读。
目 录
模块1 额外的Hadoop工具:ZooKeeper、Sqoop、Flume、YARN和Storm
第1讲 用ZooKeeper进行分布式处理协调 3
1.1 ZooKeeper简介 4
1.1.1 ZooKeeper的好处 4
1.1.2 ZooKeeper术语 6
1.1.3 ZooKeeper命令行界面(CLI) 7
1.2 安装和运行ZooKeeper 9
1.2.1 支持的平台 9
1.2.2 所需的软件 9
1.2.3 单服务器的安装 9
1.3 使用ZooKeeper 10
1.4 ZooKeeper应用程序 12
1.4.1 FS爬取 13
1.4.2 Katta 14
1.4.3 Yahoo!消息代理(YMB) 14
1.5 使用ZooKeeper构建应用程序 15
1.5.1 Exec.java 15
1.5.2 处理事件 17
1.5.3 监控数据 19
1.5.4 实现屏障和生产者-消费者队列 22
练习 30
备忘单 33
第2讲 利用Sqoop有效地传输批量数据 34
2.1 Sqoop简介 35
2.1.1 Sqoop中的工作流 36
2.1.2 Sqoop的特性 36
2.2 使用Sqoop 1 37
2.3 用Sqoop导入数据 41
2.3.1 导入完整的表 41
2.3.2 用HBase Sqoop导入带有复合键的表 42
2.3.3 指定目标目录 43
2.3.4 导入选择的行 43
2.3.5 密码保护 44
2.3.6 用不同的文件格式导入数据 44
2.3.7 导入数据压缩 45
2.4 控制并行 45
2.5 编码NULL值 47
2.6 将数据导入Hive表 47
2.7 将数据导入HBase 47
2.7.1 使用自由形式查询 48
2.7.2 重命名Sqoop作业 48
2.8 导出数据 49
2.8.1 批量导出 50
2.8.2 原子导出 50
2.9 将数据导出至列的子集 50
2.10 Sqoop中的驱动程序和连接器 51
2.10.1 驱动程序 51
2.10.2 连接器 52
2.10.3 连接到数据库 52
2.11 Sqoop架构概览 54
2.12 Sqoop 2 55
2.12.1 Sqoop 2的优势 56
2.12.2 易于扩展 56
2.12.3 安全 57
练习 58
备忘单 60
第3讲 Flume 62
3.1 Flume简介 63
3.1.1 Flume架构 64
3.1.2 流可靠性 66
3.2 Flume配置文件 66
3.2.1 流定义 67
3.2.2 配置单个组件 67
3.2.3 在代理中添加多个流 68
3.2.4 配置多代理流 69
3.2.5 配置流扇出 70
3.3 设置Flume 71
3.3.1 安装Flume 71
3.3.2 配置Flume代理 72
3.3.3 数据消费 74
3.4 构建Flume 77
3.4.1 获得源点 77
3.4.2 编译/测试Flume 77
3.4.3 开发自定义组件 77
练习 90
备忘单 92
第4讲 超越MapReduce—YARN 94
4.1 YARN简介 95
4.2 为什么用YARN 96
4.2.1 提高可扩展性 96
4.2.2 效率 97
4.2.3 集群共享 97
4.3 YARN生态系统 98
4.3.1 YARN架构 99
4.3.2 资源 100
4.3.3 资源管理器 101
4.3.4 ApplicationMaster 103
4.3.5 YARN的局限性 106
4.4 YARN API例子 107
4.4.1 YARN应用程序剖析 107
4.4.2 客户端 108
4.4.3 把它们整合到一起 115
4.5 Mesos和YARN的比较 116
4.5.1 Mesos简介 116
4.5.2 Mesos和Hadoop 118
练习 120
备忘单 122
第5讲 Storm on YARN 124
5.1 Storm和Hadoop 125
5.2 Storm简介 126
5.2.1 Storm架构 126
5.2.2 Storm应用剖析 129
5.3 Storm API 132
5.3.1 spout 132
5.3.2 bolt 134
5.4 Storm on YARN 134
5.4.1 Storm on YARN架构 135
5.4.2 Storm on YARN的局限性 136
5.5 安装Storm on YARN 136
5.5.1 先决条件 136
5.5.2 安装步骤 137
5.5.3 排错 138
5.5.4 管理YARN on Storm 138
5.6 Storm on YARN的例子 139
5.6.1 传感器数据spout 139
5.6.2 仪表盘bolt 140
5.6.3 HDFS日志记录器bolt 142
5.6.4 主程序 144
5.6.5 运行示例 146
练习 148
备忘单 151
模块2 利用NoSQL和Hadoop:实时、安全和云
第1讲 Hello NoSQL 155
1.1 看两个简单的例子 156
1.1.1 持久化偏好数据的一个简单集合——MongoDB 156
1.1.2 存储汽车品牌和型号数据——Apache Cassandra 162
1.2 利用语言绑定进行工作 171
1.2.1 MongoDB的驱动程序 171
1.2.2 初识Thrift 174
1.3 存储和访问数据 177
1.4 在MongoDB中存储和访问数据 178
1.5 在HBase中存储和访问数据 185
1.6 在Apache Cassandra中存储和访问数据 189
1.7 NoSQL数据存储的语言绑定 191
1.7.1 用Thrift进行诊断 191
1.7.2 Java的语言绑定 191
1.7.3 PHP的语言绑定 194
练习 195
备忘单 198
第2讲 使用NoSQL 199
2.1 创建记录 200
2.2 访问数据 213
2.2.1 访问来自MongoDB的文档 213
2.2.2 访问来自HBase的数据 214
2.2.3 查询Redis 215
2.3 更新和删除数据 216
2.4 MongoDB查询语言的能力 217
2.4.1 加载MovieLens数据 219
2.4.2 获取评级数据 221
2.4.3 MongoDB中的MapReduce 224
2.5 访问来自HBase这样的面向列的数据库的数据 228
练习 230
备忘单 234
第3讲 Hadoop安全 236
3.1 Hadoop安全挑战 238
3.2 认证 239
3.2.1 Kerberos认证 239
3.2.2 Kerberos RPC 244
3.2.3 基于Web的控制台的Kerberos 245
3.3 委托安全凭证 248
3.4 授权 253
3.4.1 HDFS文件权限 253
3.4.2 服务级别授权 257
3.4.3 作业授权 260
练习 261
备忘单 263
第4讲 在AWS上运行Hadoop应用程序 265
4.1 开始了解AWS 266
4.2 在AWS上运行Hadoop的选项 267
4.2.1 使用EC2实例的自定义安装 267
4.2.2 弹性MapReduce 268
4.3 了解EMR-Hadoop的关系 269
4.3.1 EMR架构 270
4.3.2 使用S3存储 271
4.3.3 最大化地利用EMR 272
4.3.4 使用CloudWatch和其他AWS组件 274
4.3.5 访问和使用EMR 274
4.4 使用AWS S3 280
4.4.1 了解桶的用法 280
4.4.2 利用控制台的内容浏览 282
4.4.3 编程访问S3中的文件 283
4.4.4 使用MapReduce上传多个文件至S3 294
4.5 自动化EMR作业流的创建和作业执行 296
4.6 组织协调EMR中作业的执行 301
4.6.1 使用EMR集群上的Oozie 301
4.6.2 AWS简单工作流 303
4.6.3 AWS数据管道 304
练习 306
备忘单 309
第5讲 实时Hadoop 311
5.1 实时Hadoop应用 312
5.2 使用HBase实现实时应用 313
5.2.1 将HBase用作照片管理系统 315
5.2.2 将HBase用作Lucene的后端 322
5.3 使用专门的实时Hadoop查询系统 342
5.3.1 Apache Drill 344
5.3.2 Impala 345
5.3.3 将实时查询系统与MapReduce比较 347
5.4 使用基于Hadoop的事件处理系统 347
5.4.1 HFlame 348
5.4.2 Storm 350
5.4.3 将事件处理与MapReduce作比较 352
练习 353
备忘单 356
模块3 Hadoop商业发行版和管理工具
第1讲 大数据简介 359
1.1 Cloudera基础 360
1.1.1 包含Apache Hadoop的Cloudera发行版 360
1.1.2 Cloudera管理器 361
1.1.3 Cloudera标准版 362
1.1.4 Cloudera企业版 363
1.2 Cloudera管理器简介 365
1.3 Cloudera管理器的管理控制台 367
1.3.1 启动并登录管理控制台 370
1.3.2 主页 370
1.4 添加和管理服务 371
1.4.1 添加新服务 371
1.4.2 启动服务 372
1.4.3 停止服务 372
1.4.4 重启服务 373
1.5 使用Cloudera管理器的业务案例 373
1.6 Cloudera管理器的安装要求 374
练习 375
备忘单 377
第2讲 Cloudera上的Hive和Cloudera管理 379
2.1 Apache Hive简介 380
2.1.1 Hive特性 380
2.1.2 HiveQL 380
2.2 Hive服务 381
2.2.1 Hive元数据服务器 382
2.2.2 Hive网关 382
2.2.3 升级Cloudera管理器 382
2.3 为Hive元存储配置模式 383
2.3.1 嵌入模式 383
2.3.2 本地模式 384
2.3.3 远程模式 385
2.4 配置Hive元存储 386
2.4.1 Red Hat操作系统 386
2.4.2 SLES操作系统 388
2.4.3 Debian/Ubuntu操作系统 388
2.5 为Hive设置Cloudera Manager 4.5 389
2.6 Hive复制 391
练习 394
备忘单 396
第3讲 Hortonworks和Greenplum Pivotal HD 397
3.1 Hortonworks数据平台 398
3.1.1 核心服务 400
3.1.2 数据服务 400
3.1.3 操作服务 401
3.2 系统需求和环境 402
3.2.1 系统需求 402
3.2.2 构建一个受支持的环境 404
3.3 安装HDP 405
3.4 使用Talend Open Studio 409
3.4.1 安装Talend Open Studio 410
3.4.2 将数据导入Talend Open Studio 411
3.4.3 执行数据分析 413
3.5 Greenplum Pivotal HD 417
练习 420
备忘单 422
第4讲 IBM InfoSphere BigInsights和MapR 424
4.1 InfoSphere BigInsights简介 425
4.1.1 Apache Hadoop发行版的InfoSphere BigInsights组件 426
4.1.2 额外的Hadoop技术 427
4.1.3 文本分析 428
4.1.4 IBM Big SQL服务器 428
4.1.5 InfoSphere BigInsights控制台 428
4.1.6 InfoSphere BigInsights的Eclipse工具 429
4.2 安装准备 430
4.2.1 复核系统需求 431
4.2.2 选择一个用户 431
4.2.3 配置浏览器 432
4.2.4 下载InfoSphere BigInsights 437
4.2.5 完成常见先决条件的任务 437
4.3 安装InfoSphere BigInsights 440
4.4 MapR简介 442
练习 445
备忘单 447
第5讲 应聘准备 449
5.1 大数据开发者需要的关键技术工具和框架 451
5.2 大数据开发者的工作角色和职责 452
5.3 大数据开发者职业机会领域 453