当前位置: 首页 > news >正文

从零开始部署CloudSim4.0云计算仿真平台

CloudSim是一个由Java语言编写的云计算仿真平台软件,提供给研究人员做仿真实验,由于本文主要介绍如何从0开始部署该平台软件,故此处不对CloudSim做详细介绍,如需对该平台进一步了解,请访问CloudSim官网。

本文将按以下结构对部署CloudSim进行描述:

1. 安装环境介绍

1.1 操作系统

1.2 所需工具

2. 安装过程

2.1 安装配置JDK环境

2.2 安装配置Maven环境

2.3 安装配置Eclipse

2.4 部署CloudSim

2.5 可能遇到的问题及其解决方案

2.6 运行CloudSim示例程序

1. 安装环境介绍

本教程是在Windows系统下对CloudSim进行部署,由于CloudSim是基于Java开发的,故而需要安装配置Java开发所需的JDK环境;此外,CloudSim所用到的外部类库Jar包是有Maven管理的,故而还需要安装配置Maven环境;为运行或基于CloudSim做二次开发,我们还需要Eclipse这样的IDE开发工具。

1.1 操作系统

本人使用的操作系统是64位 Windows 10 专业版,当然也可使用Linux进行部署,但方法不一样,此处仅以Windows 10为例进行介绍。


1.2 所需工具

为部署CloudSim,我们需要的工具有:JDK安装包,Maven安装包,Eclipse安装包,CloudSim源码。本人采用的版本分别为:JDK1.7(jdk-7u25-windows-i586.exe), Maven3.2.5(apache-maven-3.2.5-bin.zip),Eclipse jee Kepler(eclipse-jee-kepler-R-win32.zip),CloudSim4.0(cloudsim-cloudsim-4.0.zip)。若需以下安装包,可通过度盘获取,提取码为:g1fo


2. 安装过程

我们将以JDK1.7,Maven,Eclipse和部署调试CloudSim的顺序介绍整个部署过程。

2.1 安装配置JDK环境

JDK的安装与安装一般软件一样,没有什么特别的,主要就是要知道安装在什么路径下。运行jdk-7u25-windows-i586.exe,若无需修改安装路径,可一路点击“下一步”直到安装结束,安装结束后,jdk在64位系统下的默认安装的路径为C:/Program Files (x86)/Java下,若是32位的系统中,则安装在C:/Program Files/Java路径下,此路径需要在配置环境变量时使用。倘若希望看到图解修改安装路径的安装教程,可参考百度经验的JDK的安装与环境变量配置中的前三步。

本人的JDK安装在F:\configuration\Java路径下,如下图:


JDK安装完成后,我们需要进行环境配置。

第一步,右键“此电脑”打开“属性”,如下图:


打开的“属性”对话框如下图所示,在图中点击“高级系统设置”


打开“高级系统设置”对话框后,点击“环境变量”,在环境变量的窗口中,点击下方的“新建(W)...”


在弹出的“新建变量名”的对话框中,设置变量名为:JAVA_HOME,变量值为:jdk安装的路径,本人的路径为F:\configuration\Java\jdk1.7.0_25,如下图所示。


创建完JAVA_HOME的环境变量后,还需新建一个变量名为“CLASSPATH”的环境变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。注意此变量最前面有个“.;”,参考此博文的用户可直接复制冒号后加粗部分,本人配置如下图所示。


最后,在“PATH”变量中增加变量值的内容,注意,是“增加”,不是替换修改。双击“Path”这个环境变量,在弹出的窗口中点击“编辑文本”,如下图所示。


在弹出的对话框的“变量值”的文本框中的最后,加上 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; ,如下图所示。


至此,Java的JDK环境变量已经全部安装配置成功,若想测试是否安装配置成功,可在“运行”中打开cmd命令行,输入java -version命令查看安装的jdk版本信息,若出现jdk版本信息,则说明java的jdk环境基本配置成功,此处建议再运行一个java命令与javac命令。

“运行”可通过快捷键“Win+R”打开。


cmd命令行输入java -version如下图所示。


cmd命令行输入并运行java如下图所示。


cmd命令输入并运行javac如下图所示。


能成功运行上述3个java的命令则表示jdk的安装与环境变量的配置完全成功。

2.2 安装配置Maven环境

安装是指:解压apache-maven-3.2.5-bin.zip到一个目录下,配置是指:与jdk环境变量配置类似,增加一个MAVEN_HOME并在Path变量值中增加MAVEN_HOME的值。

本人将Maven解压在F:/configuration目录下,如下图所示:


增加MAVEN_HOME的环境变量,变量值为:Maven的解压路径+解压出文件夹的名字,如下图所示。


“Path”的变量值最后加上;%MAVEN_HOME%\bin; ,再次强调,此处的操作是加上,如下图所示。


测试Maven是否安装成功,则需在cmd命令行中运行mvn -v命令查看Maven的版本信息,若能查看成功则表示Maven安装成功,反之失败,如下图所示为成功的情况。


PS(可选操作):Maven是一个Jar包管理工具,意思是一个项目若通过Maven进行配置,即项目中有一个pom.xml的配置文件来配置项目所需的Jar包及其版本,在导入项目之初,Maven会自动从云端下载pom.xml中配置的所有Jar包,无需手工添加。但下载的Jar包默认会保存到C盘的用户目录下的.m2文件夹中,当项目所需Jar包较多或多个项目下载的Jar包累加起来后,会占用C盘大量的存储空间,若希望修改Maven下载Jar保存的默认路径,可参考修改Maven本地仓库路径的博文进行修改。

2.3 安装配置Eclipse

安装Eclipse是指:解压eclipse-jee-kepler-R-win32.zip到一个目录下,配置Eclipse是指:修改Eclipse的编码格式与配置Maven。

本人的C盘为固态硬盘,读写速度比其他盘快,故而本人将eclipse解压到了C盘下,如下图所示。


解压完成后,打开上图的eclipse文件夹,运行里面的eclipse.exe文件。双击运行“eclipse.exe”后,会出现Workspace选择的对话框,如下图所示。此处的工作空间是指,新建的项目及其代码将在该目录中保存,可通过“Browse...”按钮进行修改。


修改完工作空间后,点击上图的OK按钮即可进入Eclipse的欢迎界面,如下图所示。在主界面中,我们进入在顶部的功能选项中点击Window,选择最下方的Preferences,如下图所示。


有两处的编码格式需要修改为UTF-8,因为默认设置为GBK,而多数开源代码的编码格式都为UTF-8,若不修改可能出现乱码的问题。修改的第一个为:General->Workspace,如下图所示。


第二处为:General->Editors->Text Editors->>Spelling,如下图所示。


至此,Eclipse的基本配置已经完成,接下来我们要配置自己安装的Maven到Eclipse中,同样在Preferences选项中,找到Maven->Installations,如下图所示。点击“Add...”按钮,选择我们安装在本地的Maven的路径,本人的为F:\configuration\maven 3.2.5,完成后即可看见在下图中的External的Maven路径。


PS(可选操作):倘若有修改Maven本地仓库路径的操作,即2.2 安装配置Maven环境的PS中的操作,则还需在Maven->User Settings中选择根据Maven本地仓库路径的博文修改的settings.xml文件,本人的配置如下图所示。


此外,本人在上图的F:\maven-repo\settings.xml中的配置如下图所示,根据此设置,本人Maven的本地仓库路径即为F:\maven-repo,通过Eclipse中Maven下载的Jar包都会保存在此目录中。


2.4 部署CloudSim4.0

将cloudsim-cloudsim-4.0.zip复制到上一步骤中Eclipse所选的工作空间的目录下并解压,本人的为I:\Research

解压完成后,在Eclipse主界面左上角的File菜单选中中选择“Import...”,如下图所示。


再弹出的对话中,选择“Maven”->"Existing Maven Projects"并点击“Next”,如下图所示。


在弹出的对话框中,点击右上角的“Browse...”按钮,选择工作空间下我们之前解压出来的clousdsim-cloudsim-4.0文件夹,确认后Maven会解析该项目并在Pojects中得到Maven项目的配置信息,如下图所示。根据下图一样的配置(不用修改任何信息),直接点击下方的“Finish”按钮。


点击完上图的“Finish”按钮后,Eclipse中配置的Maven会从Maven云端的库中下载CloudSim所需的Jar包,等待其进度完成后,即可在Eclipse左侧的Project Explorer中的6个Project项目:cloudsim,cloudsim-cloudsim-4.0,cloudsim-examples,distribution,documentation和modules。若载入成功无措,则可看到如下图所示结果;若有错,在项目的左下角黄色感叹号的位置显示的会是一个红色的×。


2.5 可能出现的错误及其解决方案

在2.4最后导入成功后,项目上可能会出现红色×,如下图所示:


上图中有两种错误:

(1)是第一个红色框中的:jre库的版本默认选择了1.4以及使用的Java Complier版本为1.4(这类错误的主要特征之一是项目下含有src的source folder都有红色×);

(2)pom.xml这个xml文件验证通不过。

针对第(1)种错误,我们需要将jre库的版本改成1.7,以及Java Complier版本改成1.7即可解决问题。首先在项目上点击右键,选择Properties选项,如下图所示。



在弹出的对话框中,首先选择左侧的“Java Build Path”,在右侧“Libraries”标签卡中,选中第一项“JRE System Library[J2SE-1.4]”(此处说明了原本项目默认给了1.4版本的Java环境),我们需要通过右下方的“Edit”按钮对其进行修改,点击“Edit”按钮后会弹出一个对话框,在弹出对话框中,我们选中最后一项“Workspace default JRE”,工作空间默认的JRE为我们安装配置的JDK版本,即1.7。如上描述操作见下图。


JRE库的版本调整正确后,我们还需要修改Java Complier的版本,因此在最左侧的菜单列表中,我们还需要点选“Java Complier”选项,详情见下图(切换过去前会弹出一个对话框让你Apply当前JRE库版本更新的操作,直接选择OK即可)。修改Java Complier版本的操作即对“Complier comliance level”右侧的下拉选项中选中1.7,如下图所示。PS:若下面的“Use default compliance settings”前面没有打钩,请将钩打上,完成后保存即可解决第(1)种问题。


针对第(2)种问题,其实不需要修正也不影响工程运行,只是Eclipse对XML的验证规则不全或者不正确导致对它的识别有误,若需要解决,可参考“Eclipse怎么关闭XML文件的自动验证,让它不报叉号”进行修改。

2.6 调试运行CloudSim的Examples

双击打开cloudsim-examples中src/main/examples下的CloudSimExample1.java文件,在右侧即可看到该文件的源码,如下图所示。


在源码所在的区域点击鼠标右键,选择Run As->Java Application


即可在下方的Console区域中看到该Example运行的情况,如下图所示。


至此,CloudSim的部署与调试运行教程全部结束。

相关文章:

  • Ubuntu 16.04 64位 安装NVIDIA驱动 CUDA9.1和PyTorch
  • 从零开始部署Guns V4.0 (SpringBoot开源框架)教程
  • 云计算:数据中心之虚拟机
  • codeblocks不支持16位,“64位Windows不兼容”的问题
  • PTA 6-1 在一个数组中实现两个堆栈 (20分)
  • PTA 7-1 哈夫曼编码 (30分)
  • 哈夫曼编码的最优子结构性质
  • PTA jmu-ds-舞伴问题 (20分)
  • 如何学习编程?如何学号C语言?编程学习网站汇总
  • PTA 银行排队问题之单窗口“夹塞”版(30分)
  • PTA 两个有序链表序列的合并
  • OJ 趣味程序设计_三色球问题
  • OJ 邻接表的相关操作
  • C语言基础排序算法(含动画演示) 插入排序、交换排序、冒泡排序、选择排序、归并排序、希尔排序、stl 排序、各种排序算法比较分析:
  • OJ 趣味程序设计_抢n游戏
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 30秒的PHP代码片段(1)数组 - Array
  • github从入门到放弃(1)
  • LeetCode算法系列_0891_子序列宽度之和
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Node项目之评分系统(二)- 数据库设计
  • pdf文件如何在线转换为jpg图片
  • Promise初体验
  • SQL 难点解决:记录的引用
  • supervisor 永不挂掉的进程 安装以及使用
  • tab.js分享及浏览器兼容性问题汇总
  • Web标准制定过程
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 走向全栈之MongoDB的使用
  • 如何正确理解,内页权重高于首页?
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • # 数论-逆元
  • #if #elif #endif
  • $.each()与$(selector).each()
  • (4) PIVOT 和 UPIVOT 的使用
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (转)EOS中账户、钱包和密钥的关系
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .java 9 找不到符号_java找不到符号
  • .jks文件(JAVA KeyStore)
  • .NET 4.0中的泛型协变和反变
  • .Net Remoting常用部署结构
  • .NET 设计模式初探
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 使用反射注册事件
  • .NET多线程执行函数
  • .net通用权限框架B/S (三)--MODEL层(2)