新書推薦:
《
易经今解:释疑·解惑·见微
》
售價:HK$
88.5
《
东欧史(全二册)-“中间地带”的困境
》
售價:HK$
221.8
《
虚拟资本:金融怎样挪用我们的未来
》
售價:HK$
77.3
《
刻意练习不生气
》
售價:HK$
39.2
《
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
》
售價:HK$
109.8
《
安全感是内心长出的盔甲
》
售價:HK$
67.0
《
快人一步:系统性能提高之道
》
售價:HK$
110.9
《
算法图解(第2版)
》
售價:HK$
78.2
|
編輯推薦: |
本书深入浅出地介绍了Hadoop及其周边框架,涵盖了当前整个Hadoop生态系统主流的大数据技术。内容包括:HDFS、MapReduce、YARN、ZooKeeper、HBase、Hive、Sqoop和数据实时处理系统Flume、Kafka、Storm、Spark以及分布式搜索系统Elasticsearch等的基础知识、架构原理、集群环境搭建,同时介绍了常用Shell命令、API操作、源码剖析,并通过实际案例加深读者对各个框架的理解和应用。
通过阅读本书,读者能够对大数据相关框架迅速理解并掌握,即使没有任何大数据基础也可以对照书中的步骤成功地搭建属于自己的大数据集群,使用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操作、源码剖析,并通过实际案例加深对各个框架的理解与应用。通过阅读本书,读者即使没有任何大数据基础,也可以对照书中的步骤成功搭建属于自己的大数据集群并独立完成项目开发。 本书可作为Hadoop新手入门的指导书,也可作为大数据开发人员的随身手册以及大数据从业者的参考用书。
|
關於作者: |
张伟洋,毕业于中国地质大学计算机科学与技术专业,先后就职于知名互联网公司百度、慧聪网,任Java高级软件工程师,互联网旅游公司任软件研发事业部技术经理。目前供职于青岛英谷教育科技股份有限公司,任大数据项目讲师,为数十所高校先后举行多次大数据专题讲座,对Hadoop及周边框架ZooKeeper、Hive、HBase、Storm、Spark等有深入的研究。高等院校云计算与大数据专业课改教材《云计算与大数据概论》《大数据开发与应用》的主要编写者,百度文库、百度阅读签约作者。
|
目錄:
|
目录
第1章 VMware中安装CentOS 7 1
1.1 下载CENTOS 7镜像文件 1
1.2 新建虚拟机 5
1.3 安装操作系统 9
第2章 CentOS 7集群环境配置 16
2.1 系统环境配置 16
2.1.1 新建用户 17
2.1.2 修改用户权限 17
2.1.3 关闭防火墙 17
2.1.4 设置固定IP 18
2.1.5 修改主机名 22
2.1.6 新建资源目录 23
2.2 安装JDK 23
2.3 克隆虚拟机 25
2.4 配置主机IP映射 29
第3章 Hadoop 31
3.1 HADOOP简介 31
3.1.1 Hadoop生态系统架构 32
3.1.2 Hadoop 1.x与2.x的架构对比 33
3.2 YARN基本架构及组件 34
3.3 YARN工作流程 37
3.4 配置集群各节点SSH无密钥登录 38
3.4.1 无密钥登录原理 38
3.4.2 无密钥登录操作步骤 39
3.5 搭建HADOOP 2.X分布式集群 41
第4章 HDFS 48
4.1 HDFS简介 48
4.1.1 设计目标 49
4.1.2 总体架构 49
4.1.3 主要组件 50
4.1.4 文件读写 53
4.2 HDFS命令行操作 54
4.3 HDFS WEB界面操作 57
4.4 HDFS JAVA API操作 59
4.4.1 读取数据 59
4.4.2 创建目录 61
4.4.3 创建文件 62
4.4.4 删除文件 63
4.4.5 遍历文件和目录 64
4.4.6 获取文件或目录的元数据 65
4.4.7 上传本地文件 66
4.4.8 下载文件到本地 66
第5章 MapReduce 68
5.1 MAPREDUCE简介 68
5.1.1 设计思想 69
5.1.2 任务流程 70
5.1.3 工作原理 71
5.2 MAPREDUCE程序编写步骤 74
5.3 案例分析:单词计数 76
5.4 案例分析:数据去重 82
5.5 案例分析:求平均分 86
5.6 案例分析:二次排序 89
5.7 使用MRUNIT测试MAPREDUCE程序 97
第6章 ZooKeeper 100
6.1 ZOOKEEPER简介 100
6.1.1 应用场景 101
6.1.2 架构原理 101
6.1.3 数据模型 102
6.1.4 节点类型 103
6.1.5 Watcher机制 103
6.1.6 分布式锁 105
6.2 ZOOKEEPER安装配置 106
6.2.1 单机模式 106
6.2.2 伪分布模式 108
6.2.3 集群模式 109
6.3 ZOOKEEPER命令行操作 112
6.4 ZOOKEEPER JAVA API操作 114
6.4.1 创建Java工程 114
6.4.2 创建节点 115
6.4.3 修改数据 118
6.4.4 获取数据 118
6.4.5 删除节点 123
6.5 案例分析:监听服务器动态上下线 124
第7章 HDFS与YARN HA 129
7.1 HDFS HA搭建 129
7.1.1 架构原理 130
7.1.2 搭建步骤 131
7.1.3 结合ZooKeeper进行HDFS自动故障转移 137
7.2 YARN HA搭建 142
7.2.1 架构原理 142
7.2.2 搭建步骤 142
第8章 HBase 147
8.1 什么是HBASE 147
8.2 HBASE基本结构 148
8.3 HBASE数据模型 149
8.4 HBASE集群架构 151
8.5 HBASE安装配置 153
8.5.1 单机模式 153
8.5.2 伪分布模式 155
8.5.3 集群模式 156
8.6 HBASE SHELL命令操作 160
8.7 HBASE JAVA API操作 164
8.7.1 创建Java工程 164
8.7.2 创建表 164
8.7.3 添加数据 166
8.7.4 查询数据 168
8.7.5 删除数据 169
8.8 HBASE过滤器 170
8.9 案例分析:HBASE MAPREDUCE数据转移 174
8.9.1 HBase不同表间数据转移 174
8.9.2 HDFS数据转移至HBase 180
8.10 案例分析:HBASE数据备份与恢复 183
第9章 Hive 185
9.1 什么是HIVE 185
9.1.1 数据单元 186
9.1.2 数据类型 187
9.2 HIVE架构体系 189
9.3 HIVE三种运行模式 190
9.4 HIVE安装配置 191
9.4.1 内嵌模式 192
9.4.2 本地模式 195
9.4.3 远程模式 198
9.5 HIVE常见属性配置 200
9.6 BEELINE CLI的使用 201
9.7 HIVE数据库操作 205
9.8 HIVE表操作 208
9.8.1 内部表 209
9.8.2 外部表 213
9.8.3 分区表 215
9.8.4 分桶表 219
9.9 HIVE查询 223
9.9.1 SELECT子句查询 224
9.9.2 JOIN连接查询 230
9.10 其他HIVE命令 233
9.11 HIVE元数据表结构分析 235
9.12 HIVE自定义函数 237
9.13 HIVE JDBC操作 239
9.14 案例分析:HIVE与HBASE整合 242
9.15 案例分析:HIVE分析搜狗用户搜索日志 246
第10章 Sqoop 251
10.1 什么是SQOOP 251
10.1.1 Sqoop基本架构 252
10.1.2 Sqoop开发流程 252
10.2 使用SQOOP 253
10.3 数据导入工具 254
10.4 数据导出工具 259
10.5 SQOOP安装与配置 261
10.6 案例分析:将MYSQL表数据导入到HDFS中 262
10.7 案例分析:将HDFS中的数据导出到MYSQL中 263
10.8 案例分析:将MYSQL表数据导入到HBASE中 264
第11章 Kafka 267
11.1 什么是KAFKA 267
11.2 KAFKA架构 268
11.3 主题与分区 269
11.4 分区副本 271
11.5 消费者组 273
11.6 数据存储机制 274
11.7 集群环境搭建 276
11.8 命令行操作 278
11.8.1 创建主题 278
11.8.2 查询主题 279
11.8.3 创建生产者 280
11.8.4 创建消费者 280
11.9 JAVA API操作 281
11.9.1 创建Java工程 281
11.9.2 创建生产者 281
11.9.3 创建消费者 283
11.9.4 运行程序 285
11.10 案例分析:KAFKA生产者拦截器 287
第12章 Flume 294
12.1 什么是FLUME 294
12.2 架构原理 295
12.2.1 单节点架构 295
12.2.2 组件介绍 296
12.2.3 多节点架构 297
12.3 安装与简单使用 299
12.4 案例分析:日志监控(一) 302
12.5 案例分析:日志监控(二) 304
12.6 拦截器 306
12.6.1 内置拦截器 307
12.6.2 自定义拦截器 310
12.7 选择器 313
12.8 案例分析:拦截器和选择器的应用 315
12.9 案例分析:FLUME与KAFKA整合 319
第13章 Storm 322
13.1 什么是STORM 322
13.2 STORM TOPOLOGY 323
13.3 STORM集群架构 324
13.4 STORM流分组 326
13.5 STORM集群环境搭建 329
13.6 案例分析:单词计数 332
13.6.1 设计思路 332
13.6.2 代码编写 333
13.6.3 程序运行 339
13.7 案例分析:STORM与KAFKA整合 341
第14章 Elasticsearch 347
14.1 什么是ELASTICSEARCH 347
14.2 基本概念 348
14.2.1 索引、类型和文档 348
14.2.2 分片和副本 348
14.2.3 路由 349
14.3 集群架构 350
14.4 集群环境搭建 352
14.5 KIBANA安装 355
14.6 REST API 357
14.6.1 集群状态API 357
14.6.2 索引API 358
14.6.3 文档API 360
14.6.4 搜索API 363
14.6.5 Query DSL 365
14.7 HEAD插件安装 371
14.8 JAVA API操作:员工信息 375
第15章 Scala 379
15.1 什么是SCALA 379
15.2 安装SCALA 380
15.2.1 Windows中安装Scala 380
15.2.2 CentOS 7中安装Scala 381
15.3 SCALA基础 382
15.3.1 变量声明 382
15.3.2 数据类型 383
15.3.3 表达式 385
15.3.4 循环 386
15.3.5 方法与函数 388
15.4 集合 391
15.4.1 数组 391
15.4.2 List 393
15.4.3 Map映射 394
15.4.4 元组 396
15.4.5 Set 396
15.5 类和对象 398
15.5.1 类的定义 398
15.5.2 单例对象 399
15.5.3 伴生对象 399
15.5.4 get和set方法 400
15.5.5 构造器 402
15.6 抽象类和特质 404
15.6.1 抽象类 404
15.6.2 特质 406
15.7 使用ECLIPSE创建SCALA项目 408
15.7.1 安装Scala for Eclipse IDE 408
15.7.2 创建Scala项目 409
15.8 使用INTELLIJ IDEA创建SCALA项目 410
15.8.1 IDEA中安装Scala插件 410
15.8.2 创建Scala项目 414
第16章 Spark 416
16.1 SPARK概述 416
16.2 SPARK主要组件 417
16.3 SPARK运行时架构 419
16.3.1 Spark Standalone模式 419
16.3.2 Spark On YARN模式 421
16.4 SPARK集群环境搭建 423
16.4.1 Spark Standalone模式 423
16.4.2 Spark On YARN模式 425
16.5 SPARK HA搭建 426
16.6 SPARK应用程序的提交 430
16.7 SPARK SHELL的使用 433
16.8 SPARK RDD 435
16.8.1 创建RDD 435
16.8.2 RDD算子 436
16.9 案例分析:使用SPARK RDD实现单词计数 441
16.10 SPARK SQL 448
16.10.1 DataFrame和Dataset 448
16.10.2 Spark SQL基本使用 449
16.11 案例分析:使用SPARK SQL实现单词计数 452
16.12 案例分析:SPARK SQL与HIVE整合 454
16.13 案例分析:SPARK SQL读写MYSQL 457
|
內容試閱:
|
前言
当今互联网已进入大数据时代,大数据技术已广泛应用于金融、医疗、教育、电信、政府等领域。各行各业每天都在产生大量的数据,数据计量单位已从B、KB、MB、GB、TB发展到PB、EB、ZB、YB甚至BB、NB、DB。预计未来几年,全球数据将呈爆炸式增长。谷歌、阿里巴巴、百度、京东等互联网公司都急需掌握大数据技术的人才,而大数据相关人才却出现了供不应求的状况。
Hadoop作为大数据生态系统中的核心框架,专为离线和大规模数据处理而设计。Hadoop的核心组成HDFS为海量数据提供了分布式存储;MapReduce则为海量数据提供了分布式计算。很多互联网公司都使用Hadoop来实现公司的核心业务,例如华为的云计算平台、淘宝的推荐系统等,只要和海量数据相关的领域都有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操作、源码剖析,并通过实际案例加深对各个框架的理解与应用。
那么如何学习本书呢?
本书推荐的阅读方式是按照章节顺序从头到尾完成阅读,因为后面的很多章节是以前面的章节为基础,而且这种一步一个脚印、由浅入深的方式将使你更加顺利地掌握大数据的开发技能。
学习本书时,首先根据第1、2章搭建好开发环境,然后依次学习第3~16章,学习每一章时先了解该章的基础知识和框架的架构原理,然后再进行集群环境搭建、Shell命令操作等实操练习,这样学习效果会更好。当书中的理论和实操知识都掌握后,可以进行举一反三,自己开发一个大数据程序,或者将所学知识运用到自己的编程项目上,也可以到各种在线论坛与其他大数据爱好者进行讨论,互帮互助。
本书可作为Hadoop新手入门的指导书籍或者大数据开发人员的参考用书,要求读者具备一定的Java语言基础和Linux系统基础,即使没有任何大数据基础的读者,也可以对照书中的步骤成功搭建属于自己的大数据集群,是一本真正的提高读者动手能力、以实操为主的入门书籍。通过对本书的学习,读者能够对大数据相关框架迅速理解并掌握,可以熟练使用Hadoop集成环境进行大数据项目的开发。
读者若对书中讲解的知识有任何疑问,可关注下面的公众号联系笔者,还可以在该公众号中获取大数据相关的学习教程和资源。
扫描下述二维码可以下载本书源代码:
由于时间原因,书中难免出现一些错误或不准确的地方,恳请读者批评指正。
张伟洋
2019年5月于青岛
|
|