新書推薦:
《
敦煌写本文献学(增订本)
》
售價:NT$
1010.0
《
耕读史
》
售價:NT$
500.0
《
地理计算与R语言
》
售價:NT$
551.0
《
沈括的知识世界:一种闻见主义的实践(中华学术译丛)
》
售價:NT$
398.0
《
大思维:哥伦比亚商学院六步创新思维模型
》
售價:NT$
332.0
《
宏观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:NT$
709.0
《
UE5虚幻引擎必修课(视频教学版)
》
售價:NT$
505.0
《
真需求
》
售價:NT$
505.0
|
編輯推薦: |
本书的定位是大数据从入门到应用的简明系统教程。对于Hadoop生态体系,企业通常使用的是Hadoop商业版本,因此本书实操的运行环境采用Cloudera的CDH。本书的特色是理论联系实践、实用性强、内容全面、讲解详细、深入浅出,是大数据技术爱好者入门的*图书。本书*后给出的两个实战案例极有价值,方便读者对所学的知识融会贯通。
|
內容簡介: |
对于入门和学习大数据技术的读者来说,大数据技术的生态圈和知识体系过于庞大,可能还没有开始学习就已经陷入众多的陌生名词和泛泛的概念中。本书的切入点明确而清晰,从Hadoop 生态系统的明星 Cloudera 入手,逐步引出各类大数据基础和核心应用框架。 本书分为18章,系统介绍Hadoop 生态系统大数据相关的知识,包括大数据概述、Cloudera Hadoop平台的安装部署、HDFS分布式文件系统、MapReduce计算框架、资源管理调度框架YARN 、Hive数据仓库、数据迁移工具Sqoop、分布式数据库HBase、ZooKeeper分布式协调服务、准实时分析系统Impala、日志采集工具Flume、分布式消息系统Kafka、ETL工具Kettle、Spark计算框架等内容,*后给出两个综合实操案例,以巩固前面所学的知识点。 本书既适合Hadoop初学者、大数据技术工程师和大数据技术爱好者自学使用,亦可作为高等院校和培训机构大数据相关课程的培训用书。
|
關於作者: |
宋立桓,连续十届微软最有价值专家MVP、系统集成高级项目经理、大数据与云计算培训讲师、微软技术大会动手实验讲师,有20年的工作经验,曾服务于微软担任合作伙伴技术顾问。目前在腾讯,担任腾讯云解决方案架构师。
陈建平,曾担任IBM上海高级数据分析经理,资深技术讲师,10年相关项目经历,长期从事大数据相关研究分析工作。
|
目錄:
|
目 录
第1章 大数据概述 1
1.1 大数据时代的数据特点 1
1.2 大数据时代的发展趋势数据将成为资产 2
1.3 大数据时代处理数据理念的改变 3
1.3.1 要全体不要抽样 3
1.3.2 要效率不要绝对精确 3
1.3.3 要相关不要因果 4
1.4 大数据时代的关键技术 5
1.5 大数据时代的典型应用案例 5
1.5.1 塔吉特超市精准营销案例 5
1.5.2 谷歌流感趋势案例 6
1.5.3 证券行业案例 6
1.5.4 某运营商大数据平台案例 7
1.6 Hadoop概述和介绍 7
1.6.1 Hadoop 发展历史和应用现状 7
1.6.2 Hadoop 的特点 8
1.6.3 Hadoop 的生态系统 8
第2章 Cloudera大数据平台介绍 10
2.1 Cloudera简介 10
2.2 Cloudera的Hadoop发行版CDH简介 11
2.2.1 CDH概述 11
2.2.2 CDH和Apache Hadoop对比 12
2.3 Cloudera Manager大数据管理平台介绍 12
2.3.1 Cloudera Manager概述和整体架构 12
2.3.2 Cloudera Manager的基本核心功能 14
2.3.3 Cloudera Manager的高级功能 18
2.4 Cloudera平台参考部署架构 19
2.4.1 Cloudera的软件体系结构 19
2.4.2 群集硬件规划配置 19
2.4.3 Hadoop集群角色分配 21
2.4.4 网络拓扑 23
第3章 Cloudera Manager及CDH离线安装部署 25
3.1 安装前的准备工作 25
3.2 Cloudera Manager及CDH安装 30
3.3 添加其他大数据组件 35
第4章 分布式文件系统HDFS 37
4.1 HDFS简介 37
4.2 HDFS体系结构 38
4.2.1 HDFS 架构概述 38
4.2.2 HDFS命名空间管理 38
4.2.3 NameNode 39
4.2.4 SecondaryNameNode 39
4.3 HDFS 2.0新特性 41
4.3.1 HDFS HA 41
4.3.2 HDFS Federation 42
4.4 HDFS操作常用shell命令 43
4.4.1 HDFS目录操作和文件处理命令 43
4.4.2 HDFS的Web管理界面 44
4.4.3 dfsadmin管理维护命令 45
4.4.4 namenode命令 47
4.5 Java编程操作HDFS实践 47
4.6 HDFS 的参数配置和规划 49
4.7 使用Cloudera Manager启用HDFS HA 51
4.7.1 HDFS HA高可用配置 51
4.7.2 HDFS HA高可用功能测试 54
第5章 分布式计算框架MapReduce 57
5.1 MapReduce概述 57
5.2 MapReduce原理介绍 58
5.2.1 工作流程概述 58
5.2.2 MapReduce框架的优势 58
5.2.3 MapReduce执行过程 59
5.3 MapReduce编程单词示例解析 59
5.4 MapReduce应用开发 60
5.4.1 配置MapReduce开发环境 60
5.4.2 编写和运行MapReduce程序 61
第6章 资源管理调度框架YARN 65
6.1 YARN产生背景 65
6.2 YARN框架介绍 66
6.3 YARN工作原理 67
6.4 YARN框架和MapReduce1.0框架对比 69
6.5 CDH集群的YARN参数调整 69
第7章 数据仓库Hive 72
7.1 Hive简介 72
7.2 Hive体系架构和应用场景 73
7.2.1 Hive体系架构 73
7.2.2 Hive应用场景 74
7.3 Hive的数据模型 75
7.3.1 内部表 75
7.3.2 外部表 75
7.3.3 分区表 75
7.3.4 桶 75
7.4 Hive实战操作 76
7.4.1 Hive内部表操作 77
7.4.2 Hive外部表操作 77
7.4.3 Hive分区表操作 79
7.4.4 桶表 80
7.4.5 Hive应用实例WordCount 82
7.4.6 UDF 84
7.5 基于Hive的应用案例 86
第8章 数据迁移工具Sqoop 88
8.1 Sqoop概述 88
8.2 Sqoop工作原理 89
8.3 Sqoop版本和架构 91
8.4 Sqoop实战操作 93
第9章 分布式数据库HBase 100
9.1 HBase概述 100
9.2 HBase数据模型 101
9.3 HBase生态地位和系统架构 101
9.3.1 HBase的生态地位解析 101
9.3.2 HBase系统架构 102
9.4 HBase运行机制 103
9.4.1 Region 103
9.4.2 Region Server工作原理 103
9.4.3 Store工作原理 104
9.5 HBase操作实战 104
9.5.1 HBase常用shell命令 104
9.5.2 HBase编程实践 107
9.5.3 HBase参数调优的案例分享 109
第10章 分布式协调服务ZooKeeper 111
10.1 ZooKeeper的特点 111
10.2 ZooKeeper的工作原理 112
10.2.1 基本架构 112
10.2.2 ZooKeeper实现分布式Leader节点选举 112
10.2.3 ZooKeeper配置文件重点参数详解 112
10.3 ZooKeeper典型应用场景 115
10.3.1 ZooKeeper实现HDFS的NameNode高可用HA 115
10.3.2 ZooKeeper实现HBase的HMaster高可用 116
10.3.3 ZooKeeper在Storm集群中的协调者作用 116
第11章 准实时分析系统Impala 118
11.1 Impala概述 118
11.2 Impala组件构成 119
11.3 Impala系统架构 119
11.4 Impala的查询处理流程 120
11.5 Impala和Hive的关系和对比 121
11.6 Impala安装 122
11.7 Impala入门实战操作 124
第12章 日志采集工具Flume 128
12.1 Flume概述 128
12.2 Flume体系结构 129
12.2.1 Flume外部结构 129
12.2.2 Flume的Event事件概念 130
12.2.3 Flume的Agent 130
12.3 Flume安装和集成 131
12.3.1 搭建Flume环境 131
12.3.2 Kafka与Flume集成 132
12.4 Flume操作实例介绍 132
12.4.1 例子概述 132
12.4.2 第一步:配置数据流向 132
12.4.3 第二步:启动服务 133
12.4.4 第三步:新建空数据文件 133
12.4.5 第四步:运行flume-ng命令 133
12.4.6 第五步:运行命令脚本 134
12.4.7 最后一步:测试结果 134
第13章 分布式消息系统Kafka 135
13.1 Kafka架构设计 135
13.1.1 基本架构 135
13.1.2 基本概念 136
13.1.3 Kafka主要特点 136
13.2 Kafka原理解析 137
13.2.1 主要的设计理念 137
13.2.2 ZooKeeper在Kafka的作用 137
13.2.3 Kafka在ZooKeeper的执行流程 137
13.3 Kafka安装和部署 138
13.3.1 CDH5完美集成Kafka 138
13.3.2 Kafka部署模式和配置 139
13.4 Java操作Kafka消息处理实例 141
13.4.1 例子概述 141
13.4.2 第一步:新建工程 141
13.4.3 第二步:编写代码 141
13.4.4 第三步:运行发送数据程序 142
13.4.5 最后一步:运行接收数据程序 143
13.5 Kafka与HDFS的集成 143
13.5.1 与HDFS集成介绍 143
13.5.2 与HDFS集成实例 144
13.5.3 第一步:编写代码发送数据 144
13.5.4 第二步:编写代码接收数据 145
13.5.5 第三步:导出文件 146
13.5.6 第四步:上传文件 146
13.5.7 第五步:运行程序发送数据 146
13.5.8 第六步:运行程序接收数据 147
13.5.9 最后一步:查看执行结果 147
第14章 大数据ETL工具Kettle 148
14.1 ETL原理 148
14.1.1 ETL简介 148
14.1.2 ETL在数据仓库中的作用 149
14.2 Kettle简介 149
14.3 Kettle完整案例实战 150
14.3.1 案例介绍 150
14.3.2 最终效果 150
14.3.3 表说明 150
14.3.4 第一步:准备数据库数据 151
14.3.5 第二步:新建转换 152
14.3.6 第三步:新建数据库连接 153
14.3.7 第四步:拖动表输入组件 153
14.3.8 第五步:设置属性order表 154
14.3.9 第六步:设置属性user表 155
14.3.10 第七步:拖动流查询并设置属性流查询 155
14.3.11 第八步:设置属性product表 156
14.3.12 第九步:连接组件 156
14.3.13 第十步:设置属性文本输出 156
14.3.14 最后一步:运行程序并查看结果 157
14.4 Kettle调度和命令 158
14.4.1 通过页面调度 158
14.4.2 通过脚本调度 159
14.5 Kettle使用原则 161
第15章 大规模数据处理计算引擎Spark 162
15.1 Spark简介 162
15.1.1 使用背景 162
15.1.2 Spark特点 163
15.2 Spark架构设计 163
15.2.1 Spark整体架构 163
15.2.2 关键运算组件 164
15.2.3 RDD介绍 164
15.2.4 RDD操作 165
15.2.5 RDD依赖关系 166
15.2.6 RDD源码详解 167
15.2.7 Scheduler 168
15.2.8 Storage 168
15.2.9 Shuffle 169
15.3 Spark编程实例 170
15.3.1 实例概述 170
15.3.2 第一步:编辑数据文件 170
15.3.3 第二步:编写程序 171
15.3.4 第三步:上传JAR文件 171
15.3.5 第四步:远程执行程序 172
15.3.6 最后一步:查看结果 172
15.4 Spark SQL实战 173
15.4.1 例子概述 173
15.4.2 第一步:编辑数据文件 173
15.4.3 第二步:编写代码 174
15.4.4 第三步:上传文件到服务器 174
15.4.5 第四步:远程执行程序 174
15.4.6 最后一步:查看结果 175
15.5 Spark Streaming实战 175
15.5.1 例子概述 175
15.5.2 第一步:编写代码 175
15.5.3 第二步:上传文件到服务器 176
15.5.4 第三步:远程执行程序 177
15.5.5 第四步:上传数据 177
15.5.6 最后一步:查看结果 177
15.6 Spark MLlib实战 178
15.6.1 例子步骤 178
15.6.2 第一步:编写代码 178
15.6.3 第二步:上传文件到服务器 179
15.6.4 第三步:远程执行程序 179
15.6.5 第四步:上传数据 180
15.6.6 最后一步:查看结果 180
第16章 大数据全栈式开发语言Python 182
16.1 Python简介 182
16.2 Python安装和配置 183
16.2.1 Anaconda介绍 183
16.2.2 Anaconda下载 183
16.2.3 Anaconda安装 184
16.2.4 Anaconda包管理 185
16.2.5 PyCharm下载 185
16.2.6 PyCharm安装 185
16.2.7 PyCharm使用 187
16.3 Python入门 190
16.3.1 例子概述 190
16.3.2 第一步:新建Python文件 190
16.3.3 第二步:设置字体大小 191
16.3.4 第三步:编写代码 191
16.3.5 第四步:执行程序 192
16.3.6 最后一步:改变输入 192
16.4 Python数据科学库pandas入门 193
16.4.1 例子概述 193
16.4.2 pandas包介绍 194
16.4.3 第一步:打开Jupyter Notebook 194
16.4.4 第二步:导入包 194
16.4.5 第三步:定义数据集 195
16.4.6 第四步:过滤数据 195
16.4.7 最后一步:获取数据 196
16.5 Python绘图库matplotlib入门 197
16.5.1 例子概述 197
16.5.2 第一步:新建一个Python文件 197
16.5.3 第二步:引入画图包 197
16.5.4 第三步:组织数据 198
16.5.5 第四步:画图 198
16.5.6 最后一步:查看结果 199
第17章 大数据实战案例:实时数据流处理项目 200
17.1 项目背景介绍 200
17.2 业务需求分析 200
17.3 项目技术架构 201
17.4 项目技术组成 202
17.5 项目实施步骤 202
17.5.1 第一步:运用Kafka产生数据 202
17.5.2 第二步:运用Spark接收数据 208
17.5.3 第三步:安装Redis软件 211
17.5.4 第四步:准备程序运行环境 214
17.5.5 第五步:远程执行Spark程序 216
17.5.6 第六步:编写Python实现可视化 218
17.5.7 最后一步:执行Python程序 221
17.6 项目总结 222
第18章 大数据实战案例:用户日志综合分析项目 223
18.1 项目背景介绍 223
18.2 项目设计目的 223
18.3 项目技术架构和组成 224
18.4 项目实施步骤 225
18.4.1 第一步:本地数据FTP到Linux环境 225
18.4.2 第二步:Linux数据上传到HDFS 225
18.4.3 第三步:使用Hive访问HDFS数据 226
18.4.4 第四步:使用Kettle把数据导入HBase 228
18.4.5 第五步:使用Sqoop把数据导入MySQL 234
18.4.6 第六步:编写Python程序实现可视化 236
18.4.7 最后一步:执行Python程序 238
|
內容試閱:
|
前 言
大数据这个词也许几年前你听着还有点陌生,但我相信你现在听到Hadoop这个词时会觉得熟悉!你会发现身边从事Hadoop开发或者正在学习Hadoop的人越来越多。
最早提出大数据时代到来的是全球知名咨询公司麦肯锡,麦肯锡称:数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。互联网技术发展到现今阶段,大量日常、工作等事务产生的数据比以前有了爆炸式的增长,以前的传统数据处理技术已经无法胜任,需求催生技术一套用来处理海量数据的软件技术框架Hadoop应运而生!
我本人一直从事云计算、大数据方面的咨询和培训工作。大数据产业高速发展促使Hadoop人才的需求井喷式增长,但Hadoop大数据工程师培养数量远远无法满足市场的需求。为了不被淹没在大数据技术的浪潮中,我们只有坚持学习,通过增加知识来实现对自我价值的挖掘和体现。
关于本书
Hadoop的发行版除了社区的Apache Hadoop外,Cloudera、Hortonworks、华为等公司都提供了自己的商业版本。因为企业通常使用的是Hadoop商业版本,所以本书实操的运行环境采用Cloudera的CDH。本书定位是大数据从入门到应用的简明系统教程,特色是理论联系实践、实战实用为主、内容全面系统、讲解深入浅出,是大数据技术爱好者入门的最佳图书。
本书分为18章(宋立桓老师撰写第1~12章、陈建平撰写第13~18章),分别从大数据概述、Cloudera Hadoop平台的安装部署、大数据Hadoop组件三方面进行介绍,内容包括HDFS分布式文件系统、MapReduce计算框架、资源管理框架YARN 、Hive数据仓库、数据迁移工具Sqoop、分布式数据库HBase、ZooKeeper分布式协调服务、准实时分析系统Impala、日志采集工具Flume、分布式消息系统Kafka、ETL工具Kettle、Spark计算框架等知识,最后用两个综合实操案例把所有知识点串起来。
本书使用的操作环境是Hadoop商业发行版的Cloudera Express(Express是免费版本,企业版需付费)。全书秉承实践为主、理论够用的原则,将演示实验融入各个知识点讲解中。
本书另提供丰富的案例源文件和大数据工具软件下载,供读者亲自操作练习,在作者博客中有下载地址。
学习本书之前,希望大家应该具有如下基础:有一定计算机网络基础知识,熟悉常用Linux操作命令,对Java语言和数据库理论有基本的了解。
感谢我的妻子,她是我完成此书的坚强后盾。
感谢我的朋友和同事,他们让我学会知识的增值和变现。
感谢清华大学出版社的编辑夏毓彦和其他工作人员帮助我出版了这本有意义的著作。
阿基米德有一句名言:给我一个支点,我就能撬起地球。谨以此书献给那些为大数据与商业智能分析铺路的人,让更多的人享受到大数据时代到来的红利。
宋立桓
云计算架构师、大数据咨询顾问
2018年11月
|
|