【大数据】Hadoop完全分布式配置(超详细)

news2024/12/23 8:09:28

文章目录

  • 概述
  • 1.准备Linux
  • 2.安装JDK
  • 3.克隆两台虚拟机
  • 4.免密登陆
  • 5.安装Hadoop
  • 6.配置Hadoop配置文件
  • 7.启动服务
  • 8.在集群上测试一个jar包-单词统计的功能
  • 问题总结

概述

  1. Hadoop完全分布式配置-具体步骤如下
默认前提:
1.在Windows平台下安装Vmware平台(默认已经安装)
2.在Vmware平台上安装Linux操作系统(默认已经安装)
这里我已安装的是 Vmware16 和 CentOS7.

1.准备Linux

  1. 网络设置NAT模式
    编辑——>虚拟网络编辑器——>更改设置(需要管理员权限)
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

·桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上。
·NAT:NAT模式就是虚拟机要联网得先通过宿主机才能和外面进行通信。
·仅主机:虚拟机与宿主机直接连起来

如果是通过网线部署在不同的电脑上,应该选择桥接模式。
如果是选择NAT模式来用于设置本机局域网,则IP也要设置。

在这里插入图片描述

  1. 设置静态IP

    ·命令1:vi /etc/sysconfig/network-scripts/ifcfg-ens33
    ·命令2:service network restart	#重启网络,使上面的设置生效
    ·命令3:ping www.baidu.com #可测试固定IP设置是否有效
    

    (1)执行命令1,修改配置文件。

     首先,修改部分:BOOTPROTO=static
     其次,添加部分:HDDR=刚刚复制的数字
     				IPADDR=192.168.111.131 
     			   	GATEWAY=192.168.111.254
     			   	DNS1=8.8.8.8
    

    在这里插入图片描述

(2)执行命令2,重启网络,使设置生效

在这里插入图片描述

(3)执行命令3,测试固定IP设置是否有效
在这里插入图片描述

  1. 修改主机名字

    ·命令1:vim /etc/hostname
    直接修改即可
    重启系统reboot,使设置生效
    

    修改前:
    在这里插入图片描述
    修改后:在这里插入图片描述
    在这里插入图片描述

  2. 关闭防火墙

    ·永久性生效,重启后不会复原
    	开启:systemctl enable firewalld
    	关闭:systemctl disable firewalld
    ·即时生效,重启后复原
    	开启:systemctl start firewalld
    	关闭:systemctl stop firewalld
    ·查看防火墙运行状态:systemctl status firewalld
    

    永久性关闭防火墙,并reboot重启系统,然后用 systemctl status firewalld 查看防火墙的运行状态。
    在这里插入图片描述
    永久关闭并重启后:
    在这里插入图片描述

2.安装JDK

默认已经在Windows上安装 Xshell 和 Xftp
下面我们将通过Xshell和Xftp进行操作
  1. 首先连接Xshell
    在这里插入图片描述
    在这里插入图片描述

  2. 利用Xshell中的Xftp,把Windows中的 jdk 上传到 Linux 系统

    准备工作:在/opt文件夹下创建两个文件夹
    	cd /opt
    	mkdir module	#module存放解压后文件
    	mkdir source	#source存放原文件
    

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

  3. 解压缩 jdk

    ·命令:tar -zxvf jdk-8u181-linux-x64.tar.gz
    ·修改文件夹的名称:mv jdk1.8.0_181 jdk1.8
    ·移动到module文件夹中:mv jdk1.8 ../module
    

    解压后: 在这里插入图片描述
    改名后:
    在这里插入图片描述
    移动后:
    在这里插入图片描述

  4. 配置环境

    方法1:修改.bash_profile文件
    ·vim ~/.bash_profile
    ·在.bash_profile文件末尾加入:
    	export JAVA_HOME=/opt/module/jdk1.8
    	export PATH=$JAVA_HOME/BIN:$PATH
    ·然后执行以下命令,使环境变量配置立即生效
    	source ~/.bash_profile
    
    方法2:修改/etc/profile文件
    ·vim /etc/profile
    ·在profile文件末尾加入:
    	export JAVA_HOME=/opt/module/jdk1.8
    	export PATH=$JAVA_HOME/bin:$PATH
    ·然后执行以下命令,使配置立即生效
    	source /etc/profile
    
    ·执行以下命令,查看java版本号:
    	java -version
    
    ·方法一:更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。
    ·方法二:更为方便,因为所有用户的shell都有权使用这些环境变量,如果你的计算机仅仅作为开发使用时推荐使用这种方法,否则可能会给系统带来安全性问题。
    

    这里我采用的是方法二:
    在这里插入图片描述
    在这里插入图片描述

3.克隆两台虚拟机

前面我们已经完成了 虚拟机AY01 的准备工作和 JDK的安装。
下面我们将对该虚拟机进行克隆。

右键——>管理——>克隆
然后进行克隆:

在这里插入图片描述
选择 “创建完整克隆”
在这里插入图片描述
自行修改即可:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后以同样的操作,完成第三台虚拟机的克隆即可。

克隆完成后,我们需要进行一些小操作:
·修改 虚拟机AY002 和 虚拟机AY003 的 主机名 和 IP地址
	修改主机名:vim /etc/hostname #直接改即可,新主机名在reboot重启后生效
	修改IP地址:vim /etc/sysconfig/network-scripts/ifcfg-ens33	#分别将AY002和AY003的IP地址改为192.168.111.132和192.168.111.133
·修改三台系统的hosts文件,使IP与主机名对应
	vim /etc/hosts
	内容如下:
	192.168.111.131 AY01
	192.168.111.132 AY02
	192.168.111.133 AY03

(1)修改前:
在这里插入图片描述
在这里插入图片描述
AY002:
在这里插入图片描述

在这里插入图片描述
AY003:
在这里插入图片描述
在这里插入图片描述
重启后:
在这里插入图片描述
在这里插入图片描述
(2)修改三台系统的hosts文件(注意是三台,每台的内容都一样)
具体内容如下图:
在这里插入图片描述
至此,我们完成了克隆的部分。

4.免密登陆

经过前面的操作,我们已经可以用Xshell来远程控制虚拟机AY02和虚拟机AY03,
下面我们的操作将在Xshell上进行(当然,也可以依然在Vmware平台上操作)
准备:首先要保证主机名、hosts、防火墙正确设置
  1. 配置每个节点本身公钥和私钥(即在每个节点执行如下两个命令:)

    (1)进入家目录:cd ~
    (2)生成公钥和私钥:ssh-keygen -t rsa
    
    	·进入.ssh目录:cd .ssh
    执行上述指令,然后敲(三个回车),中间不要输入任何内容,在.ssh目录下就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
    

    在这里插入图片描述
    在这里插入图片描述

  2. 将生成的密钥分别发送给AY01、AY02、AY03

    ·命令1:ssh-copy-id AY01
    ·命令2:ssh-copy-id AY02
    ·命令3:ssh-copy-id AY03
    

    在这里插入图片描述在这里插入图片描述
    测试一下:(成功如下图 )
    在这里插入图片描述

  3. 在 AY02 和 AY03 中重复上述操作
    最终结果如下:
    AY02:在这里插入图片描述
    AY03:
    ![
    至此,我们完成了三台系统之间的免密登陆。

5.安装Hadoop

  1. 利用Xshell中的Xftp,把 Windows 中的 Hadoop-2.7.2上传到 虚拟机AY01的/opt/source文件夹中
    在这里插入图片描述

  2. 解压 Hadoop-2.7.2 压缩包

    ·解压命令:tar -zxvf hadoop-2.7.2.tar.gz
    ·移动到/opt/module文件夹中:mv hadoop-2.7.2 ../module
    

    解压后:
    在这里插入图片描述
    移动后:
    在这里插入图片描述

  3. 配置 Hadoop 环境变量

    方法一:
    ·首先进入hadoop文件夹:
    	cd /opt/module/hadoop-2.7.2/etc/hadoop
    ·配置hadoop-env.sh 配置文件
    	1)修改 export JAVA_HOME=${JAVA_HOME} 为 export JAVA_HOME=/opt/module/jdk1.8
    	2)添加以下两条语句:
    		export HADOOP_HOME=/opt/module/hadoop-2.7.2
    		export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    
    方法二:
    ·首先进入hadoop文件夹:
    	cd /opt/module/hadoop-2.7.2/etc/hadoop
    ·配置hadoop-env.sh 配置文件
    	1)修改 export JAVA_HOME=${JAVA_HOME} 为 export JAVA_HOME=/opt/module/jdk1.8
    ·其次修改/etc/profile文件,在jdk的配置语句后面添加以下两条语句:
    	export	HADOOP_HOME=/opt/module/hadoop-2.7.2
    	export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    

    这里我采用的是方法二:
    在这里插入图片描述
    在这里插入图片描述
    这里,我们才只是完成了AY01中的hadoop的安装和环境配置,下面我们将完善Hadoop的配置文件,然后将配置完成的 Hadoop 拷贝给 AY02 和 AY03.

集群部署:

AY01AY02AY03
HDFS
NameNodeYARNSecondaryNameNode
DataNodeDataNodeDataNode
NodeManagerNodeManagerNodeManager
ResourceManager

6.配置Hadoop配置文件

一共需要配置7个文件,这7个文件都在/opt/module/hadoop-2.7.2/etc/hadoop 文件夹下。
把配置信息写在文件的<configuration></configuration>之间
  1. core-site.xml

    ·vim core-site.xml
    在该文件中的<configuration></configuration>之间复制下列内容,注释不要复制,只复制<property></property>部分。
    <!-- 指定HDFS中NameNode的地址 -->
    <property>
    	<name>fs.defaultFS</name>
        <value>hdfs://AY01:9000</value>
    </property>
    
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
    	<name>hadoop.tmp.dir</name>
    	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
    </property>
    

    在这里插入图片描述

  2. Hdfs 部分有3个文件:
    (2.1)hadoop-env.sh

    (此文件在安装Hadoop时已配置过,故可以省略)	
    ·修改内容:export JAVA_HOME=/opt/module/jdk1.8
    

    (2.2)hdfs-site.xml

    ·vim hdfs-site.xml
    ·添加的内容如下:
     <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>AY03:50090</value>
    </property>
    

    在这里插入图片描述

    (2.3)slaves

    ·vim slaves
    ·把原文件中的localhost删除掉,输入集群节点名:
    	AY01
    	AY02
    	AY03
    

    在这里插入图片描述

  3. yarn
    (3.1)yarn-env.sh

    ·vim yarn-env.sh
    ·修改内容如下:
    	将 # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 修改为 export JAVA_HOME=/opt/module/jdk1.8
    	(JDK的实际路径)
    

    修改前:
    在这里插入图片描述
    修改后:
    在这里插入图片描述

    (3.2)yarn-site.xml

    ·vim yarn-site.xml
    ·添加下面<property></property>部分:
    <!-- reducer获取数据的方式 -->
    	<property>
    		 <name>yarn.nodemanager.aux-services</name>
    	 	<value>mapreduce_shuffle</value>
    	</property>
    <!-- 指定YARN的ResourceManager的地址 -->
    	<property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>AY02</value>
    	</property>
    

    在这里插入图片描述

  4. mapreduce
    (4.1)mapred-env.sh

    ·vim mapred-env.sh
    ·修改内容如下:
    	将# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 修改为 export JAVA_HOME=/opt/module/jdk1.8
    

    修改前:
    在这里插入图片描述
    修改后:
    在这里插入图片描述
    (4.2)mapred-site.xml

    ·hadoop文件夹下没有mapred-site.xml文件,但有一个mapred-site.xml.template文件,
    拷贝一份该文件,并把新拷贝的文件命名为mapred-site.xml
    命令为:cp mapred-site.xml.template mapred-site.xml
    ·然后再打开mapred-site.xml
    ·添加<property></property>部分:
    <!-- 指定mr运行在yarn上 -->
    <property>
    	<name>mapreduce.framework.name</name>
    	<value>yarn</value>
    </property>
    

    在这里插入图片描述
    在这里插入图片描述

  5. 分发 Hadoop文件夹

    自此,所有文件全部配置完毕,接下来我们需要把AY01节点的hadoop文件夹远程分发到AY02、AY03上的对应位置
    ·首先回到/opt/module文件夹下
    	cd /opt/module
    ·然后执行如下命令:
    	scp -r ./hadoop-2.7.2/ AY02:/opt/module
    	scp -r ./hadoop-2.7.2/ AY03:/opt/module
    

至此,三台系统的Hadoop配置完全一致。

7.启动服务

  1. 格式化 namenode

    根据前面的集群部署图可知,namenode在AY01节点上,因此只需要在AY01节点上进行格式化即可。
    ·首先,进入到hadoop目录下:cd/opt/module/hadoop-2.7.2
    ·格式化命令:bin/hdfs namenode -format
    

    在这里插入图片描述

  2. 启动 namenode

    ·启动命令:sbin/start-dfs.sh
    ·可通过jps命令查看是否启动
    

    在这里插入图片描述
    在这里插入图片描述

  3. 启动 yarn

    根据之前集群部署的情况可知,我们把yarn部署在了AY02节点上,因此我们需要在AY02节点上启动yarn。
    ·启动yarn命令:sbin/start-yarn.sh
    ·通过jps命令查看是否启动
    

    在这里插入图片描述
    在这里插入图片描述
    AY03启动的服务有:
    在这里插入图片描述

  4. 关闭命令

    ·yarn关闭命令:sbin/stop-yarn.sh
    ·hadoop关闭命令:sbin/stop-dfs.sh
    
    Hadoop启动和关闭命令:
    1.start-all.sh
     启动所有的Hadoop守护进程。(包括NameNode、Secondary NameNode、DataNode、JobTracker、TaskTrack)
    2.stop-all.sh
     停止所有的Hadoop守护进程。(包括NameNode、Secondary NameNode、DataNode、JobTracker、TaskTrack)
    3.start-dfs.sh
     启动Hadoop HDFS守护进程NameNode、Secondary NameNode 和 DataNode。
    4.stop-dfs.sh
     停止Hadoop HDFS守护进程NameNode、Secondary NameNode 和 DataNode。
       
    5.hadoop-daemons.sh start namenode
     单独启动NameNode守护进程
    6.hadoop-daemons.sh stop namenode
     单独停止NameNode守护进程
    7.hadoop-daemons.sh start datanode
     单独启动DataNode守护进程
    8.hadoop-daemons.sh stop datanode
     单独停止DataNode守护进程
    9.hadoop-daemons.sh start secondarynamenode
     单独启动SecondaryNameNode守护进程
    10.hadoop-daemons.sh stop secondarynamenode
     单独停止SecondaryNameNode守护进程 
    11.start-mapred.sh
      启动Hadoop MapReduce守护进程JobTracker和TaskTracker
     12.stop-mapred.sh
      停止Hadoop MapReduce守护进程JobTracker和TaskTracker
    13.hadoop-daemons.sh start jobtracker
     单独启动jobtracker守护进程
    14.hadoop-daemons.sh stop jobtracker
     单独停止jobtracker守护进程
    15.hadoop-daemons.sh start tasktracker
     单独启动TaskTracker守护进程
    16.hadoop-daemons.sh stop tasktracker
     单独停止TaskTracker守护进程
    

至此,我们就算是完成了Hadoop集群完全分布式的搭建!!

8.在集群上测试一个jar包-单词统计的功能

  1. 在本地创建一个 word.txt 文件

    ·命令1:touch word.txt
    ·命令2:vi word.txt
    输入:
    小明 小张 小李 小明
    张三 王五 张三 小李
    

    在这里插入图片描述

  2. 在根目录下创建一个 input 的文件夹

    ·命令:bin/hdfs dfs -mkdir /input
    
  3. 把 word.txt 文件上传到服务器中的 input 文件夹中

    ·命令:bin/hdfs dfs -put ./word.txt /input
    
  4. 查看是否上传成功

    ·命令:bin/hdfs dfs -ls /input
    

    在这里插入图片描述

  5. 执行 wordcount 单词统计功能

    在执行此命令前,再次确认集群中所有节点的防火墙都已经关闭!
    
    ·命令:bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output
    
    ·output文件夹内有2个文件
     查看命令:bin/hdfs dfs -ls /output
    ·输出output文件夹文件的内容:
     bin/hdfs dfs -cat /output/*
    

    在这里插入图片描述
    在这里插入图片描述

至此,基本的完全分布式已经建立成功!!

  1. 删除文件系统上的 output 文件夹(了解)
    ·删除命令:bin/hdfs dfs -rm -r /output
    
  2. 删除output 文件夹的part-r-00000文件(了解)
    ·删除命令:bin/hdfs dfs -rm /output/part-r-00000
    
  3. yarn的浏览器页面查看(集群中已执行的任务)
    由于我们的yarn部署在 AY02 节点,该节点的固定IP为:192.168.111.132
    所以我们可以通过浏览器:http://192.168.111.132:8088/cluster
    查看yarn上已执行的任务。
    
    在这里插入图片描述

问题总结

  1. 整理流程我参考的是centos6的文档,centos7的命令与其不同。如修改主机名、关闭防火墙等
  2. centos7无法连接Xshell的情况

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/135340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库的三大范式

数据库的三大范式 设计关系数据库时&#xff0c;需要遵从不同的规范要求&#xff0c;设计出合理的关系型数据库&#xff0c;这些不同的规范要求被称为不同的范式&#xff0c;越高的范式数据冗余度越低。 实际开发中涉及到的范式一般有三种&#xff1a;第一范式、第二范式、第…

WindowsTerminal_01 配置SSH连接

文章目录1 前言2 过程参考1 前言 windows terminal 功能强大&#xff0c;可以自定义终端。由于实验需求&#xff0c;需要用到Linux服务器&#xff0c;所以打算使用Windows Termial 来配置终端&#xff0c;以此来方便地登录服务器&#xff0c;执行一些简单的命令 2 过程 自定…

MongoDB基础

目录简介安装基操pymongo简介 MongoDB 是一个非关系型数据库非常适合超大数据集的存储&#xff0c;由 C 语言编写&#xff0c;旨在为 WEB 应用提供可扩展的高性能数据存储解决方案MongoDB 是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰…

TC275——03开发环境搭建

开发环境与工具链的搭配有很多&#xff0c;这里选择最省事的英飞凌自己推出的一款基于eclipse的IDE&#xff0c;主要是学习&#xff0c;不用于商业用途。 安装ADS开发环境 下载网址&#xff1a; AURIX™ Development Studio - Infineon Technologies 下载这个安装包 双击安装…

Springboot-Vue项目框架每部分的介绍

Springboot-Vue项目框架每部分的介绍 文章目录Springboot-Vue项目框架每部分的介绍前端后端前端 后端 如上图所示&#xff0c;在Springboot项目中&#xff0c;目录结构有代码层结构和资源文件的结构 SpringBoot项目框架对工程结构并没有特殊的限制&#xff0c;只要是良好的工程…

C语言--图书管理项目

C语言图书管理系统项目 第一节 C 语言基础以及基本数据类型 第二节 C 语言运算符 第三节 C 语言控制语句 第四节 C 语言自定义函数 第五节 C 语言修饰变量的关键字 第六节 C 语言构造数据类型–数组 第七节 C 语言字符串 第八节 C 语言指针 第九节 指针与函数、指针函数、函数…

【Linux多线程编程】1. 多线程与单线程

什么是单线程 在描述什么是多线程之前&#xff0c;先讲讲什么是单线程。 int var 100; // 全局变量 var&#xff0c;初始值为 100 void func(){var 100;std::cout << "now var is: " << var << std::endl; // c 语法&#xff0c;意思为输出 va…

【强训】day02

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、选择二、 编程1. 排序子序列2. 倒置字符串答案1. 选择2. 编程普通小孩也要热爱生活&#xff01; 一、选择 阅读如下代码。 请问&#xff0c;对语句行 test.hello(). 描述正确的有&#xff08;&#xff09; pa…

网站备案信息查询,网站备案号在哪里查询

网站备案号一般是在工信部官方查询&#xff0c;也可以使用第三方工具查询。 1、使用工信部域名信息备案管理系统网站查询 打开工信部的域名信息备案管理系统网站https://beian.miit.gov.cn/&#xff0c;点击ICP备案信息查询&#xff0c;添加需要查询的域名&#xff08;网站网址…

Drools基础与实现(操作实例)

简介&#xff1a; Drools 是用 Java 语言编写的开放源码规则引擎&#xff0c;使用 Rete 算法对所编写的规则求值。Drools 允许使用声明方式表达业务逻辑。可以使用非 XML 的本地语言编写规则&#xff0c;从而便于学习和理解。并且&#xff0c;还可以将 Java 代码直接嵌入到规则…

逻辑漏洞渗透与攻防(一)之身份验证漏洞

目录 逻辑漏洞概要 漏洞的根因&#xff1a; 逻辑漏洞的分类&#xff1a; 身份验证漏洞 暴力破解漏洞 1.1 未限制爆破 1.2 爆破-验证码爆破 1.3 暴力破解漏洞-限制IP爆破 1.4 暴力破解漏洞-限制密码错误次数来爆破 1.5 暴力破解漏洞-多字段爆破 1.6 限制登录频率爆破 …

(小程序)会议OA项目-其它页面

目录 一、tabs组件及会议管理布局 1.自定义tabs组件 2.会议管理 二、投票管理参考图 三、个人中心布局 一、tabs组件及会议管理布局 1.自定义tabs组件 文档参考:自定义组件 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/framewo…

植物大战僵尸:实现自动收集阳光

植物大战僵尸这款游戏可以说是很多90后的回忆了&#xff0c;基本上只要是90后或多或少的都接触过&#xff0c;而玩游戏与制作辅助是两个概念&#xff0c;今天我将给大家分享一些游戏辅助方面的制作技巧&#xff0c;之所以使用植物大战僵尸这款游戏是因为游戏简单容易分析&#…

Apache Kafka Spring 集成

Apache Kafka Spring 集成 今天来学习Spring如何集成 Apache kafka&#xff0c;在Spring Boot中如何集成kafka客户端 生产、消费消息。首先介绍下各个组件的版本信息&#xff1a; Apache Kafka_2.13-3.3.1Spring Boot 3.0.0Apache-Maven-3.6.0JDK-17.0.5 启动Kafka # 进入k…

ArcGIS基础实验操作100例--实验38删除冗余节点

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验38 删除冗余节点 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&…

免费分享在线设计工具,比ps还方便的贺卡设计工具!

元旦贺卡在线制作工具&#xff0c;不用自己设计&#xff0c;只需借助在线工具平台的模板就能轻松搞定的贺卡设计方法&#xff01;跟着小编下面的设计步骤&#xff0c;使用在线工具乔拓云轻松设计活动贺卡&#xff0c;设计过程简单且一键生成分享链接&#xff0c;不用自己设计工…

推荐四款常见的电子教室软件,大家觉得哪款好用

现在越来越多的教学教室都在使用多媒体教学软件&#xff0c;不仅包括学校&#xff0c;还有一些培训机构和教堂。 那么&#xff0c;多媒体教学软件有哪些&#xff1f; 哪款多媒体教学软件好用&#xff1f; 在今天的文章中&#xff0c;小编挑选了4款流行的多媒体教学软件推荐给大…

【全网最细PAT题解】【PAT乙】1009 说反话(cin、getline、cin.getline三种输入格式)

题目链接 1009 说反话 题目描述 给定一句英语&#xff0c;要求你编写程序&#xff0c;将句中所有单词的顺序颠倒输出。输入格式&#xff1a; 测试输入包含一个测试用例&#xff0c;在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成&#xff0c;其中单词…

【Spring 入门教程2】

&#x1f308;博客主页&#xff1a;屠一乐的博客 &#x1f4c5; 发文时间&#xff1a;2023.1.2 &#x1f388; 一定存在只有你才能做成的事 &#x1f339; 博主水平有限&#xff0c;如有错误&#xff0c;欢迎指正 欢迎各位&#x1f44d;收藏&#x1f48e;评论✉ Spring_day02 S…

C++ - opencv应用实例之矩形框检测

C++ - opencv应用实例之矩形框检测 现阶段下,目标检测在实际应用场景中的表现颇为重要,工业质检、移动机器人视觉伺服、作业、交通监控、安防领域等均需要通过目标检测来实现对目标的定位、测量或者统计、辅助控制等目前目标检测主要分为两个方向的发展,其一是基于传统图像处…