tag 标签: 新版

相关资源
  • 所需E币: 0
    时间: 2024-5-29 11:05
    大小: 3.26KB
    上传者: 开心就很好了
    一、什么是OpenCVOpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉和机器学习软件库。它由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV提供了大量的计算机视觉、图像处理和模式识别的算法,包括实时图像处理、视频分析、特征检测、目标跟踪、人脸识别、物体识别、图像分割、光流法、立体视觉、运动估计、机器学习和深度学习等。OpenCV是一个跨平台的库,支持多种操作系统,包括Linux、Windows、Android、MacOS和iOS等。它使用C++编写,同时也提供了Python、Java、MATLAB等语言的接口,方便不同编程语言的开发者使用。由于OpenCV的开源性和跨平台性,它已经成为计算机视觉领域最受欢迎的库之一,广泛应用于工业检测、医学影像处理、智能交通系统、安防监控系统、机器人视觉、游戏开发等领域。OpenCV的设计初衷是实现计算机视觉的自动化,帮助计算机去理解我们的世界,以便自动完成一些基本的任务。它提供了一系列的算法和工具,使得开发者可以更加便捷地实现各种计算机视觉应用。同时,OpenCV也支持多种硬件加速技术,如Intel的IPP和GPU加速,使得计算机视觉应用的性能得到了极大的提升。二、OpenCV4软件特性OpenCV4官方版是一款开源的跨平台计算机视觉库。OpenCV4最新版软件兼容性强,支持Linux、Windows、MacOS等多种操作系统,适用于机互动、物体识别、运动跟踪、图像分割等领域。OpenCV4软件内置了Python、MATLAB、Ruby等语言的接口,用户能够轻松的使用和修改代码。三、opencv主要模块calib3d:该模块由相机校准(calibration)和三维重建(3d)两个部分组成,主要用于相机标定与三维视觉等;core:OpenCV的内核模块,定义了基础数据结构与基础计算;dnn:该模块主要用于深度学习推理部署,不支持模型训练;features2d:该模块主要用于特征点处理,例如特征点检测与匹配等;flann:FLANN为快速最近邻算法(FastLibraryforApproximateNearestNeighbors)的缩写,该模块包含快速近似最近邻搜索和聚类等功能;gapi:该模块对图像处理算法做了加速处理,不属于OpenCV的功能模块;highgui:该模块用于创建图像化界面操作,例如创建和操作图像显示窗口、鼠标与键盘事件处理,进度条等图像化交互操作;imgcodecs:该模块负责图像文件读写,如图像读取与保存;imgproc:该模块是OpenCV图像处理最重要的模块,主要功能如图像滤波、图像几何变换、直方图操作等;ml:该模块为机器学习模块,包含常见的机器学习算法,如支持向量机和随机森林等;objdetect:该模块主要用于图像目标检测,例如Haar特征检测等;photo:该模块主要负责照片处理,如照片修复和去噪等;stitching:该模块负责图像拼接,功能包括图像特征点寻找与匹配等图像拼接技术;video:该模块用于视频分析,如运动估计、背景分离等;videoio:该模块负责视频读写,主要视频文件的读取和写入。四、opencv4比opencv3多了哪些OpenCV4相较于OpenCV3,主要增加了对SIFT与SURF的支持、改进了DNN模块、增加了对特定网络结构的支持、新增了DNN例程、以及功能提升。对SIFT与SURF的支持:在OpenCV3中,SIFT与SURF的API调用文件是包含在扩展模块中的。而在OpenCV4中,如果想要使用SIFT与SURF,需要从源代码中通过CMake编译生成Python版本的安装包。DNN模块的改进:OpenCV4对DNN模块进行了改进,包括:增加了对ONNX中LSTM、Broadcasting、Algebraoverconstants、Slicewithmultipleinputs的支持。增加了对DarkNet中groupedconvolutions、sigmoid、swish、scale_channels的支持。新增了对MobileNetV3-SSD目标检测网络的支持。改进了对TensorFlow、Darknet和ONNX模型导入的功能。新增的DNN例程:人体解析(服饰分割)例程Clothespartssegmentation。DaSiamRPN目标跟踪例程,该算法出自中科院和商汤科技ECCV2018的论文Distractor-awareSiameseNetworksforVisualObjectTracking。功能提升:imgproc模块中的霍夫变换进行圆检测的HoughCircles()函数新增了HOUGH_GRADIENT_ALT实现,显著提高了圆检测的召回率和精度。这些改进和新增功能使得OpenCV4在计算机视觉领域的应用更加广泛和高效。五、opencv配置配置OpenCV环境主要涉及下载、安装、环境变量设置、以及在VisualStudio中添加必要的目录和依赖项。以下是详细的步骤:1、下载和安装OpenCV:访问OpenCV官网,下载适合Windows版本的OpenCV。运行下载的exe文件进行安装2、环境变量设置:在系统属性的高级设置中,进入环境变量设置。在系统变量中,找到并编辑Path变量,添加OpenCV的路径。对于64位系统,通常需要添加的路径是opencv\build\x64\vc16\bin和opencv\build\bin。3、VisualStudio中添加目录和依赖项:打开VisualStudio,创建一个新的C++项目。在项目属性中,添加包含目录(IncludeDirectories),库目录(LibraryDirectories),以及必要的静态和动态链接库。4、测试配置:创建一个C++源文件,编写简单的代码来测试摄像头读取或图像显示功能。如果程序能够正确运行并显示图像或视频流,则说明OpenCV环境配置成功。这些步骤涵盖了从下载安装到环境配置的整个过程,确保在配置时注意区分Debug和Release模式下的不同设置,以及根据具体的OpenCV版本调整路径和文件名。
  • 所需E币: 0
    时间: 2024-5-28 19:38
    大小: 2.46KB
    当下,同城代驾服务越来越受到人们的青睐。为了满足市场需求,许多企业开始开发智能调度系统,以提高服务效率和用户体验。本文将介绍如何搭建一个智能调度系统,并以同城代驾小程序的开发为例进行详细教学。一、技术要求1、平台选择当前主流的平台有iOS和Android,开发者需要根据目标用户的偏好和市场占有率做出选择。同时,还需要考虑平台的开发成本和技术难度等因素。2、功能设计代驾app软件需要具备一些基本功能,如注册登录、订单管理、定位导航等。同时还可以考虑增加一些创新的功能,如在线支付、评价系统等,以提升用户体验和竞争力。3、安全保障代驾服务涉及到用户的个人信息和支付信息,安全性至关重要。在软件开发过程中,需要加强安全保障措施,如数据加密、身份验证等,以保护用户的隐私和安全。二、用户体验1、界面设计代驾app软件的界面设计要简洁明了,符合用户的使用习惯和视觉需求。合理的布局和颜色搭配,清晰的操作流程,能够提升用户的体验和满意度。2、易用性分析代驾app软件开发过程中,应注重易用性的考虑。例如,可以采用简洁明了的图标和按钮,提供明确的操作指引,减少用户的学习成本和操作困难,从而提高用户的使用效率和满意度。3、反馈机制代驾app软件应该提供及时的反馈机制,让用户能够随时了解订单的状态和司机的位置等信息。同时,还应该给用户提供反馈渠道,以便他们及时解决问题和提出建议。三、代驾小程序开发需要多少钱?代驾小程序最终的价格还是要看功能的,越复杂的功能越贵,几千到几万都有。上面推荐给大家的使用智能小程序搭建软件的方法,像上面那个代驾小程序的案例功能这么多的小程序,也就只需要千来块,性价比还是不错的。当然,不满足上面这些功能的老板们,可以选择专业定制,价格几万块但功能会更加全面。四、代驾APP开发有哪些好处1、对于代驾人员来说:代驾APP的开发无疑是为自己增加了客户来源,通过APP代驾人员无须担心车主因为醉酒而无法结算费用的问题。这样既可以保证自己的利益,又能获得更多的客户,不是一举两得吗?2、对于车主而言:代驾APP的到来无疑是为自己的安全带来了保障。让车主可以没有后顾之忧,可以畅饮开怀享受难得的团聚时光。3、对于相关部门来说:代驾APP的到来可以有效地降低交通事故发生率,提高行车安全意识,增强对法律法规的认知,从而更好地构建一个和谐社会。五、代驾app开发,你需要知道的一些技术!一.原生开发什么是原生开发?原生开发(NativeApp开发)就像盖房子,先打地基然后浇地梁、房屋结构、一砖一瓦、钢筋水泥、电路走向等,原生APP同理:通过代码从每个页面、每个功能、每个效果、每个逻辑、每个步骤全部用代码写出来,一层层,一段段全用代码写出来。传统的app是用H5或混合开发,成本不高,但是bug很多,兼容性不好,最直接的体现就是用户进入app十分不流畅,而且有时会发生卡顿、卡页面的现象。二.服务器服务器决定了app在高峰时会不会卡顿,是否流畅,如果服务器的稳定性和承载量不够高,就会出现用户不能良好的刷新页面,无法呼叫代驾,看起来是网络不稳,其实是服务器带不起来。三.长连接即时通讯模式长连接功能指的是代驾司机开展代驾业务时,能够让自己的移动定位实时显示在app界面,用户可以随时查看司机位置,而且都不会出现迟钝、不动的现象。
  • 所需E币: 0
    时间: 2023-12-21 11:36
    大小: 3.66KB
    一个完整的在线办公系统具备哪些功能:1、线下会议管理功能2、审批会议申请功能3、TRTC在线视频会议功能4、罚款模块5、请假管理6、报销管理那么,如何去开发这样一个在线办公的系统,这样的系统用到哪些技术才能实现?接下来,我将带着大家一步步来开发这样的办公系统。这个项目我用的技术有:SpringBoot2.4.1,SpringMVC5.3.1,MyBatis3.5.7,VUE3.0.3,ElementUIplus1.0.2。第一步,环境搭建数据库mysql我用的是8.0版本,使用Navicat作为MySQL的客户端,大家可以到网上下载Navicat安装文件。另外,强烈建议大家的操作系统要用Win10,不建议大家使用Win7或者Win11系统。安装客户端程序(RedisDesktopManager),如果是MacOS的用户,可以到软件商店中查找免费的Redis客户端软件。MongoDB的客户端,我们使用Navicat就可以,写上正确的连接信息就能连接上MongoDB。我们不需要向MongoDB导入数据,将来使用的过程中,MongoDB会积累业务数据。安装JDK,大家本地的JDK尽量使用1.8+的版本吧安装Maven环境,后端Java项目使用Maven构建,所以大家要在本地建立Maven环境第二步就是最关键的代码实战部分:用上了GROUP_CONCAT()函数,我们的SQL语句变成了下面的样子SELECTu.username,    d.dept_nameASdeptName,( SELECTGROUP_CONCAT(role_nameseparator",") FROMtb_role WHEREJSON_CONTAINS(u.role,CONVERT(id,CHAR)) )ASrolesFROMtb_useruJOINtb_rolerONJSON_CONTAINS(u.role,CONVERT(r.id,CHAR))LEFTJOINtb_deptdONu.dept_id=d.idWHERE r.role_name="超级管理员" 了解过SQL语句的各种语法之后,下面才是我们正式要写的SQL语句。<selectid="searchUserByPage"parameterType="HashMap"resultType="HashMap">  SELECT    DISTINCTu.id,    u.name,    u.sex,    u.tel,    u.email,    d.dept_nameASdept,    u.hiredate,    u.root,    u.status,    (SELECTGROUP_CONCAT(role_nameseparator",")FROMtb_roleWHEREJSON_CONTAINS(u.role,CONVERT(id,CHAR)))ASroles  FROMtb_useru  JOINtb_rolerONJSON_CONTAINS(u.role,CONVERT(r.id,CHAR))  LEFTJOINtb_deptdONu.dept_id=d.id  WHERE1=1  <iftest="name!=null">    ANDu.nameLIKE"%${name}%"  </if>  <iftest="sex!=null">    ANDu.sex=#{sex}  </if>  <iftest="role!=null">    ANDr.role_name=#{role}  </if>  <iftest="deptId!=null">    ANDd.id=#{deptId}  </if>  <iftest="status!=null">    ANDu.status=#{status}  </if>  LIMIT#{start},#{length}</select><selectid="searchUserCount"parameterType="HashMap"resultType="long">  SELECT     COUNT(DISTINCTu.id)  FROMtb_useru  JOINtb_rolerONJSON_CONTAINS(u.role,CONVERT(r.id,CHAR))  WHERE1=1  <iftest="name!=null">    ANDu.nameLIKE"%${name}%"  </if>  <iftest="sex!=null">    ANDu.sex=#{sex}  </if>  <iftest="role!=null">    ANDr.role_name=#{role}  </if>  <iftest="deptId!=null">    ANDu.dept_id=#{deptId}  </if>  <iftest="status!=null">    ANDu.status=#{status}  </if></select>在UserServiceImpl.java类中实现抽象方法。publicclassUserServiceImplimplementsUserService{  ……  @Override  publicPageUtilssearchUserByPage(HashMapparam){    ArrayList<HashMap>list=userDao.searchUserByPage(param);    longcount=userDao.searchUserCount(param);    intstart=(Integer)param.get("start");    intlength=(Integer)param.get("length");    PageUtilspageUtils=newPageUtils(list,count,start,length);    returnpageUtils;  }}在Vue的声明周期回调函数created()中调用了loadRoleList()和loadDeptList()函数,所以可以保证用户管理页面显示的时候,部门列表和角色列表的数据都是从数据库中查询得来的。<el-table  :data="dataList"  border  v-loading="dataListLoading"  @selection-change="selectionChangeHandle"  cell-style="padding:4px0"  style="width:100%;"  size="medium">  <el-table-columntype="selection"header-align="center"align="center"width="50"/>  <el-table-columntype="index"header-align="center"align="center"width="100"label="序号">    <template#default="scope">      <span>{{(pageIndex-1)*pageSize+scope.$index+1}}</span>    </template>  </el-table-column>  <el-table-columnprop="name"header-align="center"align="center"min-width="100"label="姓名"/>  <el-table-columnprop="sex"header-align="center"align="center"min-width="60"label="性别"/>  <el-table-columnprop="tel"header-align="center"align="center"min-width="130"label="电话"/>  <el-table-column    prop="email"    header-align="center"    align="center"    min-width="240"    label="邮箱"    :show-overflow-tooltip="true"  />  <el-table-columnprop="hiredate"header-align="center"align="center"min-width="130"label="入职日期"/>  <el-table-column    prop="roles"    header-align="center"    align="center"    min-width="150"    label="角色"    :show-overflow-tooltip="true"  />  <el-table-columnprop="dept"header-align="center"align="center"min-width="120"label="部门"/>  <el-table-columnprop="status"header-align="center"align="center"min-width="100"label="状态"/>  <el-table-columnheader-align="center"align="center"width="150"label="操作">    <template#default="scope">      <el-button        type="text"        size="medium"        v-if="isAuth(['ROOT','USER:UPDATE'])"        @click="updateHandle(scope.row.id)"      >        修改      </el-button>      <el-button        type="text"        size="medium"        v-if="isAuth(['ROOT','USER:UPDATE'])"        :disabled="scope.row.status=='离职'||scope.row.root"        @click="dimissHandle(scope.row.id)"      >        离职      </el-button>      <el-button        type="text"        size="medium"        :disabled="scope.row.root"        v-if="isAuth(['ROOT','USER:DELETE'])"        @click="deleteHandle(scope.row.id)"      >        删除      </el-button>    </template>  </el-table-column></el-table>在TbRoleDao.xml文件中,定义SQL用于查询角色分页数据。看上面的截图可知,在角色管理页面上,只有按照角色名字模糊查询。所以在SQL语句中,WHERE子句里面只有一个查询条件。由于在页面表格中要显示每个角色拥有的权限数量,而且tb_role表的permissions字段是JSON数组格式,所以我们统计数组的元素数量,就是该角色拥有的权限数量。恰好JSON_LENGTH()函数能获取JSON数组的长度,所以我就用在SQL语句中了。@Data@Schema(description="查询角色分页表单")publicclassSearchRoleByPageForm{  @Pattern(regexp="^[0-9a-zA-Z\\u4e00-\\u9fa5]{1,10}$",message="roleName内容不正确")  @Schema(description="角色名称")  privateStringroleName;  @NotNull(message="page不能为空")  @Min(value=1,message="page不能小于1")  @Schema(description="页数")  privateIntegerpage;  @NotNull(message="length不能为空")  @Range(min=10,max=50,message="length必须在10~50之间")  @Schema(description="每页记录数")  privateIntegerlength;}在TbDeptDao.xml文件中,定义SQL用于查询部门分页数据。看上面的截图可知,在部门管理页面上,只有按照部门名字模糊查询。所以在SQL语句中,WHERE子句里面只有一个查询条件。由于在页面表格中要显示每个部门拥有的员工数量,所以用了COUNT()汇总函数。publicclassDeptServiceImplimplementsDeptService{  ……  @Override  publicPageUtilssearchDeptByPage(HashMapparam){    ArrayList<HashMap>list=deptDao.searchDeptByPage(param);    longcount=deptDao.searchDeptCount(param);    intstart=(Integer)param.get("start");    intlength=(Integer)param.get("length");    PageUtilspageUtils=newPageUtils(list,count,start,length);    returnpageUtils;  }}在DeptController.java类中,定义Web方法,然后大家就可以在Swagger页面测试Web方法了。publicclassDeptController{……  @PostMapping("/searchDeptByPage")  @Operation(summary="查询部门分页数据")  @SaCheckPermission(value={"ROOT","DEPT:SELECT"},mode=SaMode.OR)  publicRsearchDeptByPage(@Valid@RequestBodySearchDeptByPageFormform){    intpage=form.getPage();    intlength=form.getLength();    intstart=(page-1)*length;    HashMapparam=JSONUtil.parse(form).toBean(HashMap.class);    param.put("start",start);    PageUtilspageUtils=deptService.searchDeptByPage(param);    returnR.ok().put("page",pageUtils);  }}本文到此告一段落,感谢大家的观看!
  • 所需E币: 0
    时间: 2023-12-18 10:38
    大小: 3.46KB
    上传者: 开心就很好了
    今天给大家讲讲关于SpringBoot2仿B站的一个项目,大家都知道,如今短视频成为了风口中的风口,但市场上极度缺乏视频业务开发的相关技术人才。本文将结合SpringCloud微服务架构+Springboot+JDK+Maven+VUE等技术,实现B站核心功能(视频流、弹幕流)+百万量级的高性能优化,从而帮助大家提升前端加后端技术水平,掌握架构设计思维及丰富解决方案。实现步骤使用Vue3提供的Provide/Inject组合,通过provide在App.vue中提供当前语言环境localeLanguage,代码片段如下所示://App.vue  <scriptsetuplang="ts">  importzhCnfrom'element-plus/lib/locale/lang/zh-cn'  importenfrom'element-plus/lib/locale/lang/en'  import{ref,provide}from'vue'  //显示引入provide    constlocale=ref(zhCn)  constlocaleLanguage=ref('')  functionchangeLang(language:any){   locale.value=language   localeLanguage.value=language.name  }    //提供当前语言环境localeLanguage  provide('localeLanguage',localeLanguage)    </script>然后再通过inject将其注入到home页面,将获取到的localeLanguage传入自定义的t函数中,代码片段如下所示://home/index.vue  <scriptsetuplang="ts">  import{useRoute}from'vue-router'  import{inject}from'vue' //显示引入inject  import{t}from'../../utils/internationalization'    //通过inject将localeLanguage注入,作为t函数的参数  constlocaleLanguage:string=inject('localeLanguage')||''  constroute=useRoute()  console.log(route.params)  constvalue1=''  </script>    <template>   <div>{{t(localeLanguage).home}}---{{t(localeLanguage).mine}}</div>   <el-date-pickerv-model="value1"type="date"placeholder="Pickaday"></el-date-picker>  </template>封装一个openStore(),使用indexedDB.open()方法返回一个IDBRequest对象,接着将这个对象上的三个事件分别放置进入:onsuccess、onerror、onupgradeneeded。onsuccess表示打开数据库成功的事件。onerror表示打开数据库失败的事件。onupgradeneeded是数据库升级事件,如果版本号更新,并且大于之前的版本号则进行数据库升级,该事件回调里面,会创建我们所需要的对象仓库,类似于关系型数据库中的表的概念。exportdefaultclassDB{ privatedbName:string//数据库名称 constructor(dbName:string){  this.dbName=dbName } //打开数据库 publicopenStore(storeName:string,keyPath:string,indexs?:Array<string>){  constrequest=window.indexedDB.open(this.dbName,2)  request.onsuccess=(event)=>{   console.log('数据库打开成功')   console.log(event)  }  request.onerror=(event)=>{   console.log('数据库打开失败')   console.log(event)  }  request.onupgradeneeded=(event)=>{   console.log('数据库升级成功')   const{result}:any=event.target   conststore=result.createObjectStore(storeName,{autoIncrement:true,keyPath})   if(indexs&&indexs.length>0){    indexs.map((v:string)=>{     store.createIndex(v,v,{unique:true})    })   }   store.transaction.oncomplete=(event:any)=>{    console.log('创建对象仓库成功')   }   console.log(event)  } }}Promise包装异步事务为了更好的获取indexedD事务中的返回结果,我们使用promise来包装一下上一小节indexedDB.ts中定义的几个方法:openStore、updateItem、deleteItem、getList、getItem。下面代码片段为getList() //查询所有数据 getList(storeName:string){  conststore=this.db.transaction(storeName).objectStore(storeName)  constrequest=store.getAll()  returnnewPromise((resolve,reject)=>{   request.onsuccess=(event:any)=>{    console.log('查询所有数据成功')    console.log(event.target.result)    resolve(event.target.result)   }   request.onerror=(event:any)=>{    console.log('查询所有数据失败')    console.log(event)    reject(event)   }  }) }使用@include指令来引入定义好的样式函数,该函数的三个参数可以根据传入的值来对flex布局进行自定义,默认值为:column、center、right,在footerCommon.scss中我们重新自定义了该样式函数,分别传入row、space-between、flex-start,代码片段如下://footerCommon.scss.common-footer{  border-top:1pxsolidrgb(235,235,235); .footer{  @includemain-wrapper;  @includelayout(row,space-between,flex-start);  padding:20px0;  li{   @includelayout;   h4{    font-weight:bold;   }   a{    margin-bottom:10px;    color:rgb(72,72,72);    text-decoration:none;    &:hover{     text-decoration:underline;    }   }  } }}getter类似与Vue中的computed计算属性,它的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算getters里可以处理一些array、object的查询、过滤、遍历、重构或者做一些字符拼接的操作,方便直接生成一些可以直接使用的数据。如下代码片段展示了如何在getter中进行过滤查询:exportconststore=createStore({   state:{   todos:[  //定义一个对象数组   {   id:1,   done:true   },   {   id:2,   done:false   }   ]   }   getters:{   doneTodosCount(){ //查询已完成的个数   returnstore.state.todos.filter(todo=>todo.done).length //返回值:1   }   }  })通过环境变量区分server.js中的一些代码片段,因为有些代码需要运行在开发环境,而有些代码需要运行在生产环境。本小节在server.js中一共对3个地方进行了环境区分,代码片段如下//server.jsif(!isProd){ //1.读取index.html template=fs.readFileSync(  path.resolve(__dirname,'index.html'),  'utf-8' ) //2.应用ViteHTML转换。这将会注入ViteHMR客户端, //  同时也会从Vite插件应用HTML转换。 //  例如:@vitejs/plugin-react-refresh中的globalpreambles template=awaitvite.transformIndexHtml(url,template) //3.加载服务器入口。vite.ssrLoadModule将自动转换 //  你的ESM源码使之可以在Node.js中运行!无需打包 //  并提供类似HMR的根据情况随时失效。 render=(awaitvite.ssrLoadModule('/src/entry-server.ts')).render}else{ //1.读取index.html template=fs.readFileSync(  path.resolve(__dirname,'dist/client/index.html'),  'utf-8' ) //3.加载服务器入口 render=require('./dist/server/entry-server.ts').render}
  • 所需E币: 0
    时间: 2023-10-19 10:35
    大小: 3.21KB
    上传者: 开心就很好了
    MK体系课-大数据工程师2023版(35周)分享下载,源码+PDF课件+电子手册+软件下载地址+接口数据集,资料齐全下载!想要学好大数据需掌握以下技术:1.Java编程技术2.Linux命令3.Hadoop4.Hive5.Avro与Protobuf6.ZooKeeper7.HBase8.phoenix9.Redis10.Flume11.SSM12.Kafka13.Scala14.Spark15.Azkaban16.flink下面我们就来学习一下HDFS中的一些常见的shell操作其实hdfs后面支持很多的参数,但是有很多是很少用的,在这里我们把一些常用的带着大家一块学习一下,如果大家后期有一些特殊的需求,可以试着来看一下hdfs的帮助文档直接在命令行中输入hdfsdfs,可以查看dfs后面可以跟的所有参数注意:这里面的[]表示是可选项,<>表示是必填项首先看第一个ls命令查看hdfs根目录下的内容,什么都不显示,因为默认情况下hdfs中什么都没有其实后面hdfs的url这一串内容在使用时默认是可以省略的,因为hdfs在执行的时候会根据HDOOP_HOME自动识别配置文件中的fs.defaultFS属性所以这样简写也是可以的实战:WordCount案例开发前面我们通过理论层面详细分析了单词计数的执行流程,下面我们就来实际上手操作一下。大致流程如下:第一步:开发Map阶段代码第二步:开发Reduce阶段代码第三步:组装Job在idea中创建WordCountJob类添加注释,梳理一下需求:需求:读取hdfs上的hello.txt文件,计算文件中每个单词出现的总次数hello.txt文件内容如下:helloyouhellome最终需要的结果形式如下:hello2me1you1
  • 所需E币: 1
    时间: 2023-7-10 14:57
    大小: 4.5MB
    上传者: 张红川
    新版电磁组参考设计方案第二版.pdf
  • 所需E币: 0
    时间: 2023-6-16 10:14
    大小: 2.78KB
    上传者: 开心就很好了
    分享课程——《新版Springboot3.0打造能落地的高并发仿12306售票系统》,23章完整版,2023年6月完结,提供源码和配word文档下载第1章课程介绍与学习指南第2章12306这个系统架构到底有多牛?第3章最新版的SpringBoot3&JDK9~17新特性详解第4章新版SpringCloudAlibaba与Springbooot搭建后端架构第5章使用Vue3+VueCLI实现系统前端模块的搭建第6章实现JWT单点登录功能第7章12306系统会员基础功能的实现第8章自制前后端代码生成器提高开发效率第9章利用代码生成器快速实现火车基础数据的维护第10章使用调度框架quartz,为12306系统增加定时调度功能第11章通过火车基础数据生成每日火车数据第12章基本的车票预定功能开发第13章集成注册中心与配置中心组件Nacos(动态修改线上的配置)第14章高性能余票查询的实现(前端缓存&本地缓存&分布式缓存)第15章集成分布式事务组件Seata(解决分布式系统中的数据一致性问题)第16章高并发抢票时,利用各种锁解决车票超卖问题(JDK锁&分布式锁&看门狗设计&红锁)第17章高并发抢票时,使用Sentinal组件进行请求限流降级(过滤90%的无效请求)第18章高并发抢票时,防止机器人刷票的令牌大闸,可减轻服务器的压力(防刷+限流)第19章利用流行的MQ组件对请求做削峰处理,解决吞吐量问题(实现最短时间内给用户反馈)第20章压力测试-高并发优化前后的性能对比(单机性能提升25倍左右)第21章企业级项目上云(阿里云部署)第22章项目优化第23章课程总结源码+word文档《新版Springboot3.0打造能落地的高并发仿12306售票系统》课程以极佳的案例场景,手把手带你学会落地高并发整体解决方案——>从0到1落地整体项目架构三端分离,易于分配不同资源微服务组件,保证服务的高可用功能拆分,实现服务间低耦合、高内聚提升系统性能,保障服务高性能响应——>学会高并发高性能场景解决方案学会对并发请求做削峰处理,解决吞吐量问题,掌握使用限流、令牌大闸、发放令牌、分布式锁、分布式缓存等十几种技术解决多种高并发问题——>综合提升高并发技术实战能力高并发秒杀技术应用落地,集成第三方组件做多场景问题处理,掌握新版Springboot及SpringCloudAlibaba的综合运用等大型分布式架构设计,从0到1手把手带你落地整体项目架构——>千万级、业务复杂度极高项目架构拆解,提升各种高并发、高性能架构设计能力使用三端分离,会员端、控台端、服务端,便于开发和维护,同时将界面与功能逻辑分开,易于分配不同的资源。使用微服务生态组件:注册中心、配置中心、网关、限流降级、分布式事务、服务调用,保障服务高可用。将系统功能拆分成多个微服务应用,实现服务间低耦合,服务内功能高内聚。使用Redis、MQ等中间件,提升系统性能,保障服务高性能响应。自制代码生成器,一分钟完成单表增删改查(含界面)功能,极大的提高开发效率。正常项目中,跑批的核心功能,都应该在batch模块里执行,也就是说得在batch模块里,重新生成一遍train相关表的持久层,正常项目就应该这样做,让业务模块和跑批完全隔离开,不至于因为跑批性能差而影响了业务的开展。本项目因为是演示项目,就不花这个时间做重复生成持久层了,直接调用business接口,刚好可以学习微服务的服务间调用组件feign(openfeign)Feign是Netflix公司开发的一个声明式的REST调用客户端,SpringCloud的早期,就是将各种第三方组件,整合到SpringBoot项目里,形成了SpringCloud,现在慢慢的把第三方组件替换成自研的组件,比如gateway组件OpenFeign是在Feign的基础上,增加SpringMVC注解,让代码写起来像在写Controller使用spring.application.name可以给各应用起一个名字,方便应用之间互相认识,在注册中心、配置中心、路由、服务调用、限流等微服务组件中,都会用到。//seat可选,当无选座时,seat为空[{ passengerId:123, passengerType:"1", seatTypeCode:"1", passengerName:"张三", passengerIdCard:"12323132132", seat:"C1"},{ passengerId:123, passengerType:"1", seatTypeCode:"1", passengerName:"李四", passengerIdCard:"12323132132", seat:"D2"}]//0:不支持选座;1:选一等座;2:选二等座constchooseSeatType=ref(0);//选择的座位//{//  A1:false,C1:true,D1:false,F1:false,//  A2:false,C2:false,D2:true,F2:false//}constchooseSeatObj=ref({});
  • 所需E币: 0
    时间: 2023-6-12 16:11
    大小: 1.88KB
    上传者: 开心就很好了
    Springboot3+微服务实战12306高性能售票系统视频教程,2023最新课程,视频+源码+word文档(独家提供)下载,课程持续更新中,请关注本下载地址!!《新版Springboot3.0打造能落地的高并发仿12306售票系统》是一套市面稀缺的,手把手教你完整落地“高并发,高可用,高性能”整体解决方案实战课。课程以12306售票系统驱动教学,融合老师多年大厂超大型项目架构设计与实战经验,带你从架构设计到具体场景方案落地,真正驾驭超高并发场景下的各种疑难问题,成为高薪抢手人才。高并发场景有哪些?商品秒杀,淘宝双11微信支付宝平台微博突发热点用户操作日志12306购票平台为何选择12306?业务复杂度高于淘宝双11,考验个人程序设计能力动态库存选座功能线上线下持续高并发业务,需要更综合的高并发设计不停的刷票绝不能超卖以极佳的案例场景,手把手带你学会落地高并发整体解决方案从0到1落地整体项目架构三端分离,易于分配不同资源微服务组件,保证服务的高可用功能拆分,实现服务间低耦合、高内聚提升系统性能,保障服务高性能响应学会高并发高性能场景解决方案学会对并发请求做削峰处理,解决吞吐量问题,掌握使用限流、令牌大闸、发放令牌、分布式锁、分布式缓存等十几种技术解决多种高并发问题综合提升高并发技术实战能力高并发秒杀技术应用落地,集成第三方组件做多场景问题处理,掌握新版Springboot及SpringCloudAlibaba的综合运用等大型分布式架构设计,从0到1手把手带你落地整体项目架构。千万级、业务复杂度极高项目架构拆解,提升各种高并发、高性能架构设计能力。使用三端分离,会员端、控台端、服务端,便于开发和维护,同时将界面与功能逻辑分开,易于分配不同的资源。使用微服务生态组件:注册中心、配置中心、网关、限流降级、分布式事务、服务调用,保障服务高可用。将系统功能拆分成多个微服务应用,实现服务间低耦合,服务内功能高内聚。使用Redis、MQ等中间件,提升系统性能,保障服务高性能响应。自制代码生成器,一分钟完成单表增删改查(含界面)功能,极大的提高开发效率多个典型高并发/高性能场景,学会通用解决方案设计与落地。更注重实际落地与有效提升解决大型项目生产问题的能力训练新版+主流技术组合,综合提升技术实力与竞争力。SpringBootValidation是SpringBoot整合了HibernateValidation的一个框架,其核心是HibernateValidation,此框架的作用:检验客户端向服务器端提交的请求参数的基本格式是否合法常用的检查注解有:@NotNull:不允许为null值可用于任何类型的参数@NotEmpty:不允许为空字符串,即长度为0的字符串仅用于检查字符串类型的参数@NotBlank:不允许为空白的字符串,即仅由空格或TAB制表位或换行组成的值仅用于检查字符串类型的参数@Length:限制字符串的长度@Pattern:通过正则表达式检查字符串的格式,此注解的regexp属性就是定义正则表达式的属性仅用于检查字符串类型的参数@Min:限制整型数值的最小值仅用于检查整型数值参数@Max:限制整型数值的最大值仅用于检查整型数值参数@Range:限制整型数值的取值区间,默认最小值为0,最大值为long的上限值仅用于检查整型数值参数所有检查注解都有message属性,用于配置检查失败时的提示文本。每个被检查参数可以同时添加多个检查注解!
  • 所需E币: 2
    时间: 2023-6-6 21:06
    大小: 1.64MB
    上传者: 小宫
    新版STM32F103ZE核心板原理图.pdf
  • 所需E币: 0
    时间: 2023-5-17 15:14
    大小: 604B
    上传者: 蝴蝶结欧恩
    分享课程——新版Springboot3.0打造能落地的高并发仿12306售票系统,附源码、电子手册。课程手把手教你完整落地“高并发,高可用,高性能”整体解决方案实战。课程以12306售票系统驱动教学,融合老师多年大厂超大型项目架构设计与实战经验,带你从架构设计到具体场景方案落地,真正驾驭超高并发场景下的各种疑难问题,成为高薪抢手人才。
  • 所需E币: 0
    时间: 2023-2-27 16:26
    大小: 1005B
    上传者: 开心就很好了
    计算机基础方面的知识。对于非科班出身的同学来讲,一直是心中的痛,而对于科班出身的同学,在工作之后,也意识到自身所学知识的不足。讲师结合自己多年工作经验,总结出了这套更适合程序员的计算机基础知识课程,带你补足编程必备基础知识。(新版)计算机基础,计算机组成原理+操作系统+网络课程可以帮助你快速、系统补足编程必备的计算机基础知识;课程涵盖计算机领域三大基础知识“计算机组成原理、操作系统、计算机网络”2022升级版2.0版重磅升级:更关注程序员在工程实操中通用基建能力Linux必备技能·Linux文件系统与用户管理·Linux常用功能一览·Linux故障排查流程·Nginx、Apache服务部署·LinuxShell基础与命令大全·Linux服务监控工业界百万级系统设计理论与剖析·消息系统与存储服务设计·服务扩展性理论与设计指导·一致性服务状态实现要点·大并发服务性能提升关键点剖析·百万级系统架构全流程
  • 所需E币: 0
    时间: 2022-9-25 22:17
    大小: 3.06MB
    上传者: czd886
    新版《机械防盗锁》标准在安防实体防护产品认证检测工作中的应用
  • 所需E币: 0
    时间: 2022-8-2 17:52
    大小: 1.33MB
    上传者: samewell
    MCUTool新版.rar
  • 所需E币: 0
    时间: 2021-4-14 22:08
    大小: 759.71KB
    上传者: xiaosh728
    开发板原理图HC6800-ESV2.0新版.pdf
  • 所需E币: 0
    时间: 2021-4-8 20:53
    大小: 1.91MB
    上传者: LGWU1995
    单片机程序开发软件keilc51新版.rar
  • 所需E币: 4
    时间: 2021-3-20 20:39
    大小: 17.05MB
    上传者: samewell
    C程序设计语言(第2版新版)
  • 所需E币: 4
    时间: 2021-3-21 00:20
    大小: 13.48MB
    上传者: samewell
    提高篇C程序设计语言(第2版·新版)本书的讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言
  • 所需E币: 4
    时间: 2021-3-21 18:25
    大小: 1.33MB
    上传者: Goodluck2020
    C程序设计语言(第2版·新版)非扫描版&详细书签版.zip
  • 所需E币: 2
    时间: 2021-3-22 18:51
    大小: 1.05MB
    上传者: Goodluck2020
    C程序设计语言(第2版·新版).zip
  • 所需E币: 5
    时间: 2021-3-17 21:05
    大小: 811.7KB
    上传者: wxlai1998
    C程序设计语言_第2版新版(高清) 书名:《C程序设计语言(第2版 ·新版)》原作名:The C ProgrammingLanguage作者:(美)BrianW.Kernighan/(美)DennisM.Ritchie...