【李老师云计算】实验三:在Docker中部署Hadoop集群

news2024/11/28 18:40:39

索引

    • 0. 前言
    • 1. Docker
      • 1.1 安装Docker
      • 1.2 启动Docker
    • 2. Dokcer部署Hadoop
      • 2.1 设计Hadoop集群结构
      • 2.2 拉取Hadoop镜像
      • 2.3 ★解决拉取镜像时 - no space left on device
      • 2.4 创建Docker容器
      • 2.5 ★解决docker ps没有内容
      • 2.6 通过终端进入容器
      • 2.7 关闭防火墙
      • 2.8 配置SSH
        • 2.8.1 设置主机名
        • 2.8.2 添加映射关系
        • 2.8.3 重置密码、生成秘钥
      • 2.9 配置分享Hadoop文件
        • 2.9.1 core-site.xml
        • 2.9.2 hdfs-site.xml
        • 2.9.3 mapred-site.xml
        • 2.9.4 yarn-site.xml
        • 2.9.5 slaves
        • 2.9.6 分享配置文件给其他容器
      • 2.10 格式化节点
      • 2.11 终极无敌启动Hadoop!!
      • 2.12 配置与运行Hadoop WordCount程序
      • 2.13 ★重启虚拟机后的操作
    • 3. Docker PLUS
      • 3.1 制作自己的镜像
      • 3.2 镜像注册,创建个人实例,关联GitHub
        • 3.2.1 阿里云关联GitHub
        • 3.2.2 阿里云创建个人实例
      • 3.3 把自己的镜像发布到Docker Hub
        • 3.3.1 Docker Hub创建仓库
        • 3.3.2 在Docker上登录Docker Hub
        • 3.3.3 推送镜像
        • 3.3.4 验证是否成功
      • 3.4 拉取验证自己的发布的镜像
    • 4. 番外篇

0. 前言

同样是参考了学长的几篇博客,涛哥功德无量!在整合了各种信息之后,鄙人会尽量用更精炼、简单的说明来完成这个实验,当然不足一定是会有的,希望各位朋友可以斧正,同样也希望后来的朋友可以再次为这篇博客进行升级迭代!

博客是面向实验的,因此对完成实验无关的部分会优化掉。

带★的是可能遇到的问题可以看一下,以防后续操作出问题。

内容可能来自博主自己手搓、吸取同学的经验、网络上内容的整合等等,仅供参考,更多内容可以查看大三下指南专栏。

1. Docker

1.1 安装Docker

终端输入指令:yum -y install docker 即可安装
通过输入指令:docker version 查看版本(能看到就是安装成功了)
在这里插入图片描述
此时的version还略显青涩,只有Client短短的几行,只要启动了Docker它就会自动初始化了。

1.2 启动Docker

终端输入指令:systemctl start docker.service 启动Docker服务(后续如果用不了Docker命令请先检查是否已经启动了服务)
再次输入指令:docker version 查看版本
在这里插入图片描述
现在就同时拥有了Client和Server版本了,安装启动成功!
最后为了之后不用每次都手动开启,使用指令systemctl enable docker设置开机自启。

2. Dokcer部署Hadoop

因为Docker实际上是提供了一个虚拟环境(类似于虚拟机),因此我们其实相当于是在Master虚拟机上再创建三个小虚拟机,套娃……
所以下面的操作都是在Master一台虚拟机上进行的。

开始之前把Master虚拟机重新启动一次,另外两台虚拟机不需要开机。

2.1 设计Hadoop集群结构

主机:master(ip或主机名)
从机:slave1、slave2(ip或主机名)

2.2 拉取Hadoop镜像

确保Docker服务已经开启
终端输入指令:docker images 查看镜像
在这里插入图片描述
很明显我的Docker非常的干净,啥也没有……
终端输入指令:docker pull registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop 拉取Hadoop的镜像
在这里插入图片描述
终端输入指令:docker images 查看镜像,拉取成功了。在这里插入图片描述

2.3 ★解决拉取镜像时 - no space left on device

我在拉取镜像时出现了以下的错误:no space left on device
在这里插入图片描述
应该是内存不足了,当时创建虚拟机的时候只给了20G的容量。
虚拟机关机之后,右键设置给硬盘扩展一下,下图是我已经完成了扩展(20G->25G),扩展不能点击是因为我没有关闭虚拟机。
在这里插入图片描述

2.4 创建Docker容器

执行完命令之后会跳到登录界面,如果没进入GUI,可以ctrl + alt + F1切换。

下面操作都是在Master一台虚拟机操作:
下面的master60slave1-60slave2-60只是容器的名字,可以起别的!

(1)终端输入指令:docker run -d --name master60 -h master60 \注意修改主机名),在新出现的命令行依次输入:

  1. -p 50070:50070 --privileged=true \
  2. registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop /usr/sbin/init
    在这里插入图片描述

(2)终端输入指令:docker run -d --name slave1-60 -h slave1-60 \注意修改主机名),在新出现的命令行依次输入:

  1. --privileged=true \
  2. registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop /usr/sbin/init

(3)终端输入指令:docker run -d --name slave2-60 -h slave2-60 \注意修改主机名),在新出现的命令行依次输入:

  1. --privileged=true \
  2. registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop /usr/sbin/init

最后通过指令docker ps查看已经启动的容器
在这里插入图片描述

2.5 ★解决docker ps没有内容

docker ps是查看已经启动的容器,如果没有找到可以通过docker ps -a查看容器的ID(最前面的),之后再通过docker start 容器ID打开。

2.6 通过终端进入容器

开头就提到过,每个容器就类似于一个小的虚拟机,我们可以直接连接到容器再对其进行操作。
下面的操作全都是在Master一台虚拟机上进行的!
首先打开三个终端,分别通过以下指令进入三个容器。

  1. docker exec -it master60 /bin/bash 进入master容器
  2. docker exec -it slave1-60 /bin/bash 进入slave1容器
  3. docker exec -it slave2-60 /bin/bash 进入slave2容器

请添加图片描述
进来之后顺便看了一下IP:

172.17.0.2 master60
172.17.0.3 slave1-60
172.17.0.4 slave2-60

2.7 关闭防火墙

在三个终端都进行如下操作:
输入指令:systemctl stop iptables.service
为了防止重启后防火墙重启,再进行如下操作:
输入指令:vi ~/.bashrc,之后再文件末尾添加上这段关闭指令systemctl stop iptables.service即可。

2.8 配置SSH

2.8.1 设置主机名

首先明确容器的主机名和容器名没有关系,和虚拟机的主机名也没有关系。

但是建议是不要和虚拟机的主机名相同,因为之后可能会产生冲突导致只能用IP来进行操作。

这句话是我后来加上的所以我这里没有修改,但是希望可以起类似于Dmaster60的主机名,当然要是害怕之后出问题,也可以不改。

在每一个终端都进行如下操作(共3次):
输入指令:vi /etc/sysconfig/network
然后添加下面的内容,其中HOSTNAME=XXX是终端代表的虚拟机的主机名。

NETWORKING=yes
HOSTNAME=master60

在这里插入图片描述
直接中键复制可能会少几个字母!!!请确保完全一致,否则后续可能会出现问题!!!

2.8.2 添加映射关系

在每一个终端都进行如下操作(共3次):
输入指令:vi /etc/hosts
然后把之前得到的容器IP添加到文件末尾:

172.17.0.2 master60
172.17.0.3 slave1-60
172.17.0.4 slave2-60

在这里插入图片描述
因为容器的/etc/hosts每次重启都会重置,这样我们再进行如下的操作:
输入指令:vi ~/.bashrc,然后在末尾添加如下内容(注意修改):

echo "172.17.0.2 master60" >> /etc/hosts
echo "172.17.0.3 slave1-60" >> /etc/hosts
echo "172.17.0.4 slave2-60" >> /etc/hosts

在这里插入图片描述

2.8.3 重置密码、生成秘钥

使用passwd指令重新设置密码(!!!之后可能会用),直接123456两次就可以。三个容器最好都重置密码。请添加图片描述

可能现在的版本创建的时候就已经自带秘钥了?没有设置就可以免密登录了。
在这里插入图片描述
分别在每个终端ssh其他的机器试试有没有免密,如果没有的话参考涛哥的博客step3 - 4。

2.9 配置分享Hadoop文件

在master60容器(终端)上完成配置,之后再分享给另外两个容器(终端)。
首先输入指令:cd /usr/local/hadoop/etc/hadoop
这个和之前的实验一一样,写错了一点就几乎不可能成功运行,因此请认真核对自己的相关配置!

2.9.1 core-site.xml

先进入到配置文件:vi core-site.xml
在末尾追加以下内容:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master60:9000</value>
         </property>
         
         <property>
                 <name>hadoop.tmp.dir</name>
                 <value>/home/data/hadoopdata</value>
         </property>
</configuration>

在这里插入图片描述

之后,返回到终端创建两个文件:
mkdir -p /home/data
mkdir -p /home/data/hadoopdata

2.9.2 hdfs-site.xml

先进入到配置文件:vi hdfs-site.xml
在末尾追加以下内容:

<configuration>
        <property><!--配置存储namenode数据的目录-->
                <name>dfs.namenode.name.dir</name>
                <value>/home/data/hadoopdata/name</value>
        </property>
       
        <property><!--配置存储datanode数据的目录-->
                <name>dfs.datanode.data.dir</name>
                <value>/home/data/hadoopdata/data</value>
        </property>
      
        <property><!--配置副本数量-->
                <name>dfs.replication</name>
                <value>1</value>
        </property>  
      
        <property><!--配置第二名称节点-->
            <name>dfs.secondary.http.address</name>
            <value>master60:50090</value>
      </property>
</configuration>

在这里插入图片描述

2.9.3 mapred-site.xml

输入指令:cp mapred-site.xml.template mapred-site.xml
然后输入:vi mapred-site.xml
在末尾追加以下内容:

<configuration>
  	<property>
	    <name>mapreduce.Framework.name</name>
	    <value>yarn</value>
	</property>
</configuration>

在这里插入图片描述

2.9.4 yarn-site.xml

先进入到配置文件:vi yarn-site.xml
在末尾追加以下内容:

<configuration>
        <property> <!--配置yarn主节点-->
                <name>yarn.resourcemanager.hostname</name>
                <value>master60</value>
        </property>
    
        <property><!--配置执行的计算框架-->
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

在这里插入图片描述

2.9.5 slaves

先进入到配置文件:vi slaves
在末尾追加以下内容:

master60
slave1-60
slave2-60

在这里插入图片描述
不用localhost是因为之后要传给其他的容器,而localhost代表"本机"。

2.9.6 分享配置文件给其他容器

首先确保能互相ping通(一般有网就行),这里不多做演示。
确保主容器在hadoop目录下,cd /usr/local/hadoop/etc/hadoop
①先传给slave1,记得改IP!!!

scp slaves root@slave1-60:/usr/local/hadoop/etc/hadoop/
scp mapred-site.xml root@slave1-60:/usr/local/hadoop/etc/hadoop 
scp yarn-site.xml root@slave1-60:/usr/local/hadoop/etc/hadoop/  
scp hdfs-site.xml root@slave1-60:/usr/local/hadoop/etc/hadoop
scp core-site.xml root@slave1-60:/usr/local/hadoop/etc/hadoop
scp -r /home/data/hadoopdata root@slave1-60:/home/

在这里插入图片描述
要是出现了这个就yes,好像是我的hosts配置的不是很好自动帮我修改了。
②再传给slave1,记得改IP!!!

scp slaves root@slave2-60:/usr/local/hadoop/etc/hadoop/
scp mapred-site.xml root@slave2-60:/usr/local/hadoop/etc/hadoop 
scp yarn-site.xml root@slave2-60:/usr/local/hadoop/etc/hadoop/  
scp hdfs-site.xml root@slave2-60:/usr/local/hadoop/etc/hadoop
scp core-site.xml root@slave2-60:/usr/local/hadoop/etc/hadoop
scp -r /home/data/hadoopdata root@slave2-60:/home/

2.10 格式化节点

在三个容器(终端)都使用指令:hadoop namenode -format,轻松拿下。在这里插入图片描述

2.11 终极无敌启动Hadoop!!

在主机使用指令/usr/local/hadoop/sbin/start-all.sh
然后经典jps查看状态,太健康了!
在这里插入图片描述
然后访问一下172.17.0.2:50070当然IP可以用主机名代替,但是我虚拟机主机名和容器主机名是冲突的(主机名不区分大小写),因此我无法通过master60:50070来访问。
在这里插入图片描述

◆终端执行jps,证实虚拟器Hadoop集群没有启动Hadoop,需要截图[1]。
在这里插入图片描述

◆终端执行进入容器命令,用report命令显示Docker Hadoop集群状态,这个需要截屏[2]。
使用hadoop dfsadmin -report指令。
其实有三部分下面只截了172.17.0.2的信息。
在这里插入图片描述
关闭终端不代表关闭容器,可以再次进入,Hadoop也不会断开。重开虚拟机会关闭容器,需要重新连接。

2.12 配置与运行Hadoop WordCount程序

直接按照步骤一步一步来:

  1. hadoop fs -mkdir /input 在HDFS中创建文件
  2. cd /usr/local/hadoop 进入目录
  3. touch in.txt 创建文件
  4. vi in.txt 打开文件,添加信息(之后求出现次数)

  1. hadoop fs -put in.txt /input/ 文件添加到HDFS的 /input/下
  2. cd share/hadoop/mapreduce 切换目录
  3. hadoop jar hadoop-mapreduce-examples-2.7.6.jar \ 使用
  4. wordcount /input /output 执行

  1. hadoop fs -cat /output/part-r-00000 查看结果
    在这里插入图片描述

好像因为容器和虚拟机巴拉巴拉之间原因,用网页可能是无权操作的,因此这么做就行了。
如果要删除就使用hadoop fs -rm -r /output,不删除不能再次运行。

2.13 ★重启虚拟机后的操作

重启虚拟机后容器没有开启,docker ps是看不到容器的因为这个指令是看正在运行的容器的;
通过docker ps -a指令查看容器的ID,然后再通过docker start ID来启动。
在这里插入图片描述

然后先打开三个终端,分别通过以下指令进入三个容器。

  1. docker exec -it master60 /bin/bash 进入master容器
  2. docker exec -it slave1-60 /bin/bash 进入slave1容器
  3. docker exec -it slave2-60 /bin/bash 进入slave2容器

最后再打开Docker的Hadoop就行了/usr/local/hadoop/sbin/start-all.sh

3. Docker PLUS

终端关了就行了,现在是另外的内容了,之后是在虚拟机的终端上进行。

3.1 制作自己的镜像

直接执行命令:

  1. cd ~ 进入根目录
  2. mkdir -p dockerWorkspace 创建目录
  3. cd dockerWorkspace 进入目录
  4. touch hello.sh 创建文件
  5. chmod 777 hello.sh 给予权限
  6. vi hello.sh 编辑文件,添加内容echo "hello docker!......

  1. touch Dockerfile创建文件
  2. vi Dockerfile 编辑文件,添加以下内容
FROM alpine:latest
ADD ./hello.sh /hello.sh
RUN chmod +x /hello.sh
CMD ["/bin/sh","-c","/hello.sh"]

  1. docker build -t hello-docker .

◆终端利用Docker build创建Hello-Docker镜像截屏,需要截屏[3]。 ··
这个第一次失败了,又运行一遍就成功了……有点玄学。
docker images查看镜像列表,创建成功了。
在这里插入图片描述
也可以用docker run --name hello-docker hello-docker来运行一下,当然实验中没有提到就不多说明了。

3.2 镜像注册,创建个人实例,关联GitHub

用阿里云是因为要有关联GitHub的过程?因为要完成实验,所以只进行到实验需要的部分。PS.为什么不用阿里云要用星星的Docker Hub!
阿里云官网

3.2.1 阿里云关联GitHub

阿里云容器镜像服务
点击代码源,然后绑定GitHub就可以了。
在这里插入图片描述

3.2.2 阿里云创建个人实例

点击镜像仓库->创建镜像仓库
在这里插入图片描述
然后关联一下GitHub,之后退出刷新一下页面就出来了(提示仓库已存在)。

3.3 把自己的镜像发布到Docker Hub

上面的阿里云只是走个过场,这个才是要真提交的。
Docker Hub官网直接注册就行了……注册就不多说了Register。

3.3.1 Docker Hub创建仓库

点击上面的Repositories,然后新建一个仓库。
在这里插入图片描述

3.3.2 在Docker上登录Docker Hub

终端输入:docker login -u 用户名 -p 密码,账号密码自己知道。
在这里插入图片描述

3.3.3 推送镜像

因为我虚拟机可能存在一些问题(大概率是网络问题)无法push到Docker Hub(用阿里云没问题),有的人可能没有这个问题。
由于我暂时没有使用Docker Hub因此之后的步骤用的是同学提供的截图!
十分感谢!

docker tag [镜像id] [网站上的位置]:[自定义Tag名字]

标准化一下,先打个标签docker tag hello-docker:latest fengjiahuan/fengjh032:version_1.0。(tag自己起没有标准)
其中fengjiahuan/fengjh032是Docker Hub的用户名/仓库名
在这里插入图片描述

docker push [网站上的位置]:[自定义Tag名字]

◆终端推送Hello-Docker到DockerHub的截屏,需要截屏[4]
直接执行docker push fengjiahuan/fengjh032:version_1.0 如果不带tag就默认是latest
在这里插入图片描述

3.3.4 验证是否成功

◆在网页进入DockerHub用户,查看推送的Hello-Docker镜像截屏,需要截屏[7]
在这里插入图片描述

3.4 拉取验证自己的发布的镜像

最后一部分用阿里云代替了,应该差不多一样。

docker pull docker.io/[用户名]/[仓库名]:[镜像版本号]

◆终端执行pull从DockerHub拉取Hello-Docker镜像截屏,截屏[5]。
docker pull registry.cn-qingdao.aliyuncs.com/wtcsky/hello_docker:v1.0
在这里插入图片描述
最后查看一下
◆终端执行Docker Images截屏(红色框圈中刚刚拉取的镜像),截屏[6]。
在这里插入图片描述

4. 番外篇

博客按照任务的顺序编写,中间小节按照需要截图的来分配。
通过Ctrl + F开启搜索,搜索关键字符就可以找到七个截图的位置(当然会搜索到8个,因为这句话里也有一个)。
在这里插入图片描述
…写的挺水的,有问题随时修改吧。

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

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

相关文章

springboot+vue留守儿童爱心网站(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的留守儿童爱心网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

这个代码生成器火了…SmartSoftHelp

火了&#xff0c;火了…SmartSoftHelp 开源C#代码生成器&#xff0c;专注.NET&#xff0c;Sqlserver&#xff0c;最简单&#xff0c;最干净&#xff0c;支持自编码的开源工具&#xff0c;SmartSoftHelp 开发辅助优化工具&#xff01; 下载地址&#xff1a;https://pan.baidu.…

PC端网页特效

元素偏移量offset系列&#xff1a;&#xff08;使用其相关属性可以动态的得到该元素的位置&#xff08;偏移&#xff09;、大小 &#xff08;1&#xff09;获得元素距离带有定位父元素的位置 …

sqlserver 中的表值函数和标量函数

目录 一、表值函数 1.内联表值函数 1.创建函数 2.调用函数 3.返回结果 2.多语句的表值函数 2.调用函数 3.返回结果 3.内联表值函数和多语句的表值函数的区别 1.语法上 2.结构上 二、标量函数 1.创建函数 2.调用函数 2.返回结果 总结 一、表值函数 表值函数是返回一个Table类型…

2023年必备!这些值得信赖的问卷调查工具

随着我们进入2023年&#xff0c;可靠的调查问卷工具对研究和数据收集的重要性比以往任何时候都更加明显。随着在线调查和远程数据收集的兴起&#xff0c;越来越多的用户和企业都开始注重数据安全&#xff0c;所以使用值得信赖和有效的工具至关重要。在这篇文章中&#xff0c;小…

Spring的第十六阶段:数据库的事务隔离级别

数据库事务隔离级别 1、为什么会出现数据库的隔离级别呢? 数据库隔离级别是为了解决数据库并发访问过程中产生的各种数据安全问题. 四种事务隔离级别&#xff1a; 一&#xff1a;读未提交 read uncommitted 二&#xff1a;读已提交 read committed ( oracle默认 ) 三&…

教大家如何使用VS Code远程开发ubuntu和服务器项目

目录 前提条件 一、ubuntu中安装openssh服务器 二、配置本地VSCode 三、本地查看、编辑ubuntu中的代码 前提条件 1.本地已经安装了Visual Studio Code IDE软件&#xff0c; 2.ubuntu虚拟机安装完成 一、ubuntu中安装openssh服务器 1.1使用如下命名进行安装&#xff1a; …

测试老鸟总结,性能测试常见测试缺陷,卷出高级突破测试圈...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试&#xf…

【机器学习】LightGBM 解读 (集成学习_Boosting_GBM)

【机器学习】LightGBM 解读 &#xff08;集成学习_Boosting_GBM&#xff09; 文章目录 【机器学习】LightGBM 解读 &#xff08;集成学习_Boosting_GBM&#xff09;1. 介绍2. 数据预处理2.1 基于梯度的单边采样&#xff08;GOSS&#xff09;2.2 互斥特征捆绑&#xff08;EFB&am…

免费安装注册 IDM 使用流程,简单方便易操作 IDM 在B站没有显示下载按钮

文章目录 下载 IDM运行脚本winr快捷键调出运行窗口输入powershell并运行上述脚本开始注册注册成功IDM 在B站没有显示下载按钮 下载 IDM 官网链接&#xff1a;Internet Download Manager: The fastest download accelerator 运行脚本 # Enable TLSv1.2 for compatibility wi…

多目标优化算法求解无人机三维路径规划

一、无人机模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节&#xff0c;无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上&#xff0c;计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找起飞点和目…

Python学习19:输出斐波拉契数列的前n项

描述&#xff1a; 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列、因数学家列昂纳多斐波那契&#xff08;Leonardoda Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样一个数列&a…

Unity2019配置JDK、SDK、NDK、Gradle

用Unity开发了一个使用AR Foundation的小项目&#xff0c;导出项目需要在安卓手机上进行测试。在导出时遇到了配置环境的问题&#xff0c;查找了很多方法终于解决。记录一下。 我所使用的unity版本是2019.2.12f。在完成项目需要导出时&#xff0c;在首选项设置中需要设置JDK、…

我的职业转型之路:从点工到自动化测试工程师仅用了四个月

目录 引言 1、知识体系化 2、我的成长路线 功能测试——>UI自动化 UI自动化——>接口自动化 接口自动化——>性能测试 软件测试工程师发展规划路线 一、测试基础 二、Linux必备知识 三、Shell脚本 四、互联网程序原理 五、MySQL数据库 六、抓包工具 七、…

Altium designer—STM32F103C8T6最小系统原理图

分享使用Altium designer软件绘制的STM32F103C8T6最小系统电路原理图 亲测可用&#xff0c;完整电路文件资源见文末链接 一、电路原理图 STM32F103C8T6是STM32入门级的芯片&#xff0c;性价比很高&#xff0c;资源相对比较丰富&#xff0c;该最小系统包括STM32F103C8T6芯片、…

使用预定义类

目录 &#x1f345; 一、对象与对象变量 &#x1f34e; 二、Java类库中的LocalDate类 &#x1f96d; 三、更改器方法与访问器方法 &#x1f9d1;‍&#x1f4bb;CSDN主页&#xff1a;夏志121的主页 &#x1f4cb;专栏地址&#xff1a;Java核心技术专栏 在Java中&#xff0c;…

形态学图像处理和图像分割MATLAB实验

文章目录 一、实验目的二、实验内容1. 开运算和闭运算实验。2. 用形态学处理提取边界。4. 全局阈值处理。 一、实验目的 理解腐蚀和膨胀的原理&#xff0c;掌握开运算、闭运算及形态学的边界提取。掌握孤立点检测、线检测和边缘检测的方法。掌握全局阈值处理的方法。 二、实验…

2023 上半年软件设计师知识点复习总纲

前言&#xff1a;全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;以下简称IT职业资格考试&#xff09;是由中华人民共和国人事部主管&#xff0c;国家计算机网络与信息安全管理中心主办的一项国家级、权威性的计算机职业技能水平认证考试。主要…

【人力资源管理】第4集 免费开源ERP: Odoo 16 Appraisal员工绩效评估 构建一体化企业人力资源管理

文章目录 前言一、概览二、主要功能1.设置定期的员工评估2.构建正确的评估3.设计您自己的调查4.自动评估过程 总结 前言 在员工工作中创建评估。同时审查员工表现。 一、概览 员工评价 评估内容 目标制定 评价指标 评价分析 二、主要功能 1.设置定期的员工评估 强化贵公司的…

Learning C++ No.21 【AVL树实战】

引言&#xff1a; 北京时间&#xff1a;2023/5/13/10:13&#xff0c;饥肠辘辘&#xff0c;为了将红黑树的博客赶出来&#xff0c;导致现在还没有吃早饭&#xff0c;所以现在先容我去吃一下早饭&#xff0c;ok&#xff0c;转眼一看&#xff0c;12:25&#xff0c;哈哈哈&#xf…