当前位置: 首页 > news >正文

在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置

你遇到的大部分ubuntu中配置hadoop的问题这里都有解决方法!!!(近10000字)

概要

Docker虚拟容器环境下,进行Hadoop-3.2.2分布式集群环境的配置与安装,完成基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置。

1.主要步骤

  1. 安装配置启动Docker虚拟容器
  2. 配置主机名
  3. 配置自动时钟同步
  4. 配置hosts列表
  5. 配置免密码登录
  6. 安装JDK(在三台节点分别操作此步骤)
  7. 安装部署Hadoop集群

2、实验环境

虚拟机数量:3

系统版本:Centos Stream/Ubuntu 20.418.4

Hadoop版本:Apache Hadoop 3.2.23.2.1

3、相关技能

熟悉Linux操作系统

Hadoop原理

4、知识点

常见Linux命令的使用

linux系统基础配置

配置JDK

配置Hadoop的相关参数

掌握Hadoop操作指令

在安装Docker之前安装一些必要的依赖包:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

添加 Docker 的官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加 Docker 的 APT 源

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

更新 APT 包索引

sudo apt update

安装 Docker CE

sudo apt install docker-ce

安装完成后,您可以通过运行以下命令来验证 Docker 是否成功安装:

sudo systemctl status docker

下载Docker compose

sudo apt update
sudo apt install docker-compose
docker-compose version  

创建Docker-compose.yml

将以下内容放入yml:

version: "3"  services:  master:  image: ubuntu:latest  container_name: masternode  privileged: true  networks:  hadoop:  ipv4_address: 10.10.0.11  ports:  - 9870:9870  - 9000:9000  - 18040:18040  - 18030:18030  - 18025:18025  - 18141:18141  - 18088:18088  - 50070:50070  - 60000:60000  - 16000:16000  - 8080:8080  volumes:  - hadoop:/hadoop/master  - ./Files:/Files  environment:  - CLUSTER_NAME=hadoop_cluster_simple  stdin_open: true  tty: true  slave01:  image: ubuntu:latest  container_name: slave01node  privileged: true  networks:  hadoop:  ipv4_address: 10.10.0.12  volumes:  - hadoop:/hadoop/slave01  - ./Files:/Files  environment:  - CLUSTER_NAME=hadoop_cluster_simple  stdin_open: true  tty: true  slave02:  image: ubuntu:latest  container_name: slave02node  privileged: true  networks:  hadoop:  ipv4_address: 10.10.0.13  volumes:  - hadoop:/hadoop/slave02  - ./Files:/Files  environment:  - CLUSTER_NAME=hadoop_cluster_simple  stdin_open: true  tty: true  slave03:  image: ubuntu:latest  container_name: slave03node  privileged: true  networks:  hadoop:  ipv4_address: 10.10.0.14  volumes:  - hadoop:/hadoop/slave03  - ./Files:/Files  environment:  - CLUSTER_NAME=hadoop_cluster_simple  stdin_open: true  tty: true  volumes:  hadoop:  networks:  hadoop:  driver: bridge  ipam:  driver: default  config:  - subnet: "10.10.0.0/24" 

在docker镜像地址中有已无法进入的地址,需要换源,具体看:完美解决Docker pull时报错:https://registry-1.docker.io/v2/-CSDN博客

启动Docker虚拟容器

sudo docker-compose -f docker-compose.yml  up

打开三个新的终端窗口,分别登录master、slave01和slave02节点(按下ctrl + d可以从各节点退出

sudo docker exec -it masternode /bin/bash
sudo docker exec -it slave01node /bin/bash
sudo docker exec -it slave02node /bin/bash

使用vim编辑masternode主机名

vi /etc/hostname

docker容器中没有vim包需要下载:

apt-get update
apt-get install -y vim

同理将slave01和slave02也改好

使用Linux命令crontab配置定时任务进行自动时钟同步(分别进入三个节点)

apt install -y croncrontab -e

    按”i ”键,进入INSERT模式;输入下面的内容(星号之间和前后都有空格)  

0 1 * * * ntpdate cn.pool.ntp.org

   按Esc键退出INSERT模式,按下“shift+:”键,输入wq保存修改并退出

  手动同步时间,直接在Terminal运行下面的命令

  

apt install -y ntpdatentpdate cn.pool.ntp.org

分别在三个节点配置hosts列表

在各虚拟机中运行ifconfig命令,获得当前节点的ip地址

apt install -y net-toolsifconfig

分别获得三个结点的ip地址

编辑主机名列表文件

vi /etc/hosts

将下面三行添加到/etc/hosts文件中,保存退出

#master节点对应IP地址是10.10.0.11,slave01对应的IP是10.10.0.12,slave02对应的IP是10.10.0.13
10.10.0.11 master
10.10.0.12 slave01
10.10.0.13 slave02

Ping主机名,按“Ctrl+C”终止命令

ping master 
ping slave01  
ping slave02

三个虚拟节点的免密码登录配置

先在master节点上进行配置,生成rsa的SSH公钥

apt install -y openssh-clientssh-keygen -t rsa

生成的密钥在用户根目录中的.ssh子目录中,进入.ssh目录,查看目录文件

cd ~/.ssh/ls

将id_rsa.pub 文件追加到authorized_keys文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

修改authorized_keys文件的权限,命令如下:

chmod 600 ~/.ssh/authorized_keys

将专用密钥添加到 ssh-agent 的高速缓存中

ssh-agent bashssh-add ~/.ssh/id_rsa

将authorized_keys文件复制到slave01、slave02节点root用户的根目录,命令(在宿主机终端下执行)如下:

     sudo docker cp  masternode:/root/.ssh/authorized_keys .sudo docker cp  authorized_keys slave01node:/root/.ssh/sudo docker cp  authorized_keys slave02node:/root/.ssh/

打开主机和三个节点的防火墙

apt install ufw -y

验证免密登陆

ssh slave01

退出slave01远程登录

exit

通过apt-get安装JDK

apt-get install openjdk-8-jdk

使用vim修改“.bashrc”

 vi ~/.bashrc 

复制粘贴以下内容添加到到上面vim打开的文件中:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

export PATH=$JAVA_HOME/bin:$PATH

使环境变量生效,查看Java版本

 source ~/.bashrcjava -version

安装部署Hadoop集群

说明:每个节点上的Hadoop配置基本相同,在master节点操作,然后复制到slave01、slave02两个节点。

hadoop用Ubuntu自带的火狐浏览器下载,镜像地址:

https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/

将/目录下的hadoop-3.4.1.tar.gz压缩包解压到/hadoop-3.4.1目录下:

sudo tar -zxf /home/Downloads/hadoop-3.4.1.tar.gz -C /usr/local

-zxf后面的是刚才下载的压缩包路径,如果没安装输入法打不了中文的可以直接找到刚才下载的那个压缩包点复制然后粘贴到命令行就是路径了

配置hadoop-env.sh文件

vi /usr/local/hadoop-3.4.1/etc/hadoop/hadoop-env.sh

在hadoop-env.sh文件中添加JAVA环境变量:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

配置yarn-env.sh文件

vi /usr/local/hadoop-3.4.1/etc/hadoop/yarn-env.sh

在yarn-env.sh文件中添加JAVA环境变量

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

配置core-site.xml 文件

vi /usr/local/hadoop-3.4.1/etc/hadoop/core-site.xml

复制粘贴以下内容,添加到上面vim打开的core-site.xml 文件中:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop</value>
</property>
</configuration>

配置hdfs-site.xml 文件

vi /usr/local/hadoop-3.4.1/etc/hadoop/hdfs-site.xml

复制粘贴以下内容,添加到到上面vim打开的hdfs-site.xml 文件中:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

配置yarn-site.xml 文件

 vi /usr/local/hadoop-3.4.1/etc/hadoop/yarn-site.xml

复制粘贴以下内容,添加到到上面vim打开的yarn-site.xml 文件中:

<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>

配置mapred-site.xml 文件

vi /usr/local/hadoop-3.4.1/etc/hadoop/mapred-site.xml

复制粘贴以下内容,添加到到上面vim打开的mapred-site.xml 文件中:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

配置workers 文件

vi /usr/local/hadoop-3.4.1/etc/hadoop/workers

复制粘贴以下内容,添加到到上面vim打开的workers文件中:

slave01slave02

将配置好的hadoop-3.4.1文件夹复制到从节点

scp -r /usr/local/hadoop-3.4.1/ root@master:/
scp -r /usr/local/hadoop-3.4.1/ root@slave01:/
scp -r /usr/local/hadoop-3.4.1/ root@slave02:/

如果输入密码错误:需要在从节点用 passwd root命令设置密码

如果显示无法连接错误:

 安装 OpenSSH 服务端
apt update && apt install -y openssh-server
启动 SSH 服务
service ssh start 
配置 SSH
vi /etc/ssh/sshd_config

添加:

PermitRootLogin yes     # 允许 root 登录(仅测试环境)
PasswordAuthentication yes

重启ssh服务:
 

service ssh restart 

结果如下:

配置Hadoop环境变量(在三台节点分别操作此步骤)

vi ~/.bashrc

在.bashrc末尾添加如下内容:

##HADOOP
export HADOOP_HOME=/hadoop-3.4.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

使环境变量生效

source ~/.bashrc 

格式化Hadoop文件目录(在master上执行)

说明:格式化后首次执行此命令,提示输入y/n时,输入y。

 hdfs namenode -format 

启动Hadoop集群(在master上执行):

start-all.sh

查看Hadoop进程是否启动,在master的终端执行jps命令,出现下图效果

 jps

浏览器地址栏中输入http://127.0.0.1:9870/,检查namenode 和datanode 是否正常,如下图所示:

在浏览器地址栏中输入http://127.0.0.1:18088/,检查Yarn是否正常,如下图所示:

运行PI实例检查集群是否成功,成功如下图所示:

hadoop jar /hadoop-3.4.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.1.jar pi 10 10

其他细节事项:

首先打开VMware虚拟机,进入Ubuntu操作系统,进入终端:

然后在终端切换到root用户:

设置 root 用户的密码:

sudo passwd root

输入密码后切换到root模式:

 su root

在Linux安装软件时需要用到yum命令,也可以是apt-get命令,以下介绍如何在ubtuntu中安装配置yum




接下来是安装build-essential程序包和yum:

apt-get install build-essential
apt-get install yum

在安装yum后可能会遇到以下报错:

E: Unable to locate package yum

这时候需要手动下载yum:

  1. 备份sources.list文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

     2.更换源

sudo vim /etc/apt/sources.list

如果这个时候报错无法发现vim

sudo apt-get update
sudo apt-get install vim

按照上述方式下载vim

     3.vim编辑

接下来会进入到sources.list的内容里进行编辑

  • 点击insert进入编辑模式
  • 将下面网站文本复制粘贴并覆盖,粘贴的命令是 shift + insert。记得选择相应的Linux版本,此处为Ubuntu 20.04

在第一行添加镜像源如下:

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

       4.更新源

sudo apt-get update

      5.安装yum

sudo apt-get install yum

然后如果有以下提示:
The following packages have unmet dependencies:

按照提示逐一安装依赖:

sudo apt-get install python-sqlitecachec
sudo apt-get install python-pycurl
sudo apt-get install python-urlgrabber

再次安装yum:

sudo apt-get install yum 

安装yum成功:

yum --version

最后将自己配置的repo文件用yum-config-manager进行yum软件源添加:

 yum-config-manager --add-repo /etc/yum.repo.d/my.repo 

 通过使用yum repolist命令查看时,由于刚下载yum,显示库的软件信息为0

这时需要配置yum源

参考这篇博主的文章:

# ubuntu 系统使用 yum命令报错 There are no enabled repos.Run “yum repolist all“ to see the repos you have..._there are no enabled repos. run "yum repolist all"-CSDN博客

好了之后就可以安装了

 yum upgradeyum install net-tools



设置root密码

在docker容器内,初始化root密码,用于下一步的登录。

passwd root

相关文章:

在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置

你遇到的大部分ubuntu中配置hadoop的问题这里都有解决方法&#xff01;&#xff01;&#xff01;&#xff08;近10000字&#xff09; 概要 在Docker虚拟容器环境下&#xff0c;进行Hadoop-3.2.2分布式集群环境的配置与安装&#xff0c;完成基于Yarn模式的一个Master节点、两个…...

go day 01

go day 01 配置go环境 install go on D:\huang\lang\go\D:\huang\lang\go\bin\go xxx.go # D:\huang\lang\go\bin 设置到环境变量go go version# 创建任意一个目录,创建三个文件夹 # D:\huang\lang\goProject bin、pkg、src # 创建三个系统环境变量 GOROOT GOPATH GOBIN # GOR…...

(二)RestAPI 毛子(Tags)

文章目录 项目地址一、给Habit添加Tags1.1 创建Tags1. 创建一个新的HabitTags实体2. 设置Habit和Tags的关系3. 设置HabitTag表4. 在HabitConfiguration里配置5. 将表添加到EFCore里6. 迁移数据 1.2 给Habit增加/修改标签1. 创建UpsertHabitTagsDto2. 创建查询HabitWithTagsDto3…...

Elasticsearch:使用机器学习生成筛选器和分类标签

作者&#xff1a;来自 Elastic Andre Luiz 探索使用机器学习模型与传统硬编码方法在搜索体验中自动创建筛选器和分类标签的优缺点 筛选器和分类标签是用来优化搜索结果的机制&#xff0c;帮助用户更快速地找到相关内容或产品。在传统方法中&#xff0c;规则是手动定义的。例如…...

Python接口自动化测试之UnitTest详解

↵ 基本概念 UnitTest单元测试框架是受到JUnit的启发&#xff0c;与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化&#xff0c;配置共享和关机代码测试。支持将测试样例聚合到测试集中&#xff0c;并将测试与报告框架独立。 它分为四个部分test fixture、Te…...

《概率论与数理统计》期末复习笔记_上

目录 第1章 随机事件与概率 1.1 随机事件 1.2 事件的关系与运算 1.3 概率的定义与性质 1.4 古典概型_重点 1.5 几何概型 1.6 条件概率与乘法公式 1.7 全概率公式与贝叶斯公式_重点 1.8 事件的独立性_重点 1.9 伯努利概型_重难点 第2章 随机变量及其分布 2.1 随机变…...

工程师 - Doxygen介绍

Code Documentation. Automated. Free, open source, cross-platform. Version 1.12.0 is now available! Release date: 7 August 2024 官方网址&#xff1a; Doxygen homepage 文档&#xff1a; Doxygen: Overview Github网址&#xff1a; https://github.com/doxygen/…...

开源且完全没有审核限制的大型语言模型的概述

开源且完全没有审核限制的大型语言模型的概述 关键要点 研究表明&#xff0c;存在多个开源的大型语言模型&#xff08;LLM&#xff09;完全没有审核限制&#xff0c;适合开放对话。包括基于 Llama、Mixtral、Phi-2 和 StableLM 的模型&#xff0c;参数范围从 2.78 亿到 4050 亿…...

Qt QTableView QAbstractTableModel实现复选框+代理实现单元格编辑

话不多说&#xff0c;直接看代码 一、Model 1、QTableModel_Test.h #pragma once#include <QAbstractTableModel> #include <QObject> #include <QModelIndex>class QTableModel_Test : public QAbstractTableModel {Q_OBJECT public:QTableModel_Test(Q…...

2025.3.19

1、用vim编辑/etc/hosts文件&#xff0c;将本机和第二个虚拟机的ip地址和主机名写入该文件&#xff0c;然后ping 两个主机的主机名能否ping通&#xff1b; &#xff08;1&#xff09;在第一个虚拟机编辑/etc/hosts: 首先使用hostname、hostnamectl、hostname -f指令查看主机名…...

GATT(Generic Attribute Profile)是蓝牙低功耗(Bluetooth Low Energy,简称BLE)协议栈中的一个核心协议

蓝牙的 GATT&#xff08;Generic Attribute Profile&#xff09; 是蓝牙低功耗&#xff08;Bluetooth Low Energy&#xff0c;简称BLE&#xff09;协议栈中的一个核心协议&#xff0c;用于定义设备如何通过蓝牙进行数据传输和交互。GATT 是基于 ATT&#xff08;Attribute Proto…...

打造下一代智能体验:交互型 AI 的崛起与实践

在人工智能技术不断飞跃的今天&#xff0c;我们正迎来一个从"一问一答"向"多轮交互、智能反馈"转变的新时代——交互型 AI&#xff08;Interactive AI&#xff09;。 什么是交互型 AI&#xff1f; 交互型 AI 指的是具备多轮对话能力、状态记忆、工具调用…...

关于uint8_t、uint16_t、uint32_t、uint64_t的区别与分析

一、类型定义与字节大小 uint8_t、uint16_t、uint32_t、uint64_t 是 C/C 中定义的无符号整数类型&#xff0c;通过 typedef 对基础类型起别名实现。位宽&#xff08;bit&#xff09;和字节数严格固定&#xff1a; uint8_t&#xff1a;8 位&#xff0c;占用 ​1 字节&#xff…...

19685 握手问题

19685 握手问题 ⭐️难度&#xff1a;简单 &#x1f31f;考点&#xff1a;2024、省赛、数学 &#x1f4d6; &#x1f4da; package test ;import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);…...

react redux的学习,单个reducer

redux系列文章目录 一 什么redux&#xff1f; redux是一个专门用于做状态管理的JS库(不是react插件库)。它可以用在react, angular, vue等项目中, 但基本与react配合使用。集中式管理react应用中多个组件共享的状 简单来说&#xff0c;就是存储页面的状态值的一个库&#xf…...

CCF GESP C++编程 二级认证真题 2025年3月

C 二级 2025 年 03 月 CCF GESP C编程 二级认证真题 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 D C A A D A D A C B C D B C C 1 单选题 第 1 题 2025年春节有两件轰动全球的事件&#xff0c;一个是DeepSeek横空出世&#xff0c;另一个是贺岁片《哪吒2》票房惊人&#…...

Lua函数与表+Lua子文件加载与元表

Lua函数相关示例代码 --脚本型语言&#xff0c;不能先调用&#xff0c;再定义&#xff0c;因为代码是从上往下执行的 --第一种声明函数 function func1()print("这是func1") end--先定义&#xff0c;再调用&#xff0c;没有问题 func1() -------------------------…...

Linux systemd 服务全面详解

一、systemd 是什么&#xff1f; systemd 是 Linux 系统的现代初始化系统&#xff08;init&#xff09;和服务管理器&#xff0c;替代传统的 SysVinit 和 Upstart。它不仅是系统启动的“总指挥”&#xff0c;还统一管理服务、日志、设备挂载、定时任务等。 核心作用 服务管理…...

Linux系统调用编程

目录 1.Linux下进程和线程进程线程区别查看进程pid终止进程pid 2.Linux虚拟内存管理与stm32内存映射设计目标与架构差异地址空间管理机制对比内存使用与性能特性 3.Linux系统调用函数fork()wait()exec() 4.树莓派环境下练习创建账号1创建用户账号2.配置用户权限3.查看用户 登录…...

AWS Langfuse AI用Bedrock模型使用完全教程

AWS Langfuse AI使用完全教程 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 AWS Langfuse AI使用完全教程Langfuse是什么?准备工作创建Langfuse账户1.创建LLM应用程序启用Bedrock…...

【Docker项目实战】使用Docker部署MediaCMS内容管理系统

【Docker项目实战】使用Docker部署MediaCMS内容管理系统 前言一、MediaCMS介绍1.1 MediaCMS 简介1.2 主要特点1.3 使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载Med…...

OpenHarmony子系统开发 - DFX(一)

OpenHarmony子系统开发 - DFX&#xff08;一&#xff09; 一、DFX概述 简介 在OpenHarmony中&#xff0c;DFX(Design for X)是为了提升质量属性的软件设计&#xff0c;目前包含的内容主要有&#xff1a;DFR&#xff08;Design for Reliability&#xff0c;可靠性&#xff09…...

深入解析:使用Python爬取Bilibili视频

深入解析&#xff1a;使用Python爬取Bilibili视频 引言 Bilibili&#xff0c;作为中国领先的年轻人文化社区&#xff0c;拥有海量的视频资源。对于想要下载Bilibili视频的用户来说&#xff0c;手动下载不仅费时费力&#xff0c;而且效率低下。本文将介绍如何使用Python编写一…...

详解数据结构线性表 c++实现

线性表 线性表是一种非常基础且重要的数据结构&#xff0c;它是具有相同数据类型的 n&#xff08;n≥0&#xff09;个数据元素的有限序列。这里的 “有限” 意味着元素的数量是确定的&#xff0c;“序列” 则表示元素之间存在着顺序关系。 顺序表 顺序表是线性表的一种顺序存…...

Prolog语言的网络协议栈

Prolog语言的网络协议栈 引言 网络协议栈是现代计算机网络的重要组成部分&#xff0c;它负责在网络中的各个节点之间以标准化的方式传输数据。在这一体系中&#xff0c;不同层次的协议相互协作&#xff0c;以实现从物理传输到应用层数据处理的功能。Prolog是一种以符号逻辑为…...

音视频基础(音频常用概念)

文章目录 **1. 比特率&#xff08;Bitrate&#xff09;****概念****影响****音频比特率****视频比特率** **2. 码率&#xff08;Bitrate&#xff09;****3. 帧&#xff08;Frame&#xff09;****概念****视频帧****音频帧** **4. 帧长&#xff08;Frame Length&#xff09;****…...

洛谷题单3-P5725 【深基4.习8】求三角形-python-流程图重构

题目描述 模仿例题&#xff0c;打印出不同方向的正方形&#xff0c;然后打印三角形矩阵。中间有个空行。 输入格式 输入矩阵的规模&#xff0c;不超过 9 9 9。 输出格式 输出矩形和正方形 输入输出样例 输入 4输出 01020304 05060708 09101112 13141516010203040506 …...

【数据结构】邻接表 vs 邻接矩阵:5大核心优势解析与稀疏图存储优化指南

邻接表法 导读一、邻接矩阵的不足邻接表二、存储结构三、算法评价3.1 时间复杂度3.2 空间复杂度 四、邻接表特点4.1 特点解读特点3特点4特点5 结语 导读 大家好&#xff0c;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 图作为一种复杂的数据结构&#xff0c;其…...

编程能力的跃迁时刻:技术革命与认知重构的交响曲

在软件开发领域,从业者常将"一万小时定律"视为能力增长的圭臬,但真正的能力跃迁往往发生在特定技术范式转换的临界点。当开发者首次理解递归算法的本质,当面向对象编程替代过程式思维,当自动化工具链重塑开发流程,这些认知地震时刻往往成为技术生涯的分水岭。 …...

PostIn V1.0.8版本发布,IDEA 插件支持一键扫描上报,让接口定义不再繁琐

PostIn是一款国产开源免费的接口管理工具&#xff0c;包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块&#xff0c;支持常见的HTTP协议、websocket协议等&#xff0c;支持免登陆本地接口调试&#xff0c;同时可以对项目进行灵活的成员权限、消息通知管理等。本周Pos…...

删除Linux服务器上多余的系统启动项,并重装Ubuntu系统

问题描述 2024年6月&#xff0c;Centos团队终止维护Centos7系统&#xff0c;Ubuntu成了我的替换方案。正好有一台闲置的服务器&#xff0c;于是我临危受命给这台服务器重装系统。 经过我一番研究&#xff0c;Ubuntu系统初步安装成功了&#xff0c;但是存在一大堆问题&#xff…...

在亚马逊云科技上使用n8n快速构建个人AI NEWS助理

前言&#xff1a; N8n 是一个强大的工作流自动化工具&#xff0c;它允许您连接不同的应用程序、服务和系统&#xff0c;以创建自动化工作流程&#xff0c;并且采用了开源MIT协议&#xff0c;可以放心使用&#xff0c;他的官方网站也提供了很多的工作流&#xff0c;大家有兴趣的…...

JSON介绍及使用

1.JSON 1.JSON简介 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据序列化协议&#xff0c;基于文本&#xff0c;完全独立于语言。 JSON由键值对组成&#xff0c;支持以下几种数据类型&#xff1a; 字符串&#xff1a;用双引号括起来的文本。 数…...

AOP 的织入过程是怎样的?

AOP&#xff08;面向切面编程&#xff09;的织入&#xff08;Weaving&#xff09;是将切面&#xff08;Aspect&#xff09;应用到目标对象&#xff08;Target Object&#xff09;并创建代理对象&#xff08;Proxy Object&#xff09;的过程。这个过程可以发生在不同的阶段&…...

链路聚合配置命令

技术信息 加入捆绑组&#xff0c;加大链路间带宽等 配置命令 华三 静态聚合 将接口加入聚合口后再进行配置 //创建静态链路聚合口1&#xff0c;不启用lacp[SWB]interface Bridge-Aggregation 1 [SWB-Bridge-Aggregation1]port link-type trunk [SWB-Bridge-Aggregation…...

为什么有的深度学习训练,有训练集、验证集、测试集3个划分,有的只是划分训练集和测试集?

在机器学习和深度学习中&#xff0c;数据集的划分方式取决于任务需求、数据量以及模型开发流程的严谨性。 1. 三者划分&#xff1a;训练集、验证集、测试集 目的 训练集&#xff08;Training Set&#xff09;&#xff1a;用于模型参数的直接训练。验证集&#xff08;Validati…...

【读书笔记·VLSI电路设计方法解密】问题61:扫描插入的目的是什么

如问题60所述,要构建可测试电路,必须确保电路中每个节点都具有可控性和可观测性。但对于包含时序元件(如触发器、锁存器等存储元件)的电路,若不采取特殊设计则难以实现这两项特性。这是因为时序元件关联节点的逻辑状态不仅取决于当前输入,还受其先前存储状态影响——它们…...

通信数据记录仪-产品概念ID

总结: 1、支持高速CAN、支持容错CAN、支持单线CAN(理解是支持不同的协议,CANFD、CAN2.0和LIN?) 2、 通过上位机设计时间...

【数据分享】2002-2023中国湖泊水位变化数据集(免费获取)

湖泊水位变化是研究水资源动态、生态系统演变和气候变化影响的重要指标。湖泊水位的升降不仅反映了降水、蒸发和入流水量的变化&#xff0c;还与人类活动、气候波动及地质过程密切相关。因此&#xff0c;高精度、长时间序列的湖泊水位数据对于水资源管理、洪水预测以及生态环境…...

SQL注入重新学习

前话 sql注入一般就是构造闭合&#xff0c;在查询语句中构造恶意语句&#xff0c;因为过滤并不严格导致信息泄露&#xff0c; 后台登陆语句&#xff1a;SELECT * FROM admin WHERE Username‘user’ and Password‘pass’ 万能密码&#xff1a;‘or ’1‘ ’1‘ # ; sql常用…...

修改Jupyter Notebook主目录文件夹

1、找到Jupyter Notebook配置文档 在anaconda prompt终端输入以下命令&#xff0c;可以显示配置文档所在位置&#xff1a; jupyter notebook --generate-config2、修改Jupyter Notebook主目录文件夹 用记事本打开文件夹中的jupyter_notebook_config.py文件。 在记事本中使用…...

玩转JSONObject:使用方法详解与Map对比

一、初识JSONObject 什么是JSONObject&#xff1f; JSONObject是Java中处理JSON数据的核心工具类&#xff0c;主流JSON库均提供类似实现&#xff1a; org.json&#xff08;原生包&#xff09;com.alibaba.fastjson.JSONObjectnet.sf.json.JSONObject 基础创建姿势 <JAV…...

LC416 vector<bool> 和 bool[] 的异同

LeetCode 416 1. 报错代码 // 01背包&#xff0c;从n个数字里面选&#xff0c;能否凑出和为s的方案 class Solution { public:bool canPartition(vector<int>& nums) {int m accumulate(nums.begin(), nums.end(), 0);if(m & 1) return false;m >> 1;…...

(51单片机)矩阵按键密码锁表白(C语言代码编撰)(矩阵按键教程)(LCD1602浅教程)

目录 源代码 main.c MatrixKey.c MatrixKey.h LCD1602.c LCD1602.h Delay.c Delay.h 运行效果图&#xff1a; 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 代码解析与教程&#xff1a; 延时函数Delay LCD1602 MatrixKey模块 源代…...

C++20新增内容

C20 是 C 语言的一次重大更新&#xff0c;它引入了许多新特性&#xff0c;使代码更现代化、简洁且高效。以下是 C20 的主要新增内容&#xff1a; 1. 概念&#xff08;Concepts&#xff09; 概念用于约束模板参数&#xff0c;使模板编程更加直观和安全。 #include <concept…...

思维链、思维树、思维图与思维森林在医疗AI编程中的应用蓝图

在医疗AI编程中,思维链(Chain of Thought, CoT)、思维树(Tree of Thoughts, ToT)、思维图(可能指知识图谱或逻辑图)以及思维森林(Forest-of-Thought, FoT)等技术框架通过模拟人类认知和推理过程,显著提升了AI在复杂医疗场景中的决策能力和可解释性: 1. 思维链(CoT)…...

[GN] Python3基本数据类型 -- 与C的差异

文章目录 前言Python3的基本数据类型6个标准的数据类型NumbersStringListtupleSetsDictionaries Python运算符逻辑 运算符成员运算符身份运算符 Python3 数字Python3 序列序列切片序列相加序列相乘序列相关内置函数 Python3 列表访问列表的值更新列表删除列表元素拼接列表嵌套列…...

TCP基础篇(一)

文章目录 1.TCP 是如何保证可靠性的?2. 滑动窗口机制3 超时重传4.TCP 报文格式5. 什么是 TCP 协议5.1 如何唯一确定一个 TCP 连接 6.TCP 三次握手过程6.1 可以两次握手吗? 7.TCP 的四次挥手7.1 为什么客户端要等待2MSL&#xff1f; 8.linux 中查看 TCP 的连接9.TCP 为什么要有…...

Spring-IOC部分

Spring-IOC部分 1.SpringBean的配置详解&#xff08;Bean标签&#xff09; &#xff08;1&#xff09;scope 默认情况下&#xff0c;单纯的Spring环境Bean的作用范围有两个&#xff1a;Singleton和Prototype singleton&#xff1a;单例&#xff0c;默认值&#xff0c;Spring…...

使用GitHub Actions构建CI/CD流程

GitHub Actions 简介 GitHub Actions 是一种自动化软件开发工作流的方式&#xff0c;与 GitHub.com 深度集成。开发人员可以通过配置 GitHub Actions 来实现基于事件触发的自动工作流&#xff0c;比如&#xff0c;当有任意用户向 master 分支提交代码时&#xff0c;自动执行一…...