文章目录
大数据CloudSim应用实践:基于CloudSimExamle6.java修改(超详细教程)
1 准备
1.1 操作系统
本实验在Windows 7 或Windows 10系统运行均可。
1.2 软件
cloudsim-3.0.3.zip;
commons-math3-3.2-bin.zip;
jdk-8u152-windows-x64.exe;
eclipse-jee-neon-3-win32-x86_64
我整理的关于CloudSim所用软件已上传网盘,需要自取:
链接:https://pan.baidu.com/s/1vWLtY803pqN5hz4NlDG2FA?pwd=8888
提取码:8888
2 安装JDK
2.1 安装JDK
不会安装JDK配置环境的可以看我之前整理的博客,一步步按照教程里面来就行:
JDK的环境配置(超级详细教程)_jdk环境配置-CSDN博客
3 配置Eclipse集成开发环境
3.1 启动Eclipse
运行…\eclipse-jee-neon-3-win32-x86_64\eclipse目录下的eclipse.exe可执行文件。
注意:首次运行eclipse会提示选择WorkSpace,及工作目录,用于存放项目文件,根据自己情况选择一个文件夹即可。
3.2 配置Java运行时环境JRE
在上一步打开的Eclipse集成开发环境窗口中,点击菜单“Window”à“Preferences”菜单项:
打开“Preferences”对话框:
Java安装路径:C:Program FilesJavajdk1.8.0_301
在“Preferences”窗口中点击“Java”左侧箭头,再点击其下方弹出的“Installed JREs”的左侧箭头(下面这幅图可能跟你们不一样,因为我当前这一步已经设置过,故“Installed JRE”中会有内容,你们的应该是没有内容):
点击右侧窗口中的“Add”按钮,打开“Add JRE”窗口。
选择“Standard VM”项,点击下方“Next”按钮,在接下来的对话框中点击“Directory”按钮:
在弹出的“浏览文件夹”对话框中选择Java运行时环境所在的路径C:Program FilesJavajre1.8.0_152(视自己JDK具体安装路径而定):
点击“确定”按钮返回。
4 创建Java项目
4.1 创建项目
在Eclipse集成开发窗口中,单击“File”à“New”à“Java Project”,新建Java项目,命名为“CloudSim”:
一直点击“Next”或“Finish”按钮即可。
4.2 导入jar包
4.2.1 导入CloudSim开发包
4.2.1.1.1 解压CloudSim开发包
需要使用的CloudSim API在cloudsim-3.0.3.jar包中,该jar包可通过解压cloudsim-3.0.3.zip得到,位于解压后的…cloudsim-3.0.3jars文件夹下。
4.2.1.1.2 导入CloudSim开发包
在Eclipse中,在左侧树状结构中,右键单击“CloudSim”项目,选择“Build Path”à“Add External Archive”,导入cloudsim-3.0.3.jar。
4.2.2 导入math库
4.2.2.1.1 解压math库
因本项目中用到了math里面的类,需要引入commons-math3-3.2.jar这个库。此库通过解压commons-math3-3.2-bin.zip文件可以得到。
4.2.2.1.2 导入math库
在Eclipse中,右键单击“CloudSim”项目,选择“Build Path”à“Add External Archive”,导入commons-math3-3.2.jar。
4.3 运行测试程序
4.3.1 导入测试程序代码
CloudSim提供的实例程序放在CloudSimcloudsim-3.0.3examplesorgcloudbuscloudsimexamples目录下。
在以上examples文件夹中复制CloudSimExample6.java文件,在Eclipse中的“Package Explorer”树形结构中,展开“CloudSim” à“src”,右键点击“src”文件夹,在弹出的上下文菜单中选择“Paste”菜单,将CloudSimExample6.java复制到工程中。
4.3.2 修改错误
复制后CloudSimExample6.java文件显示效果及位置如下:
可以看出其位于“default package”默认包中。但注意上图中CloudSimExample6.java文件前面的图标左下角有个红色的“×”符号,意思是CloudSimExample6.java代码中有错误。接下来排除错误。
在Eclipse中双击CloudSimExample6.java文件,在右侧编辑窗口中打开它。
可以看到这条语句package org.cloudbus.cloudsim.examples;中有红色波浪下划线,表明有语法问题。鼠标放到该语句上,显示:
点击2行蓝色文字中的第一行,“Move ‘CloudSimExample6.java to package org.cloudbus.cloudsim.examples’”,表示将CloudSimExample6.java文件放到Eclipse窗口左面的树形结构的org.cloudbus.cloudsim.examples包中。这样代码中原先带红色波浪线的语句就与实际的包(代码的存放位置)相符,其错误得到了修改。修改之后的效果如下:
导入包之后发现错误已经解决:
没有报错
包的存放文件夹与包的对应关系(此图仅为帮助理解):
4.3.3 运行
保证右侧编辑区当前活动(当前正在编辑状态)的窗口为CloudSimExample6.java。
点击工具栏上的绿色三角形按钮àRun AsàJava Application Alt+Shift+X,J,运行程序,如图:
5 数据中心仿真实例
5.1 导入实例代码
1.将我随本Word文档打包的CloudSimExampleA.java代码导入项目,具体步骤同4.3.1,不同的是由原来导入CloudSimExample6.java文件,改为现在导入CloudSimExampleA.java文件。
2.遵照4.3.2步骤将CloudSimExampleA放到org.cloudbus.cloudsim.examples包中,如下图。
5.2 运行
步骤同4.3.3,不同的是现在需要将CloudSimExampleA.java在右侧编辑区打开并处于活动状态(当前正在编辑状态)。
先右键Delete删除之前的CloudSimExample6.java.然后在Eclipse中的“Package Explorer”树形结构中,展开“CloudSim” à“src”,右键点击“src”文件夹,在弹出的上下文菜单中选择“Paste”菜单,将CloudSimExampleA.java复制到工程中。
点击工具栏上的绿色三角形按钮àRun AsàJava Application Alt+Shift+X,J,运行程序,如图:
CloudSimExampleA.java运行结果:
5.3 比较代码
可以查看CloudSimExampleA.java代码,是在CloudSimExample6.java的基础上根据教材的“11.3.2数据中心仿真实例”修改来的,具体修改的地方在CloudSimExampleA.java代码中都以“//”开始注释说明,可以跟CloudSimExample6.java比较异同,发现CloudSim的API使用规律。
关于CloudSimExampleA.java代码文件我已经上传到网盘了,需要可以自取:
链接:https://pan.baidu.com/s/1MM9mAAd_aP0XJnpWZU-X0g?pwd=6666
提取码:6666
关于CloudSim的API使用规律,具体包括以下几点:
- 建立仿真环境:在使用CloudSim API之前,需要先建立一个仿真环境。使用
CloudSim simulation = new CloudSim();
代码来创建一个仿真器。 - 创建数据中心:在CloudSim中,数据中心是处理虚拟机请求的地方。使用
Datacenter datacenter = createDatacenter("Datacenter_0");
代码创建一个数据中心,并设置数据中心的特性,例如架构、处理器数量和存储容量等。 - 创建虚拟机:创建虚拟机时,指定虚拟机的类型、处理器数量、内存和存储容量等参数。使用
Vm vm = createVm("Vm_0", 512, 1, 1000);
代码创建一个虚拟机。 - 创建任务:在CloudSim中,任务被定义为需要在虚拟机上执行的工作单元。使用
Cloudlet cloudlet = createCloudlet("Cloudlet_0", 1000, 1);
代码创建一个任务,并设置任务的长度、输入输出文件等参数。 - 运行仿真器:在完成仿真环境的配置后,运行仿真器并开始模拟云计算环境。使用
simulation.start();
代码来运行仿真器。 - 获取仿真结果:当仿真结束后,可以获取各种云计算策略的性能指标。例如,通过
List<Cloudlet> resultList = broker.getCloudletReceivedList();
代码获取每个任务的完成时间。
在使用CloudSim进行仿真时,根据具体的需求和场景选择合适的模型和参数,可以得到更准确的仿真结果。
结语
关注星川后续有时间精力会持续分享更多关于大数据领域方面的优质内容,感谢各位的喜欢与支持!
版权归原作者 星川皆无恙 所有, 如有侵权,请联系我们删除。