大数据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(如果已安装)࿱…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
