"■ 从大数据处理相关技术基础入手,循序渐进讲解大数据处理相关技术。
■ 注重原理与技术相结合,力求对大数据处理技术给出理论上的解释。
■ 注重理论与实践相结合,对涉及的大数据处理理论给出对应的操作示例。
"
大数据是以容量大、类型多、存取速度快和应用价值高为主要特征的数据集合,大数据技术正快速发展为对数量巨大、来源分散、格式多样的数据进行采集、存储和关联分析,从中发现新知识、创造新价值、提升新能力的新一代信息技术和服务业态。本教程概述了大数据编程基础Lirmx、Java、SQL、Scala和Python,以实例讲解知识点Hadoop、HDFS、MapReduce,HBase,Spark,SparkSQL,Redis,MongoDB,Neo4j,Tableau,ECharts和PyeCharts,并针对每个知识点精心设计了相关案例。本书可作为高等院校数据科学与技术、计箅机科学与技术、信息管理、软件工程和人工智能等相关专业的大数据课程教材,也可供相关技术人员参考。
第1章大数据概述1
1.1大数据的基本概念1
1.1.1大数据的定义1
1.1.2大数据的特征1
1.2大数据技术2
1.2.1数据采集技术2
1.2.2数据预处理技术3
1.2.3云计算技术3
1.2.4分布式处理技术6
1.2.5数据存储技术6
1.3大数据计算模式与典型系统7
1.3.1批处理计算模式与典型系统7
1.3.2流式计算模式与典型系统7
1.3.3迭代计算模式与典型系统8
1.3.4图计算模式与典型系统8
1.3.5内存计算模式与典型系统8
1.4习题8
第2章大数据软件基础9
2.1Linux基础9
2.1.1命令格式9
2.1.2用户管理10
2.1.3文件操作12
2.1.4目录操作15
2.1.5文件压缩和解压缩命令17
2.1.6安装和卸载软件18
2.1.7主机名更改19
2.2Java语言基础20
2.2.1基本数据类型20
2.2.2主类结构21
2.2.3定义类24
2.2.4类的实例化26
2.2.5包28
2.2.6常用实用类31
2.3SQL基础33
2.4在VirtualBox上安装虚拟机34
2.4.1Master节点的安装34
2.4.2复制虚拟机41
2.5习题45
第3章Hadoop大数据处理架构46
3.1Hadoop概述46
3.1.1Hadoop简介46
3.1.2Hadoop特性46
3.2Hadoop生态系统47
3.2.1Hadoop分布式文件系统47
3.2.2MapReduce分布式计算模型48
3.2.3Hive数据仓库49
3.2.4HBase分布式数据库49
3.2.5Zookeeper分布式协调服务49
3.2.6Sqoop数据导入导出工具50
3.2.7Pig数据分析50
3.2.8Mahout数据挖掘算法库50
3.2.9Flume日志收集工具51
3.2.10Oozie作业流调度系统51
3.2.11Spark分布式内存计算51
3.2.12Tez有向无环图计算52
3.2.13Storm流数据处理52
3.3Hadoop的安装与使用53
3.3.1安装Hadoop前的准备工作53
3.3.2下载Hadoop安装文件55
3.3.3Hadoop单机模式配置56
3.3.4Hadoop伪分布式模式配置56
3.3.5Hadoop分布式模式配置60
3.4习题69
第4章Hadoop分布式文件系统70
4.1分布式文件系统的结构70
4.1.1主控服务器71
4.1.2数据服务器72
4.1.3客户端73
4.2HDFS的基本特征73
4.3HDFS存储架构及组件功能74
4.3.1HDFS存储架构74
4.3.2数据块74
4.3.3数据节点75
4.3.4名称节点76
4.3.5第二名称节点77
4.3.6心跳消息77
4.3.7客户端77
4.4HDFS文件读写流程77
4.4.1HDFS读文件流程78
4.4.2HDFS写文件流程79
4.5HDFS的Shell操作80
4.5.1查看命令使用方法80
4.5.2HDFS常用的Shell操作81
4.5.3HDFS管理员命令86
4.5.4HDFS的JavaAPI操作86
4.5.5利用HDFS的Web管理页面87
4.6HDFS编程实践87
4.6.1安装eclipse88
4.6.2在eclipse中创建项目89
4.6.3为项目添加需要用到的JAR包90
4.6.4编写Java应用程序92
4.6.5编译运行程序94
4.6.6应用程序的部署95
4.7习题97
第5章MapReduce分布式计算框架99
5.1MapReduce概述99
5.1.1并发、并行与分布式编程的概念99
5.1.2MapReduce并行编程模型100
5.1.3Map函数和Reduce函数100
5.2MapReduce的工作原理101
5.2.1MapReduce的体系架构101
5.2.2MapTask的工作原理103
5.2.3ReduceTask的工作原理104
5.3MapReduce编程类105
5.3.1InputFormat输入格式类105
5.3.2Mapper基类110
5.3.3Combiner合并类112
5.3.4Partitioner分区类112
5.3.5Sort排序类113
5.3.6Reducer类113
5.3.7输出格式类OutputFormat116
5.4MapReduce经典案例117
5.4.1WordCount执行流程示例117
5.4.2WordCount具体实现119
5.4.3使用eclipse编译运行词频统计程序124
5.5习题129
第6章HBase分布式数据库130
6.1HBase概述130
6.1.1HBase的技术特点130
6.1.2HBase与传统关系数据库的区别130
6.1.3HBase与Hadoop中其他组件的关系131
6.2HBase系统架构和访问接口132
6.2.1HBase系统架构132
6.2.2ROOT表和.META.表135
6.2.3HBase访问接口137
6.3HBase数据表138
6.3.1HBase数据表逻辑视图138
6.3.2HBase数据表物理视图140
6.3.3HBase数据表面向列的存储141
6.3.4HBase数据表的查询方式142
6.3.5HBase表结构设计143
6.4HBase安装143
6.4.1下载安装文件143
6.4.2配置环境变量143
6.4.3添加用户权限144
6.4.4查看HBase版本信息144
6.5HBase配置145
6.5.1单机运行模式配置145
6.5.2伪分布式运行模式配置146
6.6HBase常用Shell命令148
6.6.1基本命令149
6.6.2创建表150
6.6.3插入与更新表中的数据152
6.6.4查看表中的数据152
6.6.5删除表中的数据154
6.6.6表的启用/禁用155
6.6.7修改表结构155
6.6.8删除HBase表156
6.7常用的JavaAPI156
6.7.1HBase数据库管理API156
6.7.2HBase数据库表API157
6.7.3HBase数据库表行列API159
6.8HBase编程161
6.8.1在eclipse中创建项目161
6.8.2添加项目需要用到的JAR包162
6.8.3编写Java应用程序163
6.8.4编译运行程序166
6.9习题167
第7章NoSQL数据库168
7.1NoSQL数据库概述168
7.1.1NoSQL数据库兴起的原因168
7.1.2NoSQL数据库的特点169
7.2“键值”数据库169
7.2.1Redis安装170
7.2.2Redis数据库的特点171
7.2.3Redis数据库的基本数据类型171
7.3列族数据库177
7.4文档数据库177
7.4.1MongoDB简介177
7.4.2MongoDB下载与安装177
7.4.3MongoDB文档操作181
7.4.4MongoDB集合操作185
7.4.5MongoDB数据库操作186
7.4.6MongoDB数据类型187
7.5图数据库188
7.5.1下载和安装Neo4j189
7.5.2Neo4j的启动和停止189
7.5.3Neo4j的CQL操作191
7.5.4在Neo4j浏览器中创建节点和关系194
7.6习题196
第8章Scala基础编程197
8.1Scala特性197
8.2Scala安装198
8.2.1用IntelliJIDEA搭建Scala开发环境198
8.2.2用scala.msi搭建Scala开发环境202
8.3Scala数据类型203
8.4Scala常量和变量204
8.4.1常量204
8.4.2变量205
8.5Scala数组、列表、集合和映射205
8.5.1定长数组206
8.5.2变长数组208
8.5.3列表209
8.5.4集合210
8.5.5映射211
8.6Scala控制结构212
8.6.1条件表达式212
8.6.2if…else选择结构213
8.6.3编写Scala脚本213
8.6.4循环214
8.7Scala函数215
8.7.1函数定义215
8.7.2匿名函数216
8.7.3高阶函数217
8.8Scala类217
8.9Scala读写文件218
8.10习题219
第9章Python基础编程220
9.1Python安装220
9.2Python代码编写方式221
9.2.1用带图形界面的PythonShell编写交互式代码221
9.2.2用带图形界面的PythonShell编写程序代码221
9.3Python对象和引用222
9.3.1对象的身份223
9.3.2对象的类型223
9.3.3对象的值223
9.3.4对象的引用223
9.4Python基本数据类型224
9.4.1数值数据类型224
9.4.2字符串数据类型225
9.4.3列表数据类型231
9.4.4元组数据类型236
9.4.5字典数据类型238
9.4.6集合数据类型242
9.4.7Python数据类型之间的转换244
9.5Python中的数据输入244
9.6Python中的数据输出245
9.6.1表达式语句输出245
9.6.2print函数输出245
9.6.3字符串对象的format方法的格式化输出247
9.7Python中文件的基本操作248
9.8选择结构249
9.8.1选择语句249
9.8.2条件表达式250
9.9循环结构250
9.9.1while循环250
9.9.2for循环251
9.9.3循环中的break、continue和else252
9.10函数252
9.10.1定义函数252
9.10.2函数调用253
9.11类255
9.11.1定义类255
9.11.2创建类的对象256
9.12习题257
第10章Spark分布式内存计算258
10.1Spark概述258
10.1.1Spark产生背景258
10.1.2Spark的优点259
10.1.3Spark应用场景259
10.1.4Spark生态系统261
10.2Spark的安装及配置261
10.2.1Spark安装的基础环境261
10.2.2下载安装文件262
10.2.3单机模式配置262
10.2.4伪分布式模式配置263
10.3使用SparkShell编写Scala代码264
10.3.1启动SparkShell265
10.3.2退出SparkShell266
10.4Spark核心数据结构RDD266
10.4.1RDD创建266
10.4.2RDD操作268
10.4.3RDD属性275
10.4.4RDD持久化277
10.5Spark运行机制278
10.5.1Spark基本概念278
10.5.2Spark运行架构281
10.5.3Spark应用执行基本流程282
10.6使用Scala语言编写Spark应用程序283
10.6.1安装sbt283
10.6.2编写词频统计Scala应用程序284
10.6.3用sbt打包Scala应用程序285
10.6.4通过sparksubmit运行程序286
10.7使用Python语言编写Spark应用程序286
10.7.1SparkContext287
10.7.2pyspark对RDD的转换操作289
10.7.3pyspark对RDD的行动操作290
10.8习题292
第11章SparkSQL编程293
11.1SparkSQL概述293
11.2SparkSQL与Shell交互293
11.3DataFrame对象的创建294
11.3.1使用parquet格式文件创建DataFrame294
11.3.2使用JSON数据文件创建DataFrame295
11.3.3使用RDD创建DataFrame296
11.4DataFrame对象上的常用操作296
11.4.1内容查看297
11.4.2过滤299
11.4.3分组与聚合299
11.4.4获取所有数据到数组299
11.4.5获取所有数据到列表300
11.4.6获取指定字段的统计信息300
11.5习题300
第12章数据可视化301
12.1Tableau绘图301
12.1.1Tableau的主要特性301
12.1.2Tableau工作表工作区302
12.1.3Tableau仪表板工作区307
12.1.4Tableau故事工作区308
12.1.5Tableau菜单栏310
12.1.6Tableau可视化与数据分析举例311
12.2ECharts绘图312
12.2.1ECharts的特点312
12.2.2ECharts环境搭建313
12.2.3使用Dreamweaver8创建网页313
12.2.4使用Echarts绘制折线图314
12.2.5使用Echarts绘制柱状图318
12.2.6使用Echarts绘制饼图320
12.2.7使用Echarts绘制雷达图322
12.3PyeCharts绘图324
12.3.1绘制柱状图325
12.3.2绘制折线图327
12.3.3绘制饼图329
12.3.4绘制雷达图330
12.3.5绘制漏斗图331
12.3.6绘制3D立体图332
12.3.7绘制词云图333
12.4习题334
参考文献335