大数据CloudSim应用实践:基于CloudSimExamle6.java修改(超详细教程)
文章目录
- 大数据CloudSim应用实践:基于CloudSimExamle6.java修改(超详细教程)
- 1 准备
- 1.1 操作系统
- 1.2 软件
- 2 安装JDK
- 2.1 安装JDK
- 3 配置Eclipse集成开发环境
- 3.1 启动Eclipse
- 3.2 配置Java运行时环境JRE
- 4 创建Java项目
- 4.1 创建项目
- 4.2 导入jar包
- 4.2.1 导入CloudSim开发包
- 4.2.1.1.1 解压CloudSim开发包
- 4.2.1.1.2 导入CloudSim开发包
- 4.2.2 导入math库
- 4.2.2.1.1 解压math库
- 4.2.2.1.2 导入math库
- 4.3 运行测试程序
- 4.3.1 导入测试程序代码
- 4.3.2 修改错误
- 4.3.3 运行
- 5 数据中心仿真实例
- 5.1 导入实例代码
- 5.2 运行
- 5.3 比较代码
- 结语
大数据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进行仿真时,根据具体的需求和场景选择合适的模型和参数,可以得到更准确的仿真结果。
结语
关注星川后续有时间精力会持续分享更多关于大数据领域方面的优质内容,感谢各位的喜欢与支持!
相关文章:
大数据CloudSim应用实践:基于CloudSimExamle6.java修改(超详细教程)
文章目录 大数据CloudSim应用实践:基于CloudSimExamle6.java修改(超详细教程)1 准备1.1 操作系统1.2 软件 2 安装JDK2.1 安装JDK 3 配置Eclipse集成开发环境3.1 启动Eclipse3.2 配置Java运行时环境JRE 4 创建Java项目4.1 创建项目4.2 导入jar…...
完美解决浏览器的输入框自动填入时,黄色背景问题,以及图标被遮住问题(最新)
用图说话↓↓↓ 首先用代码解决黄色背景问题,box-shadow颜色设置透明即可,延时渲染时间可修改为更久 :deep(input:-webkit-autofill) {box-shadow: 0 0 0 1000px transparent !important;/* 浏览器记住密码的底色的颜色 */-webkit-text-fill-color: #f…...
C 语言中的头文件
1、C 语言中 include <> 与include “” 的区别? #include < > 引用的是编译器的类库路径里面的头文件。 #include " " 引用的是你程序目录的相对路径中的头文件,如果在程序目录没有找到引用的头文件则到编译器的类库路径的目录下找该头文…...
数据结构复杂度
文章目录 一. 数据结构前言1.1 数据结构1.2 算法 二. 算法效率2.1 时间复杂度2.1.1 T(N)函数式2.1.2 大O的渐进表示法 2.2 空间复杂度2.3 常见复杂度比较 2.3 复杂度算法题1.2. 一. 数据结构前言 1.1 数据结构 什么是数据结构呢?打开一个人的主页,有很…...
MySQL基础篇
一、MySQL概述 MySQL是一个数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle推出的产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(关系数据库管理系统) ,…...
详解C++中的四种强制转换reinterpret_cast / const_cast / static_cast / dynamic_cast
目录 1.reinterpret_cast 2.const_cast 3.static_cast 4.dynamic_cast 例子 C中存在四种强制转换:reinterpret_cast / const_cast / static_cast / dynamic_cast 1.reinterpret_cast 格式 : reinterpret_cast<type_id> (expression) 用于类型…...
Word中加载Mathtype后粘贴复制快捷键(Ctrl+C/V)不能使用
操作环境 windows 11操作系统 word版本2021 mathtype版本7.4 这个问题只出现在word中,在excel和ppt中都不存在这个问题,而且之前在另一台电脑中使用word2016版本并没有这种问题的,然后网上搜了一下有不少人有这种问题,word直接取…...
Linux硬件-bios
作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 在Linux的服务器领域,我们能接触的到硬件其实挺多的,但是在这些硬件我们根据我们的需要去使用的时候…...
VisionPro二次开发学习笔记12-使用CogToolGroup控件进行图像检测
本示例演示了如何通过图像数据库使用 CogImageFileTool,并将其放入 CogToolGroup 中,对于数据库中的每个图像运行一次检测. 当用户按下 RunTest 按钮时,程序执行以下操作: 如果工具组中没有 CogImageFileTools,它将显…...
mfc140u.dll丢失的科学修复手段,简单又方便的mfc140u.dll修复
遇到 "缺失 mfc140u.dll 文件" 的提示时可能会让你疑惑,但不用担心。这个文件是 Microsoft Visual C 2015 的重要组成部分,对运行特定程序非常关键。幸运的是,解决这一问题并不难。本文将简单指导你如何恢复或修复丢失的 mfc140u.d…...
RabbitMQ、Kafka对比(超详细),Kafka、RabbitMQ、RocketMQ的区别
文章目录 一、kafka和rabbitmq全面对比分析1.1 简介1.2 kafka和rabbitmq全面对比分析1.3 影响因素 二、RabbitMQ、Kafka主要区别2.1 详解/主要区别2.1.1 设计目标和适用场景2.1.2 架构模型方面2.1.3 吞吐量和性能2.1.4 消息存储和持久化2.1.5 消息传递保证2.1.6 集群负载均衡方…...
【案例35】销售订单公式问题导致系统宕机
问题现象 经过顾问反馈,发现系统现在出现卡顿,NCC一直在转圈。 问题分析 远程排查,发现在服务器从机上defalut-7发生了内存溢出,宕机。 生成了宕机日志。分析结果如下: 销售订单相关操作,vo太多了导致…...
编程-设计模式 4:建造者模式
设计模式 4:建造者模式 定义与目的 定义:建造者模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。目的:该模式主要用于创建复杂对象时,这些对象的创建过程可能涉及多个步骤,…...
百度文心一言API调用,千帆大模型获取API Key和API Secret图解
百度文心一言大模型调用教程,获取文心一言API Key和API Secret的方法,码笔记mabiji.com告诉大家在百度智能云的千帆大模型平台创建应用,即可获取文心一言的API Key和API Secret,详细流程如下: 1、在百度智能云的千帆大…...
kafka下载|安装
1、下载kafka https://kafka.apache.org/downloads 2、安装kafka 解压下载的kafka安装包即可 tar -xvf kafka_2.13-3.7.0.tgz -C /usr/local/3、查看kafka目录 bin目录:存放了脚本 config目录:主要存放了配置文件...
贪心算法part03
134 加油站 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行…...
以树莓集团的视角:探索AI技术如何重塑数字媒体产业发展
在科技日新月异的今天,AI技术如同一股不可阻挡的潮流,正深刻改变着我们的世界,尤其是数字媒体产业发展。作为数字产业生态链的杰出建设者,树莓集团始终站在时代前沿,积极探索AI技术如何为数字媒体产业注入新活力。 在树…...
package.json的 和 的区别,以及|| 和 | 的区别
在 package.json 文件中的 scripts 字段里,&& 和 & 用于连接不同的命令,它们的区别在于命令执行的方式和效果: &&: 用于串联两个命令,第一个命令成功(退出码为 0)后&#x…...
Wireshark_DNS_v7.0
Wireshark_DNS_v7.0 一、 nslookup 前置 nslookup 是一个网络命令行工具,用于查询域名系统(DNS)中的域名解析记录。通过使用 nslookup,你可以获取某个域名的IP地址,或者获取与某个IP地址关联的域名信息。 查看域名…...
阿里云的CentOS系统上安装Docker
在阿里云的CentOS系统上安装Docker的详细步骤如下: 一、前置条件 确保系统内核版本:Docker要求CentOS系统的内核版本高于3.10。你可以通过执行uname -r命令来查看当前系统的内核版本。卸载旧版本的Docker(如果已安装)࿱…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
