曾楠嵘
2019/1/16
基于
Hadoop&Spark
的关联规则算法
实践总结报告
第 Ⅰ 页 共 Ⅰ 页
目 录
1 实践目的及内容 ..........................................................................................................................................1
1.1 实践目的 ..........................................................................................................................................1
1.2 实践内容 ..........................................................................................................................................1
2 实践环境及工具 ..........................................................................................................................................1
2.1 实践环境 ..........................................................................................................................................1
2.2 实践工具 ..........................................................................................................................................2
3 实践步骤 .......................................................................................................................................................2
3.1 集群搭建 ..........................................................................................................................................2
3.2 Hadoop&Spark 环境搭建 .............................................................................................................3
3.2.1 Hadoop 部署 ......................................................................................................................3
3.2.2 Spark 部署 ........................................................................................................................4
3.3 程序编写 ..........................................................................................................................................4
3.3.1 语言选择 ............................................................................................................................4
3.3.2 关联规则算法选择 .........................................................................................................5
3.3.3 关键代码 ............................................................................................................................5
3.3.4 调试运行 ............................................................................................................................5
4 测试结果及故障模拟 ................................................................................................................................5
4.1 测试结果 ..........................................................................................................................................5
4.2 故障模拟 ..........................................................................................................................................6
4.2.1 故障一 ................................................................................................................................6
4.2.2 故障二 ................................................................................................................................7
4.2.3 故障三 ................................................................................................................................7
5 问题与解决 ...................................................................................................................................................8
5.1 问题一 ..............................................................................................................................................8
5.2 问题二 ..............................................................................................................................................8
5.3 问题三 ..............................................................................................................................................9
6 总结 .................................................................................................................................................................9
7 参考文章 .................................................................................................................................................... 10
7.1 集群搭建相关 ............................................................................................................................. 10
7.2 关联规则相关 ............................................................................................................................. 10
7.3 Scala 相关 ................................................................................................................................... 10
1 / 10
1 实践目的及内容
1.1 实践目的
此次实践主要目的在于,希望通过亲身实践,加深自己对 Hadoop、Spark
两类大数据工具的理解,熟悉其从集群部署到运作的基本流程,了解 FPGrowth
算法的基本原理,掌握算法在关联规则中的基本应用,为日后的大数据学习积
累经验。
1.2 实践内容
⚫ 搭建 Linux 系统,部署集群;
⚫ 编写 scala 代码,使用 spark 对 Groceries 购物数据进行关联规则的
分析;
⚫ 模拟故障,分析 spark 运行情况;
2 实践环境及工具
2.1 实践环境
本次实践主要在个人笔记本电脑与 INTEL NUC 中进行。为方便操作,我在
个人笔记本的 Windows 系统中开放 Wifi 热点,NUC 中的 Linux 系统通过 wifi
连接,可与我的 windows 电脑处于同一模拟的局域网内,这样我就可以在个人
笔记本中远程登陆 NUC 中的 Linux 集群。
两台机器的性能配置如图 2.1 所示。
图 2.1 实践机器性能配置图
关于实践中具体用到 Hadoop 与 Spark 相关版本如下:
⚫ Hadoop 3.1.1
⚫ JDK 1.8.0_191
⚫ Scala 集群 2.12.8;个人笔记本 2.11.12
2 / 10
⚫ Spark 2.4.0
2.2 实践工具
⚫ Xshell&Xftp:用于个人笔记本与 NUC 主机的控制操作及文件传输;
⚫ VNC:用于个人笔记本远程登陆 NUC(在实践环境中,对于远程登陆时
的命令输入及图形界面操作的延时,VNC 的操作较比 Xshell 要相对流
程些,所以选择 VNC 做为主要的远程操作工具);
⚫ Virtual Machine Manager:管理 Linux 中的各 KVM 虚拟机;
⚫ FinalShell: 用于 NUC 主机与各个虚拟机的控制操作及文件传输;
3 实践步骤
实践步骤主要可分为集群搭建、Hadooph&Spark 环境搭建、程序编写、调
试运行、故障模拟五大部分。下面为各部分的具体说明。
3.1 集群搭建
在实践的集群搭建中,是部署的 7 台服务器,一台用作 nameNode,充当
master 角色,其余 6 台用作 dataNode,充当 worker 角色。由于对 secondary
NameNode 的相关知识还未进一步接触,暂时未搭建。
根据 NUC 的性能配置情况,对于 nameNode 与各 worker 的性能分配如下:
⚫ master: memory 2G; storage 30G;
⚫ worker:memory 1.5G; storage 30G;
当集群全部运作时,NUC 主机的资源分配情况如图 3.1 所示。
图 3.1 NUC 主机资源分配情况