高性能计算与云计算实验三报告
下载后可任意编辑 高性能计算与云计算 实验报告 ——Map/Reduce编程 学 院: 计算机科学与工程学院 班 级: 计算机软件3班 学生姓名: 钟鑫旺 学 号: 202430621083 指导老师: 胡金龙、董守斌 提交日期: 2024.1.4 1. 实验目的 本实验的目的是通过练习掌握Map/Reduce编程的知识和技巧: 1) 熟悉建立分布式高性能计算平台Hadoop的基本步骤 2) 掌握用Map/Reduce编写并行计算程序的基本方法 3) 了解Map/Reduce计算程序在Hadoop下的运行和调试机制 2. 实验要求 分组完成实验内容(2~4个人): 1) 计算平台搭建 2) 程序设计及实现 3) 回答实验中提出的问题; 4) 结果分析 随实验报告,附代码、程序说明以及运行结果。 3. 实验内容 基于Hadoop平台通过并行计算解决串匹配的问题。 4. Hadoop计算平台搭建 (1)以同组同学的多台计算机搭建一个完全分布式的Hadoop计算平台。 (2)在搭建的平台上运行WordCount程序,输出结果。 实验原理: Hadoop 的最常见用法之一是 Web 搜索。虽然它不是唯一的软件框架应用程序,但作为一个并行数据处理引擎,它的表现非常突出。Hadoop 最有趣的方面之一是 Map and Reduce 流程,它受到Google开发的启发。这个流程称为创建索引,它将 Web爬行器检索到的文本 Web 页面作为输入,并且将这些页面上的单词的频率报告作为结果。然后可以在整个 Web 搜索过程中使用这个结果从已定义的搜索参数中识别内容。 最简单的 MapReduce应用程序至少包含 3 个部分:一个 Map 函数、一个 Reduce 函数和一个 main 函数。main 函数将作业控制和文件输入/输出结合起来。在这点上,Hadoop 提供了大量的接口和抽象类,从而为 Hadoop应用程序开发人员提供许多工具,可用于调试和性能度量等。 MapReduce 本身就是用于并行处理大数据集的软件框架。MapReduce 的根源是函数性编程中的 map 和 reduce 函数。它由两个可能包含有许多实例(许多 Map 和 Reduce)的操作组成。Map 函数接受一组数据并将其转换为一个键/值对列表,输入域中的每个元素对应一个键/值对。Reduce 函数接受 Map 函数生成的列表,然后根据它们的键(为每个键生成一个键/值对)缩小键/值对列表。 5. Map/Reduce编程 基于MapReduce实现以下任意一个并行算法: (1)并行串匹配算法 (2)平行排序算法 (3)最短路径算法 (4)并行矩阵乘法(简单并行算法、cannon算法、DNS算法等) 实验调优(可选) [1] 选取不同个数和不同大小的实验文本,多次运行你的程序,记录不同的运行时间,并画成图表; [2] 计算不同情形下的加速比。 完成关于本次课程设计的综合实验报告,并回答以下问题: a) 说明并行算法设计的基本思路,并列出参考文献。 b) 指出你如何通过系统配置,设置workers及任务调度,将问题分布到多个节点上运行。 c) 谈谈对Map/Reduce编程的一些认识和在本实验中遇到的问题等。 问题回答要包括在实验报告中。也就是说,最终需要提交的实验报告要有详细实验步骤(包括必要的截图)、源代码、运行和结果输出(截图)以及问题回答。 6. 【实验方案设计】 3.1 Hadoop计算平台搭建 (1)以同组同学的多台计算机搭建一个完全分布式的Hadoop计算平台。 (2)在搭建的平台上运行WordCount程序,输出结果。 3.2 Map/Reduce编程 基于MapReduce实现以下任意一个并行算法: (1)并行串匹配算法 (2)平行排序算法 (3)最短路径算法 (4)并行矩阵乘法(简单并行算法、cannon算法、DNS算法等)通过并行计算解决串匹配的问题 【实验过程】(实验步骤、记录、数据、分析) ① 开3个虚拟机,它们的主机名分别为xiaominghupan,node01,node02 ② 在/etc/hosts追加如下内容 192.168.3.100 xiaominghupan 192.168.3.101 node01 192.168.3.102 node02 ③ 配置ssh免密码登陆 ④ 下载hadoop-1.2.1.tar.gz ⑤ 解压hadoop-1.2.1.tar.gz tar -zxvf hadoop-1.2.1-bin.tar.gz –C /opt ⑥ 修改conf/hadoop-env.sh,添加JAVA_HOME变量 vi conf/hadoop-env.sh 添加export JAVA_HOME=/usr/lib/jvm/java ⑦ 执行hadoop命令 ./bin/Hadoop 说明安装正常 ⑧ 在xiaominghupan主机上配置conf/masters为如下内容 xiaominghupan ⑨ 在3台主机上都配置conf/slaves为如下内容 xiaominghupan node01 node02 ⑩ 在3台主机上都配置core-site.xml,增加以下属性 fs.default.name hdfs://master:9000 ------定位文件系统的NameNode ⑪ 配置hdfs-site.xml,增加以下属性 dfs.replication 3 ⑫ 配置mapred-site.xml,增加以下属性 mapred.job.tracker master:9001 ⑬ 格式化hdfs hadoop namenode -at ⑭ 启动hadoop bin/start-all.sh ⑮ 运行WordCount 在eclipse中新建一个WordCount项目,把 hadoop-1.2.1/src/examples/org/apache/hadoop/examples/