编辑推荐
步步引导,循序渐进,详尽的安装指南为顺利搭建大数据实验环境铺平道路
? 深入浅出,去粗取精,丰富的代码实例帮助快速掌握大数据基础编程方法
? 精心设计,巧妙融合,五套大数据实验题目促进理论与编程知识的消化和吸收
? 结合理论,联系实际,大数据课程综合实验案例精彩呈现大数据分析全流程
内容简介
本书以大数据分析全流程为主线,介绍了数据采集、数据存储与管理、数据处理与分析、数据可视化等环节典型软件的安装、使用和基础编程方法。本书内容涵盖操作系统(Linux和Windows)、开发工具(Eclipse)以及大数据相关技术、软件(Sqoop、Kafka、Flume、Hadoop、HDFS、MapReduce、HBase、Hive、Spark、MySQL、MongoDB、Redis、R、Easel.ly、D3、魔镜、ECharts、Tableau)等。同时,本书还提供了丰富的课程实验和综合案例,以及大量免费的在线教学资源,可以较好地满足高等院校大数据教学实际需求。
本书是《大数据技术原理与应用——概念、存储、处理、分析与应用》的“姊妹篇”,可以作为高等院校计算机、信息管理等相关专业的大数据课程辅助教材,用于指导大数据编程实践;也可供相关技术人员参考。
作者简介
林子雨(1978-),男,博士,厦门大学计算机科学系助理教授,厦门大学云计算与大数据研究中心创始成员,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员。于2001年获得福州大学水利水电专业学士学位,2005年获得厦门大学计算机专业硕士学位,2009年获得北京大学计算机专业博士学位。中国高校*“数字教师”提出者和建设者(http://www.cs.xmu.edu.cn/linziyu),2009年至今,“数字教师”大平台累计向网络免费发布超过100万字高价值的教学和科研资料,累计网络访问量超过100万次。
主要研究方向为数据库、数据仓库、数据挖掘、大数据和云计算,发表期刊和会议学术论文多篇,并作为课题组负责人承担了国家自然科学基金和福建省自然科学基金项目。曾作为志愿者翻译了Google Spanner、BigTable和《Architecture of a Database System》等大量英文学术资料,与广大网友分享,深受欢迎。2013年在厦门大学开设大数据课程,并因在教学领域的突出贡献和学生的认可,成为2013年度厦门大学教学类奖教金获得者。
目录
第1章大数据技术概述/1
1.1大数据时代/1
1.2大数据关键技术/2
1.3大数据软件/3
1.3.1Hadoop/4
1.3.2Spark/5
1.3.3NoSQL数据库/5
1.3.4数据可视化/6
1.4内容安排/7
1.5在线资源/8
1.5.1在线资源一览表/9
1.5.2下载专区/9
1.5.3在线视频/10
1.5.4拓展阅读/11
1.5.5大数据课程公共服务平台/11
1.6本章小结/12第2章Linux系统的安装和使用/13
2.1Linux系统简介/13
2.2Linux系统安装/13
2.2.1下载安装文件/14
2.2.2Linux系统的安装方式/14
2.2.3安装Linux虚拟机/15
2.2.4生成Linux虚拟机镜像文件/36
2.3Linux系统及相关软件的基本使用方法/38
2.3.1Shell/38
2.3.2root用户/38
2.3.3创建普通用户/38〖2〗〖4〗大数据基础编程、实验和案例教程目录〖3〗2.3.4sudo命令/39
2.3.5常用的Linux系统命令/40
2.3.6文件解压缩/40
2.3.7常用的目录/41
2.3.8目录的权限/41
2.3.9更新APT/41
2.3.10切换中英文输入法/43
2.3.11vim编辑器的使用方法/43
2.3.12在Windows系统中使用SSH方式登录Linux系统/44
2.3.13在Linux中安装Eclipse/48
2.3.14其他使用技巧/49
2.4关于本书内容的一些约定/49
2.5本章小结/50第3章Hadoop的安装和使用/51
3.1Hadoop简介/51
3.2安装Hadoop前的准备工作/52
3.2.1创建hadoop用户/52
3.2.2更新APT/52
3.2.3安装SSH/52
3.2.4安装Java环境/53
3.3安装Hadoop/55
3.3.1下载安装文件/55
3.3.2单机模式配置/56
3.3.3伪分布式模式配置/57
3.3.4分布式模式配置/66
3.3.5使用Docker搭建Hadoop分布式集群/75
3.4本章小结/87第4章HDFS操作方法和基础编程/88
4.1HDFS操作常用Shell命令/88
4.1.1查看命令使用方法/88
4.1.2HDFS目录操作/90
4.2利用HDFS的Web管理界面/92
4.3HDFS编程实践/92
4.3.1在Eclipse中创建项目/93
4.3.2为项目添加需要用到的JAR包/94
4.3.3编写Java应用程序/96
4.3.4编译运行程序/98
4.3.5应用程序的部署/100
4.4本章小结/102第5章HBase的安装和基础编程/103
5.1安装HBase/103
5.1.1下载安装文件/103
5.1.2配置环境变量/104
5.1.3添加用户权限/104
5.1.4查看HBase版本信息/104
5.2HBase的配置/105
5.2.1单机模式配置/105
5.2.2伪分布式配置/107
5.3HBase常用Shell命令/109
5.3.1在HBase中创建表/109
5.3.2添加数据/110
5.3.3查看数据/110
5.3.4删除数据/111
5.3.5删除表/112
5.3.6查询历史数据/112
5.3.7退出HBase数据库/112
5.4HBase编程实践/113
5.4.1在Eclipse中创建项目/113
5.4.2为项目添加需要用到的JAR包/116
5.4.3编写Java应用程序/117
5.4.4编译运行程序/123
5.4.5应用程序的部署/124
5.5本章小结/124第6章典型NoSQL数据库的安装和使用/125
6.1Redis安装和使用/125
6.1.1Redis简介/125
6.1.2安装Redis/125
6.1.3Redis实例演示/127
6.2MongoDB的安装和使用/128
6.2.1MongDB简介/129
6.2.2安装MongoDB/129
6.2.3使用Shell命令操作MongoDB/130
6.2.4Java API编程实例/136
6.3本章小结/139第7章MapReduce基础编程/140
7.1词频统计任务要求/140
7.2MapReduce程序编写方法/141
7.2.1编写Map处理逻辑/141
7.2.2编写Reduce处理逻辑/141
7.2.3编写main方法/142
7.2.4完整的词频统计程序/143
7.3编译打包程序/144
7.3.1使用命令行编译打包词频统计程序/145
7.3.2使用Eclipse编译运行词频统计程序/145
7.4运行程序/154
7.5本章小结/156第8章数据仓库Hive的安装和使用/157
8.1Hive的安装/157
8.1.1下载安装文件/157
8.1.2配置环境变量/158
8.1.3修改配置文件/158
8.1.4安装并配置MySQL/159
8.2Hive的数据类型/161
8.3Hive基本操作/162
8.3.1创建数据库、表、视图/162
8.3.2删除数据库、表、视图/163
8.3.3修改数据库、表、视图/164
8.3.4查看数据库、表、视图/165
8.3.5描述数据库、表、视图/165
8.3.6向表中装载数据/166
8.3.7查询表中数据/166
8.3.8向表中插入数据或从表中导出数据/166
8.4Hive应用实例: WordCount/167
8.5Hive编程的优势/167
8.6本章小结/168第9章Spark的安装和基础编程/169
9.1基础环境/169
9.2安装Spark/169
9.2.1下载安装文件/169
9.2.2配置相关文件/170
9.3使用 Spark Shell编写代码/171
9.3.1启动Spark Shell/171
9.3.2读取文件/172
9.3.3编写词频统计程序/174
9.4编写Spark独立应用程序/174
9.4.1用Scala语言编写Spark独立应用程序/175
9.4.2用Java语言编写Spark独立应用程序/178
9.5本章小结/182第10章典型的可视化工具的使用方法/183
10.1Easel.ly信息图制作方法/183
10.1.1信息图/183
10.1.2信息图制作基本步骤/183
10.2D3可视化库的使用方法/186
10.2.1D3可视化库的安装/187
10.2.2基本操作/187
10.3可视化工具Tableau使用方法/194
10.3.1安装Tableau/195
10.3.2界面功能介绍/195
10.3.3Tableau简单操作/197
10.4使用“魔镜”制作图表/202
10.4.1“魔镜”简介/202
10.4.2简单制作实例/202
10.5使用ECharts图表制作/206
10.5.1ECharts简介/206
10.5.2ECharts图表制作方法/206
10.5.3两个实例/210
10.6本章小结/217第11章数据采集工具的安装和使用/218
11.1Flume/218
11.1.1安装Flume/218
11.1.2两个实例/220
11.2Kafka/225
11.2.1Kafka相关概念/225
11.2.2安装Kafka/225
11.2.3一个实例/225
11.3Sqoop/227
11.3.1下载安装文件/227
11.3.2修改配置文件/228
11.3.3配置环境变量/228
11.3.4添加MySQL驱动程序/228
11.3.5测试与MySQL的连接/229
11.4实例: 编写Spark程序使用Kafka数据源/230
11.4.1Kafka准备工作/230
11.4.2Spark准备工作/232
11.4.3编写Spark程序使用Kafka数据源/234
11.5本章小结/239第12章大数据课程综合实验案例/241
12.1案例简介/241
12.1.1案例目的/241
12.1.2适用对象/241
12.1.3时间安排/241
12.1.4预备知识/241
12.1.5硬件要求/242
12.1.6软件工具/242
12.1.7数据集/242
12.1.8案例任务/242
12.2实验环境搭建/243
12.3实验步骤概述/244
12.4本地数据集上传到数据仓库Hive/245
12.4.1实验数据集的下载/245
12.4.2数据集的预处理/246
12.4.3导入数据库/249
12.5Hive数据分析/253
12.5.1简单查询分析/253
12.5.2查询条数统计分析/255
12.5.3关键字条件查询分析/256
12.5.4根据用户行为分析/258
12.5.5用户实时查询分析/259
12.6Hive、MySQL、HBase数据互导/260
12.6.1Hive预操作/260
12.6.2使用Sqoop将数据从Hive导入MySQL/261
12.6.3使用Sqoop将数据从MySQL导入HBase/265
12.6.4使用HBase Java API把数据从本地导入到HBase中/269
12.7利用R进行数据可视化分析/275
12.7.1安装R/275
12.7.2安装依赖库/277
12.7.3可视化分析/278
12.8本章小结/283第13章实验/284
13.1实验一: 熟悉常用的Linux操作和Hadoop操作/284
13.1.1实验目的/284
13.1.2实验平台/284
13.1.3实验步骤/284
13.1.4实验报告/286
13.2实验二: 熟悉常用的HDFS操作/286
13.2.1实验目的/286
13.2.2实验平台/286
13.2.3实验步骤/287
13.2.4实验报告/287
13.3实验三: 熟悉常用的HBase操作/288
13.3.1实验目的/288
13.3.2实验平台/288
13.3.3实验步骤/288
13.3.4实验报告/290
13.4实验四: NoSQL和关系数据库的操作比较/290
13.4.1实验目的/290
13.4.2实验平台/290
13.4.3实验步骤/290
13.4.4实验报告/293
13.5实验五: MapReduce初级编程实践/294
13.5.1实验目的/294
13.5.2实验平台/294
13.5.3实验步骤/294
13.5.4实验报告/297附录A大数据课程实验答案/298
A.1实验一: 熟悉常用的Linux操作和Hadoop操作/298
A.1.1实验目的/298
A.1.2实验平台/298
A.1.3实验步骤/298
A.2实验二: 熟悉常用的HDFS操作/303
A.2.1实验目的/303
A.2.2实验平台/303
A.2.3实验步骤/303
A.3实验三: 熟悉常用的HBase操作/323
A.3.1实验目的/323
A.3.2实验平台/323
A.3.3实验步骤/323
A.4实验四: NoSQL和关系数据库的操作比较/331
A.4.1实验目的/331
A.4.2实验平台/331
A.4.3实验步骤/332
A.5实验五: MapReduce初级编程实践/349
A.5.1实验目的/349
A.5.2实验平台/349
A.5.3实验步骤/350附录BLinux系统中的MySQL安装及常用操作/360
B.1安装MySQL/360
B.2MySQL常用操作/363参考文献/367
精彩书摘
第3章Hadoop的安装和使用
Hadoop是一个开源的、可运行于大规模集群上的分布式计算平台,它主要包含分布式并行编程模型MapReduce和分布式文件系统HDFS等功能,已经在业内得到广泛的应用。借助于Hadoop,程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的存储与处理分析。
本章首先简要介绍Hadoop的发展情况;然后,阐述安装Hadoop之前的一些必要准备工作;最后,介绍安装Hadoop的具体方法,包括单机模式、伪分布式模式、分布式模式以及使用Docker搭建Hadoop集群。
3.1Hadoop简介
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中。Hadoop的核心是分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce。
Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如谷歌、微软、思科、淘宝等,都支持Hadoop。
Apache Hadoop版本分为两代: 第一代Hadoop称为Hadoop 1.0;第二代Hadoop称为Hadoop 2.0。第一代Hadoop包含0.20.x、0.21.x和0.22.x三大版本,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.21.x和0.22.x则增加了HDFS HA等重要的新特性。第二代Hadoop包含0.23.x和2.x两大版本,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN(Yet Another Resource Negotiator)两个组件。本书采用Hadoop 2.7.1版本。
除了免费开源的Apache Hadoop以外,还有一些商业公司推出的Hadoop发行版。2008年,Cloudera成为第一个Hadoop商业化公司,并在2009年推出第一个Hadoop发行版。此后,很多大公司也加入了做Hadoop产品化的行列,如MapR、Hortonworks、星环等。一般而言,商业化公司推出的Hadoop发行版,也是以Apache Hadoop为基础,但是,前者比后者具有更好的易用性、更多的功能和更高的性能。〖2〗〖4〗大数据基础编程、实验和案例教程第3章Hadoop的安装和使用〖3〗3.2安装Hadoop前的准备工作
本节介绍安装Hadoop之前的一些准备工作,包括创建hadoop用户、更新APT、安装SSH和安装Java环境等。
3.2.1创建hadoop用户
本书全部采用hadoop用户登录Linux系统,并为hadoop用户增加了管理员权限。在第2章中已经介绍了hadoop用户创建和增加权限的方法,一定要按照该方法创建hadoop用户,并且使用hadoop用户登录Linux系统,然后再开始下面的学习内容。
3.2.2更新APT
第2章介绍了APT软件作用和更新方法,为了确保Hadoop安装过程顺利进行,建议按照第2章介绍的方法,用hadoop用户登录Linux系统后打开一个终端,执行下面命令更新APT软件:$ sudo apt-get update
3.2.3安装SSH
SSH是 Secure Shell 的缩写,是建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH是由客户端和服务端的软件组成,服务端是一个守护进程,它在后台运行并响应来自客户端的连接请求,客户端包含ssh程序以及像scp(远程复制)、slogin(远程登录)、sftp(安全文件传输)等其他的应用程序。
为什么在安装Hadoop之前要配置SSH呢?这是因为,Hadoop名称节点(NameNode)需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录集群中的每台机器,需要将所有机器配置为“名称节点可以无密码登录它们”。
Ubuntu默认已安装了SSH客户端,因此,这里还需要安装SSH服务端,在Linux的终端中执行以下命令:$ sudo apt-get install openssh-server
安装后,可以使用如下命令登录本机:$ ssh localhost
执行该命令后会出现如图3��1所示的提示信息(SSH首次登录提示),输入yes,然后按提示输入密码hadoop,就登录到本机了。
图3��1SSH登录提示信息
这里在理解上会有一点“绕弯”。也就是说,原本我们登录进入Linux系统以后,就是在本机上,这时,在终端中输入的每条命令都是直接提交给本机去执行,然后,又在本机上使用SSH方式登录到本机,这时,在终端中输入的命令,是通过SSH方式提交给本机处理。如果换成包含两台独立计算机的场景,SSH登录会更容易理解。例如,有两台计算机A和B都安装了Linux系统,计算机B上安装了SSH服务端,计算机A上安装了SSH客户端,计算机B的IP地址是59.77.16.33,在计算机A上执行命令ssh 59.77.16.33,就实现了通过SSH方式登录计算机B上面的Linux系统,在计算机A的Linux终端中输入的命令,都会提交给计算机B上的Linux系统执行,也就是说,在计算机A上操作计算机B中的Linux系统。现在,只有一台计算机,就相当于计算机A和B都在同一台机器上,所以,理解起来就会有点“绕弯”。
由于这样登录需要每次输入密码,所以,需要配置成SSH无密码登录会比较方便。在Hadoop集群中,名称节点要登录某台机器(数据节点)时,也不可能人工输入密码,所以,也需要设置成SSH无密码登录。
首先输入命令exit退出刚才的SSH,就回到了原先的终端窗口;然后可以利用ssh�瞜eygen生成密钥,并将密钥加入到授权中,命令如下:$ cd ~/.ssh/#若没有该目录,请先执行一次ssh localhost
$ ssh-keygen -t rsa#会有提示,按Enter键即可
$ cat ./id_rsa.pub>>./authorized_keys#加入授权
此时,再执行ssh localhost命令,无须输入密码就可以直接登录了,如图3��2所示。
图3��2SSH登录后的提示信息
3.2.4安装Java环境
Hadoop是基于Java语言开发的,本书的Hadoop应用程序也是采用Java语言编写的,因此,需要安装Java环境。Java环境可选择安装Oracle的JDK,或者安装OpenJDK。下面介绍两种不同的安装方式,优先选择第一种方式,如果第一种方式失败,请选择第二种方式。
1. 第一种安装方式
直接通过如下命令安装OpenJDK 7:$ sudo apt-get install openjdk-7-jre openjdk-7-jdk
上述安装过程需要访问网络下载相关文件,请保持联网状态。安装好OpenJDK后,需要找到相应的安装路径,这个路径是用于配置JAVA_HOME环境变量的,请执行如下命令:$ dpkg -L openjdk-7-jdk | grep '/bin/javac'
该命令会输出一个路径,除去路径末尾的/bin/javac,剩下的就是正确的路径了。例如,上面的命令执行后输出路径为/usr/lib/jvm/java��7�瞣penjdk�瞐md64/bin/javac,则我们需要的路径为/usr/lib/jvm/java��7�瞣penjdk�瞐md64。
接下来需要配置JAVA_HOME环境变量,为方便起见,这里直接在~/.bashrc这个文件中进行设置,采用这种配置方式时,只对当前登录的单个用户生效,当该用户登录以及每次打开新的Shell时,它的环境变量文件.bashrc会被读取。在Linux终端中输入下面命令打开当前登录用户的环境变量配置文件.bashrc:$ vim ~/.bashrc
在文件最前面添加如下单独一行(注意,等号(=)前后不能有空格),然后保存退出:$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
接下来要让环境变量立即生效,执行如下代码$source ~/.bashrc# 使变量设置生效
执行上述命令后,可以检验一下是否设置正确:$ echo $JAVA_HOME#检验变量值
$ java -version
$ $JAVA_HOME/bin/java -version#与直接执行java -version一样
如果设置正确,$JAVA_HOME/bin/java �瞯ersion命令执行后,会输出Java的版本信息,并且和java �瞯ersion的输出结果一样。
至此,Hadoop所需的Java运行环境就顺利安装完成。
2. 第二种安装方式
根据大量计算机安装Java环境的情况发现,部分计算机按照上述的第一种安装方式会出现安装失败的情况,这时,可以采用这里介绍的另外一种安装方式,命令如下:$ sudo apt-get install default-jre default-jdk
上述安装过程需要访问网络下载相关文件,请保持联网状态。安装结束以后,需要配置JAVA_HOME环境变量,在Linux终端中输入下面命令打开当前登录用户的环境变量配置文件.bashrc:$ vim ~/.bashrc
在文件最前面添加如下单独一行(注意,等号(=)前后不能有空格),然后保存退出:$ export JAVA_HOME=/usr/lib/jvm/default-java
接下来要让环境变量立即生效,执行如下代码:$source ~/.bashrc# 使变量设置生效
执行上述命令后,可以检验一下是否设置正确:$ echo $JAVA_HOME#检验变量值
$ java -version
$ $JAVA_HOME/bin/java -version#与直接执行java -version一样
至此,就成功安装了Java环境。下面就可以进入Hadoop的安装。
3.3安装Hadoop
Hadoop包括3种安装模式。
(1) 单机模式。只在一台机器上运行,存储采用本地文件系统,没有采用分布式文件系统HDFS。
(2) 伪分布式模式。存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台机器上。
(3) 分布式模式。存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。
本节介绍Hadoop的具体安装方法,包括下载安装文件、单机模式配置、伪分布式模式配置、分布式模式配置和使用Docker搭建Hadoop分布式集群等。
3.3.1下载安装文件
本书采用的Hadoop版本是2.7.1,可以到Hadoop官网下载安装文件(http://mirrors.cnnic.cn/apache/hadoop/common/),或者也可以到本书官网的“下载专区”中下载安装文件,进入下载专区后,在“软件”这个文件夹中,找到文件hadoop��2.7.1.tar.gz,下载到本地。下载的方法是,在Linux系统中(不是在Windows系统中),打开浏览器,一般自带了火狐(FireFox)浏览器。打开浏览器后,访问本书官网,下载hadoop��2.7.1.tar.gz。火狐浏览器默认会把下载文件都保存到当前用户的下载目录,由于本书全部采用hadoop用户登录Linux系统,所以,hadoop��2.7.1.tar.gz文件会被保存到“/home/hadoop/下载/”目录下。
需要注意的是,如果是在Windows系统下面下载安装文件hadoop��2.7.1.tar.gz,则需要通过FTP软件上传到Linux系统的“/home/hadoop/下载/”目录下,这个目录是本书所有安装文件的中转站。
下载完安装文件以后,需要对文件进行解压。按照Linux系统使用的默认规范,用户安装的软件一般都是存放在/usr/local/目录下。使用hadoop用户登录Linux系统,打开一个终端,执行如下命令:$ sudo tar -zxf ~/下载/hadoop-2.7.1.tar.gz -C /usr/local# 解压到/usr/local目录中
$cd /usr/local/
$ sudo mv ./hadoop-2.7.1/ ./hadoop#将文件夹名改为hadoop
$ sudo chown -R hadoop ./hadoop #修改文件权限
Hadoop解压后即可使用,可以输入如下命令来检查 Hadoop是否可用,成功则会显示 Hadoop版本信息:$cd /usr/local/hadoop
$./bin/hadoop version
3.3.2单机模式配置
Hadoop的默认模式为非分布式模式(本地模式),无须进行其他配置即可运行。Hadoop附带了丰富的例子,运行如下命令可以查看所有例子:$ cd /usr/local/hadoop
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar
上述命令执行后,会显示所有例子的简介信息,包括grep、join、wordcount等。这里选择运行grep例子,可以先在/usr/local/hadoop目录下创建一个文件夹input,并复制一些文件到该文件夹下;然后,运行grep程序,将 input文件夹中的所有文件作为grep的输入,让grep程序从所有文件中筛选出符合正则表达式“dfs[a�瞶.]+”的单词,并统计单词出现的次数,最后,把统计结果输出到/usr/local/hadoop/output文件夹中。完成上述操作的具体命令如下:$cd /usr/local/hadoop
$mkdir input
$ cp ./etc/hadoop/��.xml ./input #将配置文件复制到input目录下
$./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-��.jar grep ./input ./output 'dfs[a-z.]+'
$ cat ./output/��#查看运行结果
执行成功后结果如图3��3所示,输出了作业的相关信息,输出的结果是符合正则表达式的单词dfsadmin出现了1次。
图3��3grep程序运行结果
需要注意的是,Hadoop默认不会覆盖结果文件,因此,再次运行上面实例会提示出错。如果要再次运行,需要先使用如下命令把output文件夹删除:$rm -r ./output
3.3.3伪分布式模式配置
Hadoop可以在单个节点(一台机器)上以伪分布式的方式运行,同一个节点既作为名称节点(Name Node),也作为数据节点(Data Node),读取的是分布式文件系统 HDFS 中的文件。
1
……
前言/序言
建设了中国高校大数据课程公共服务平台,成为全国高校大数据教学知名品牌。平台为教师教学和学生学习大数据课程提供包括教学大纲、讲义PPT、学习指南、备课指南、实验指南、上机习题、授课视频、技术资料等全方位、一站式免费服务,平台年访问量超过100万次;同时提供面向高校的大数据实验平台建设方案和大数据课程师资培训服务。
扫一扫访问平台主页
大数据带来了信息技术的巨大变革,并深刻影响着社会生产和人民生活的方方面面。大数据专业人才的培养是世界各国新一轮科技较量的基础,高等院校承担着大数据人才培养的重任,需要及时建立大数据课程体系,为社会培养和输送一大批具备大数据专业素养的高级人才,满足社会对大数据人才日益旺盛的需求。
高质量的教材是推进高校大数据课程体系建设的关键支撑。2013年12月,笔者根据自己主讲厦门大学计算机系研究生大数据课程的教学实践,编写了电子书《大数据技术基础》,通过网络免费发布,获得了较好的反响。此后两年多的时间里,笔者继续对大数据技术知识体系进行深入学习和系统梳理,并结合教学实践和大量调研,编著出版了《大数据技术原理与应用》教材,该书第1版于2015年8月出版发行,第2版于2017年2月出版发行。《大数据技术原理与应用》一书侧重于介绍大数据技术的实现原理,编程实践内容较少,该教材定位为入门级大数据教材,以“构建知识体系、阐明基本原理、开展初级实践、了解相关应用”为原则,旨在为读者搭建起通向大数据知识空间的桥梁和纽带,为读者在大数据领域深耕细作奠定基础、指明方向。教材系统论述了大数据的基本概念、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、大数据处理架构Spark、流计算、图计算、数据可视化以及大数据在互联网、生物医学和物流等各个领域的应用。
《大数据技术原理与应用》一书出版以后,获得了读者较高的认可,目前已经成为国内多所高校的大数据课程教材。与此同时,笔者在最近两年通过各种形式助力全国高校加快推进大数据课程建设,包括建设全国高校大数据课程公共服务平台、开展全国高校大数据公开课巡讲计划、组织全国高校大数据教学论坛、举办全国高校大数据课程教师培训交流班等。通过这些活动,笔者与全国高校广大大数据课程教师有了更深的接触和交流,也收集到了广大一线教师的核心教学需求。很多高校教师在高度肯定《大数据技术原理与应用》教材的同时,也提出了很多中肯的改进意见和建议,其中,有很多教师指出,应该加强大数据实践环节的训练,提供实验指导和综合案例。
为了更好地满足高校教学实际需求,笔者带领厦门大学数据库实验团队,开展了大量的探索和实践,并对实践材料进行系统整理,在此基础上编写了本教程。本教程侧重于介绍大数据软件的安装、使用和基础编程方法,并提供大量实验和案例。由于大数据软件都是开源软件,安装过程一般比较复杂,也很耗费时间。为了尽量减少读者搭建大数据实验环境时的障碍,笔者在本书中详细写出了各种大数据软件的详细安装过程,可以确保读者顺利完成大数据实验环境搭建。
〖2〗〖4〗大数据基础编程、实验和案例教程前言〖3〗本书共13章,详细介绍系统和软件的安装、使用以及基础编程方法。第1章介绍大数据的关键技术和代表性软件,帮助读者形成对大数据技术及其代表性软件的总体性认识。第2章介绍Linux系统的安装和使用方法,为后面其他章节的学习奠定基础。第3章介绍分布式计算框架Hadoop的安装和使用方法。第4章介绍分布式文件系统HDFS的基础编程方法。第5章介绍分布式数据库HBase的安装和基础编程方法。第6章介绍典型NoSQL数据库的安装和使用方法,包括键值数据库Redis和文档数据库MongoDB。第7章介绍如何编写基本的MapReduce程序。第8章介绍基于Hadoop的数据仓库Hive的安装和使用方法。第9章介绍基于内存的分布式计算框架Spark的安装和基础编程方法。第10章介绍5种典型的可视化工具的安装和使用方法,包括Easel.ly、D3、魔镜、ECharts、Tableau等。第11章介绍数据采集工具的安装和使用方法,包括Flume、Kafka和Sqoop。第12章介绍一个大数据课程综合实验案例,即网站用户购物行为分析。第13章通过5个实验让读者加深对知识的理解。
本书面向高校计算机和信息管理等相关专业的学生,可以作为专业必修课或选修课的辅助教材。本书是《大数据技术原理与应用》的“姊妹篇”,可以作为《大数据技术原理与应用》的辅助配套教程,两本书组合使用,可以达到更好的学习效果。此外,本书也可以和市场上现有的其他大数据教材配套使用,作为教学辅助用书。
本书由林子雨执笔。在撰写过程中,厦门大学计算机科学系硕士研究生谢荣东、罗道文、邓少军、阮榕城、薛倩、魏亮、曾冠华等做了大量辅助性工作,在此,向这些同学的辛勤工作表示衷心的感谢。
本书的官方网站是http://dblab.xmu.edu.cn/post/bigdatapractice/,免费提供了全部配套资源的在线浏览和下载,并接受错误反馈和发布勘误信息。同时,在学习大数据课程的过程中,欢迎读者访问厦门大学数据库实验室建设的国内高校首个大数据课程公共服务平台(http://dblab.xmu.edu.cn/post/bigdata�瞭eaching�瞤latform/),该平台为教师教学和学生学习大数据课程提供讲义PPT、学习指南、备课指南、上机习题、技术资料、授课视频等全方位、一站式免费服务。
本书在撰写过程中,参考了大量网络资料,对大数据技术及其典型软件进行了系统梳理,有选择地把一些重要知识纳入本书。由于笔者能力有限,本书难免存在不足之处,望广大读者不吝赐教。
林子雨2017年2月于厦门大学计算机科学系数据库实验室