Centos7搭建hadoop3.3.4分布式集群

news2025/7/19 12:23:17

文章目录

  • 1、背景
  • 2、集群规划
    • 2.1 hdfs集群规划
    • 2.2 yarn集群规划
    • 3、集群搭建步骤
      • 3.1 安装JDK
      • 3.2 修改主机名和host映射
      • 3.3 配置时间同步
      • 3.4 关闭防火墙
      • 3.5 配置ssh免密登录
        • 3.5.1 新建hadoop部署用户
        • 3.5.2 配置hadoopdeploy用户到任意一台机器都免密登录
      • 3.7 配置hadoop
        • 3.7.1 创建目录(3台机器都执行)
        • 3.7.2 下载hadoop并解压(hadoop01操作)
        • 3.7.3 配置hadoop环境变量(hadoop01操作)
        • 3.7.4 hadoop的配置文件分类(hadoop01操作)
        • 3.7.5 配置 hadoop-env.sh(hadoop01操作)
        • 3.7.6 配置core-site.xml文件(hadoop01操作)(核心配置文件)
        • 3.7.7 配置hdfs-site.xml文件(hadoop01操作)(hdfs配置文件)
        • 3.7.8 配置yarn-site.xml文件(hadoop01操作)(yarn配置文件)
        • 3.7.9 配置mapred-site.xml文件(hadoop01操作)(mapreduce配置文件)
        • 3.7.10 配置workers文件(hadoop01操作)
        • 3.7.11 3台机器hadoop配置同步(hadoop01操作)
          • 1、同步hadoop文件
          • 2、hadoop02和hadoop03设置hadoop的环境变量
  • 3、启动集群
    • 3.1 集群格式化
    • 3.2 集群启动
      • 3.2.1 逐个启动进程
      • 3.2.2 脚本一键启动
    • 3.3 启动集群
      • 3.3.1 启动hdfs集群
      • 3.3.2 启动yarn集群
      • 3.3.3 启动JobHistoryServer
    • 3.4 查看各个机器上启动的服务是否和我们规划的一致
    • 3.5 访问页面
      • 3.5.1 访问NameNode ui (hdfs集群)
      • 3.5.2 访问SecondaryNameNode ui
      • 3.5.3 查看ResourceManager ui(yarn集群)
      • 3.5.4 访问jobhistory
  • 4、参考链接

1、背景

最近在学习hadoop,本文记录一下,怎样在Centos7系统上搭建一个3个节点的hadoop集群。

2、集群规划

hadoop集群是由2个集群构成的,分别是hdfs集群和yarn集群。2个集群都是主从结构。

2.1 hdfs集群规划

ip地址主机名部署服务
192.168.121.140hadoop01NameNode,DataNode,JobHistoryServer
192.168.121.141hadoop02DataNode
192.168.121.142hadoop03DataNode,SecondaryNameNode

2.2 yarn集群规划

ip地址主机名部署服务
192.168.121.140hadoop01NodeManager
192.168.121.141hadoop02ResourceManager,NodeManager
192.168.121.142hadoop03NodeManager

3、集群搭建步骤

3.1 安装JDK

安装jdk步骤较为简单,此处省略。需要注意的是hadoop需要的jdk版本。 https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions

3.2 修改主机名和host映射

ip地址主机名
192.168.121.140hadoop01
192.168.121.141hadoop02
192.168.121.142hadoop03

3台机器上同时执行如下命令

# 此处修改主机名,3台机器的主机名需要都不同
[root@hadoop01 ~]# vim /etc/hostname
[root@hadoop01 ~]# cat /etc/hostname
hadoop01
[root@hadoop01 ~]# vim /etc/hosts
[root@hadoop01 ~]# cat /etc/hosts | grep hadoop*
192.168.121.140 hadoop01
192.168.121.141 hadoop02
192.168.121.142 hadoop03

修改主机名和host映射

3.3 配置时间同步

集群中的时间最好保持一致,否则可能会有问题。此处我本地搭建,虚拟机是可以链接外网,直接配置和外网时间同步。如果不能链接外网,则集群中的3台服务器,让另外的2台和其中的一台保持时间同步。

3台机器同时执行如下命令

# 将centos7的时区设置成上海
[root@hadoop01 ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 安装ntp
[root@hadoop01 ~]# yum install ntp
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
base                                           | 3.6 kB     00:00
extras                                         | 2.9 kB     00:00
updates                                        | 2.9 kB     00:00
软件包 ntp-4.2.6p5-29.el7.centos.2.aarch64 已安装并且是最新版本
无须任何处理
# 将ntp设置成缺省启动
[root@hadoop01 ~]# systemctl enable ntpd
# 重启ntp服务
[root@hadoop01 ~]# service ntpd restart
Redirecting to /bin/systemctl restart ntpd.service
# 对准时间
[root@hadoop01 ~]# ntpdate asia.pool.ntp.org
19 Feb 12:36:22 ntpdate[1904]: the NTP socket is in use, exiting
# 对准硬件时间和系统时间
[root@hadoop01 ~]# /sbin/hwclock --systohc
# 查看时间
[root@hadoop01 ~]# timedatectl
      Local time: 日 2023-02-19 12:36:35 CST
  Universal time: 日 2023-02-19 04:36:35 UTC
        RTC time: 日 2023-02-19 04:36:35
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
# 开始自动时间和远程ntp时间进行同步
[root@hadoop01 ~]# timedatectl set-ntp true

3.4 关闭防火墙

3台机器上同时关闭防火墙,如果不关闭的话,则需要放行hadoop可能用到的所有端口等。

# 关闭防火墙
[root@hadoop01 ~]# systemctl stop firewalld
systemctl stop firewalld
# 关闭防火墙开机自启
[root@hadoop01 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@hadoop01 ~]#

3.5 配置ssh免密登录

3.5.1 新建hadoop部署用户

[root@hadoop01 ~]# useradd hadoopdeploy
[root@hadoop01 ~]# passwd hadoopdeploy
更改用户 hadoopdeploy 的密码 。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@hadoop01 ~]# vim /etc/sudoers
[root@hadoop01 ~]# cat /etc/sudoers | grep hadoopdeploy
hadoopdeploy    ALL=(ALL)       NOPASSWD: ALL
[root@hadoop01 ~]#

新建hadoop部署用户

3.5.2 配置hadoopdeploy用户到任意一台机器都免密登录

配置3台机器,从任意一台到自身和另外2台都进行免密登录。

当前机器当前用户免密登录的机器免密登录的用户
hadoop01hadoopdeployhadoop01,hadoop02,hadoop03hadoopdeploy
hadoop02hadoopdeployhadoop01,hadoop02,hadoop03hadoopdeploy
hadoop03hadoopdeployhadoop01,hadoop02,hadoop03hadoopdeploy

此处演示从 hadoop01hadoop01,hadoop02,hadoop03免密登录的shell

# 切换到 hadoopdeploy 用户
[root@hadoop01 ~]# su - hadoopdeploy
Last login: Sun Feb 19 13:05:43 CST 2023 on pts/0
# 生成公私钥对,下方的提示直接3个回车即可
[hadoopdeploy@hadoop01 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoopdeploy/.ssh/id_rsa):
Created directory '/home/hadoopdeploy/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoopdeploy/.ssh/id_rsa.
Your public key has been saved in /home/hadoopdeploy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:PFvgTUirtNLwzDIDs+SD0RIzMPt0y1km5B7rY16h1/E hadoopdeploy@hadoop01
The key's randomart image is:
+---[RSA 2048]----+
|B   .   .        |
| B o   . o       |
|+ * * + + .      |
| O B / = +       |
|. = @ O S o      |
|   o * o *       |
|    = o o E      |
|   o +           |
|    .            |
+----[SHA256]-----+
[hadoopdeploy@hadoop01 ~]$ ssh-copy-id hadoop01
...
[hadoopdeploy@hadoop01 ~]$ ssh-copy-id hadoop02
...
[hadoopdeploy@hadoop01 ~]$ ssh-copy-id hadoop03

3.7 配置hadoop

此处如无特殊说明,都是使用的hadoopdeploy用户来操作。

3.7.1 创建目录(3台机器都执行)

# 创建 /opt/bigdata 目录
[hadoopdeploy@hadoop01 ~]$ sudo mkdir /opt/bigdata
# 将 /opt/bigdata/ 目录及它下方所有的子目录的所属者和所属组都给 hadoopdeploy
[hadoopdeploy@hadoop01 ~]$ sudo chown -R hadoopdeploy:hadoopdeploy /opt/bigdata/
[hadoopdeploy@hadoop01 ~]$ ll /opt
total 0
drwxr-xr-x. 2 hadoopdeploy hadoopdeploy  6 Feb 19 13:15 bigdata

3.7.2 下载hadoop并解压(hadoop01操作)

# 进入目录
[hadoopdeploy@hadoop01 ~]$ cd /opt/bigdata/
# 下载
[hadoopdeploy@hadoop01 ~]$ https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
# 解压并压缩
[hadoopdeploy@hadoop01 bigdata]$ tar -zxvf hadoop-3.3.4.tar.gz && rm -rvf hadoop-3.3.4.tar.gz

3.7.3 配置hadoop环境变量(hadoop01操作)

hadoop的目录结构

# 进入hadoop目录
[hadoopdeploy@hadoop01 hadoop-3.3.4]$ cd /opt/bigdata/hadoop-3.3.4/
# 切换到root用户
[hadoopdeploy@hadoop01 hadoop-3.3.4]$ su - root
Password:
Last login: Sun Feb 19 13:06:41 CST 2023 on pts/0
[root@hadoop01 ~]# vim /etc/profile
# 查看hadoop环境变量配置
[root@hadoop01 ~]# tail -n 3 /etc/profile
# 配置HADOOP
export HADOOP_HOME=/opt/bigdata/hadoop-3.3.4/
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
# 让环境变量生效
[root@hadoop01 ~]# source /etc/profile

3.7.4 hadoop的配置文件分类(hadoop01操作)

hadoop中配置文件大概有这么3大类。

  • 默认的只读配置文件: core-default.xml, hdfs-default.xml, yarn-default.xml and mapred-default.xml.
  • 自定义配置文件: etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml 会覆盖默认的配置。
  • 环境配置文件: etc/hadoop/hadoop-env.sh and optionally the etc/hadoop/mapred-env.sh and etc/hadoop/yarn-env.sh 比如配置NameNode的启动参数HDFS_NAMENODE_OPTS等。

hadoop的配置文件

3.7.5 配置 hadoop-env.sh(hadoop01操作)

# 切换到hadoopdeploy用户
[root@hadoop01 ~]# su - hadoopdeploy
Last login: Sun Feb 19 14:22:50 CST 2023 on pts/0
# 进入到hadoop的配置目录
[hadoopdeploy@hadoop01 ~]$ cd /opt/bigdata/hadoop-3.3.4/etc/hadoop/
[hadoopdeploy@hadoop01 hadoop]$ vim hadoop-env.sh
# 增加如下内容
export JAVA_HOME=/usr/local/jdk8
export HDFS_NAMENODE_USER=hadoopdeploy
export HDFS_DATANODE_USER=hadoopdeploy
export HDFS_SECONDARYNAMENODE_USER=hadoopdeploy
export YARN_RESOURCEMANAGER_USER=hadoopdeploy
export YARN_NODEMANAGER_USER=hadoopdeploy

3.7.6 配置core-site.xml文件(hadoop01操作)(核心配置文件)

默认配置文件路径:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/core-site.xml

<configuration>
    <!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:8020</value>
    </property>

    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/bigdata/hadoop-3.3.4/data</value>
    </property>

    <!-- 配置HDFS网页登录使用的静态用户为hadoopdeploy,如果不配置的话,当在hdfs页面点击删除时>看看结果 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>hadoopdeploy</value>
    </property>
    <!-- 文件垃圾桶保存时间 -->
	<property>
	    <name>fs.trash.interval</name>
	    <value>1440</value>
	</property>
</configuration>

3.7.7 配置hdfs-site.xml文件(hadoop01操作)(hdfs配置文件)

默认配置文件路径:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/hdfs-site.xml

<configuration>

    <!-- 配置2个副本 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

    <!-- nn web端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop01:9870</value>
    </property>
    <!-- snn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop03:9868</value>
    </property>

</configuration>

3.7.8 配置yarn-site.xml文件(hadoop01操作)(yarn配置文件)

默认配置文件路径:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/yarn-site.xml

<configuration>

	<!-- Site specific YARN configuration properties -->
	<!-- 指定ResourceManager的地址 -->
	<property>
	    <name>yarn.resourcemanager.hostname</name>
	    <value>hadoop02</value>
	</property>
	
	<!-- 指定MR走shuffle -->
	<property>
	    <name>yarn.nodemanager.aux-services</name>
	    <value>mapreduce_shuffle</value>
	</property>
	
	<!-- 是否对容器实施物理内存限制 -->
	<property>
	    <name>yarn.nodemanager.pmem-check-enabled</name>
	    <value>false</value>
	</property>
	
	<!-- 是否对容器实施虚拟内存限制 -->
	<property>
	    <name>yarn.nodemanager.vmem-check-enabled</name>
	    <value>false</value>
	</property>
	
	<!-- 设置 yarn 历史服务器地址 -->
	<property>
	    <name>yarn.log.server.url</name>
	    <value>http://hadoop02:19888/jobhistory/logs</value>
	</property>
	
	<!-- 开启日志聚集-->
	<property>
	    <name>yarn.log-aggregation-enable</name>
	    <value>true</value>
	</property>
	
	<!-- 聚集日志保留的时间7天 -->
	<property>
	    <name>yarn.log-aggregation.retain-seconds</name>
	    <value>604800</value>
	</property>
</configuration>

3.7.9 配置mapred-site.xml文件(hadoop01操作)(mapreduce配置文件)

默认配置文件路径:https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/yarn-site.xml

<configuration>
	<!-- 设置 MR 程序默认运行模式:yarn 集群模式,local 本地模式-->
	<property>
	    <name>mapreduce.framework.name</name>
	    <value>yarn</value>
	</property>
	
	<!-- MR 程序历史服务地址 -->
	<property>
	    <name>mapreduce.jobhistory.address</name>
	    <value>hadoop01:10020</value>
	</property>
	
	<!-- MR 程序历史服务器 web 端地址 -->
	<property>
	    <name>mapreduce.jobhistory.webapp.address</name>
	    <value>hadoop01:19888</value>
	</property>
	
	<property>
	    <name>yarn.app.mapreduce.am.env</name>
	    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
	</property>
	
	<property>
	    <name>mapreduce.map.env</name>
	    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
	</property>
	
	<property>
	    <name>mapreduce.reduce.env</name>
	    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
	</property>
</configuration>

3.7.10 配置workers文件(hadoop01操作)

vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/workers

hadoop01
hadoop02
hadoop03

workers配置文件中不要有多余的空格或换行。

3.7.11 3台机器hadoop配置同步(hadoop01操作)

1、同步hadoop文件
# 同步 hadoop 文件
[hadoopdeploy@hadoop01 hadoop]$ scp -r /opt/bigdata/hadoop-3.3.4/ hadoopdeploy@hadoop02:/opt/bigdata/hadoop-3.3.4
[hadoopdeploy@hadoop01 hadoop]$ scp -r /opt/bigdata/hadoop-3.3.4/ hadoopdeploy@hadoop03:/opt/bigdata/hadoop-3.3.4
2、hadoop02和hadoop03设置hadoop的环境变量
[hadoopdeploy@hadoop03 bigdata]$ su - root
Password:
Last login: Sun Feb 19 13:07:40 CST 2023 on pts/0
[root@hadoop03 ~]# vim /etc/profile
[root@hadoop03 ~]# tail -n 4 /etc/profile

# 配置HADOOP
export HADOOP_HOME=/opt/bigdata/hadoop-3.3.4/
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
[root@hadoop03 ~]# source /etc/profile

3、启动集群

3.1 集群格式化

当是第一次启动集群时,需要对hdfs进行格式化,在NameNode节点操作。

[hadoopdeploy@hadoop01 hadoop]$ hdfs namenode -format

3.2 集群启动

启动集群有2种方式

  • 方式一: 每台机器逐个启动进程,比如:启动NameNode,启动DataNode,可以做到精确控制每个进程的启动。
  • 方式二: 配置好各个机器之间的免密登录并且配置好 workers 文件,通过脚本一键启动。

3.2.1 逐个启动进程

# HDFS 集群
[hadoopdeploy@hadoop01 hadoop]$ hdfs --daemon start namenode | datanode | secondarynamenode

# YARN 集群
[hadoopdeploy@hadoop01 hadoop]$ hdfs yarn --daemon start resourcemanager | nodemanager | proxyserver

3.2.2 脚本一键启动

  • start-dfs.sh 一键启动hdfs集群的所有进程
  • start-yarn.sh 一键启动yarn集群的所有进程
  • start-all.sh 一键启动hdfs和yarn集群的所有进程

3.3 启动集群

3.3.1 启动hdfs集群

需要在NameNode这台机器上启动

# 改脚本启动集群中的 NameNode、DataNode和SecondaryNameNode
[hadoopdeploy@hadoop01 hadoop]$ start-dfs.sh

3.3.2 启动yarn集群

需要在ResourceManager这台机器上启动

# 该脚本启动集群中的 ResourceManager 和 NodeManager 进程
[hadoopdeploy@hadoop02 hadoop]$ start-yarn.sh

3.3.3 启动JobHistoryServer

[hadoopdeploy@hadoop01 hadoop]$ mapred --daemon start historyserver

3.4 查看各个机器上启动的服务是否和我们规划的一致

查看各个机器上启动的服务是否和我们规划的一致
可以看到是一致的。

3.5 访问页面

3.5.1 访问NameNode ui (hdfs集群)

访问NameNode ui
如果这个时候通过 hadoop fs 命令可以上传文件,但是在这个web界面上可以创建文件夹,但是上传文件报错,此处就需要在访问ui界面的这个电脑的hosts文件中,将部署hadoop的那几台的电脑的ip 和hostname 在本机上进行映射

3.5.2 访问SecondaryNameNode ui

访问SecondaryNameNode ui

3.5.3 查看ResourceManager ui(yarn集群)

查看ResourceManager ui

3.5.4 访问jobhistory

访问jobhistory

4、参考链接

1、https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions
2、https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html

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

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

相关文章

IO多路复用

文章目录1 概念2. IO多路复用的出现2.1 阻塞IO2.2 非阻塞IO2.3 IO 多路复用2.3.1 select2.3.2 poll2.3.3 epoll总结1 概念 IO多路复用(IO Multiplexing) 是一种同步IO模型&#xff0c;在单个进程/线程内就可以同时处理多个IO请求。一个进程/线程可以监视多个文件句柄&#xff…

深度 | “人人都是数据分析师”的时代,为什么建议你学好python?

01 潜力巨大的数据分析岗位在信息时代的今天&#xff0c;数据推动业务发展、数据辅助业务决策早已成为大势所向&#xff0c;而顺应大数据时代号召的人&#xff0c;薪资待遇自然也是让人羡慕不已——数据分析师确实是高薪职业&#xff0c;大部分公司提供的待遇基本上是10K往上走…

好消息!Ellab(易来博)官方微信公众号开通了!携虹科提供专业验证和监测解决方案

自1949年以来&#xff0c;丹麦Ellab一直通过全球范围内的验证和监测解决方案&#xff0c;协助全球生命科学和食品公司优化和改进其流程的质量。Ellab全面的无线数据记录仪&#xff0c;热电偶系统&#xff0c;无线环境监测系统&#xff0c;校准设备&#xff0c;软件解决方案等等…

Ae:导入 Photoshop 文件

由于 Ae 内嵌了 Photoshop 的渲染引擎&#xff0c;所以可以识别并导入 Photoshop 文件的所有属性&#xff0c;包括位置、混合模式、不透明度、可见性、透明度&#xff08;Alpha 通道&#xff09;、图层蒙版、图层组、调整图层、图层样式、图层剪切路径、矢量蒙版、图像参考线等…

IPEmotion新增功能:交流电功率分析计算

一 应用背景 随着国内电动汽车行业的快速发展&#xff0c;在相同的道路环境和行驶状态下&#xff0c;增加电动车的整体续航里程和提升乘员对于行驶途中用电需求的满意度尤为重要。因此&#xff0c;需要采集试验过程中交直流电压电流信号&#xff0c;以计算出车辆各种部件输出和…

rancher2安装nfs-subdir-external-provisioner为PVC/PV动态提供存储空间(动态分配卷)

接上一篇《centos7部署rancher2.5详细图文教程》 一、 安装nfs服务 1. 所有节点都需要操作 $ # 下载 nfs 相关软件 $ sudo yum -y install nfs-utils rpcbind$ # 启动服务并加入开机自启 $ sudo systemctl start nfs && systemctl enable nfs $ sudo systemctl star…

UG NX二次开发(C#)-CAM-不再高亮显示所有的加工特征(CAMFeature)

文章目录 1、前言2、加工特征高亮显示的示例3、获取加工特征的几何对象3.1 获取面对象并取消高亮显示3.2 获取坐标系对象并取消高亮显示4、创建一个不再高亮显示所有加工特征的方法1、前言 当我们在识别加工特征后,其默认状态是被选中的,所以是高亮显示;当我们不再选中时,…

Blender骨骼动画快速教程

有关创建模型的更多详细信息&#xff0c;请参阅在 Blender 中创建模型。 我们将为这个例子做一个非常简单的模型——蠕虫&#xff01; 从我们的初始立方体开始&#xff0c;进入编辑模式&#xff0c;切换到面选择&#xff0c;然后选择任何面&#xff1a; 推荐&#xff1a;将 NSD…

【颠覆软件开发】华为自研IDE!未来IDE将不可预测!

IDE是软件开发生态的入口&#xff0c;但目前我们所使用的IDE基本都是由国外巨头提供&#xff0c;比如Visual Studio、Eclipse、JetBrains。这些IDE具有很高的断供风险&#xff0c;与操作系统、芯片、编程语言一样&#xff0c;非常重要。 随着越来越多的软件开始采用云上开发模…

重要节点排序方法

文章目录研究背景提前约定基于节点近邻的排序方法度中心性&#xff08;degree centrality, DC&#xff09;半局部中心性&#xff08;semilocal centrality, SLC&#xff09;k-壳分解法基于路径排序的方法离心中心性 (Eccentricity, ECC)接近中心性 (closeness centrality, CC)K…

mac 好用的类似Xshell工具

下载royal TSX 5.1.1 http://share.uleshi.com/f/9490615-685692355-33bf1e修改mac的etc/hosts文件权限访达(鼠标右键) -> 前往文件夹 ->输入/private --> 打开etc/hosts --> 显示简洁(鼠标右键) --> 权限改成读和写hosts文件写入如下内容&#xff1a;# Royal T…

一个支持.Net 7的WinForm开源UI组件框架

更多开源项目请查看&#xff1a;一个专注推荐.Net开源项目的榜单 平常我们开发桌面软件&#xff0c;使用WinForm默认风格&#xff0c;界面还是比较简单和丑陋的&#xff0c;自定义绘制又比较麻烦。所以&#xff0c;今天给大家推荐一个模仿Element风格的UI框架。 项目简介 这是…

央行罚单!金融机构被罚原因揭秘

近日&#xff0c;人民银行公布了2023年首批行政处罚罚单&#xff0c;引发业内广泛关注。 顶象防御云业务安全情报中心统计了人民银行官网&#xff0c;2020年1月至2023年2月10日期间&#xff0c;公布的101份行政处罚。 统计显示&#xff0c;16家金融机构被罚27066.9万元&#…

CAS底层原理及ABA问题

一、案例CAS是Java中Unsafe类里面的一个方法&#xff0c;它的全称是叫CompareAndSwap比较并交换的一个意思&#xff0c;它的主要功能是能够去保证在多线程的环境下对于共享变量修改的一个原子性。例如&#xff0c;比如说像这样一个场景&#xff0c;有一个成员变量state&#xf…

2.5|1.3 操作系统与嵌入式操作系统概述

CPU是计算机系统的心脏&#xff0c;操作系统是计算机系统的大脑。半个世纪以来操作系统这门软件科学吸引了世界上一大群最热情、最有智慧的杰出人材&#xff0c;集中了人类现代创造性思维活动的精髓。操作系统是软件世界的万花筒、世博会&#xff0c;是软件王国中的一顶璀璨的皇…

力扣mysql刷题记录

mysql刷题记录 刷题链接https://leetcode.cn/study-plan/sql/?progressjkih0qc mysql冲&#xff01;mysql刷题记录一. 1699. 两人之间的通话次数题解二、1251. 平均售价题解三. 1571. 仓库经理题解四.1445. 苹果和桔子解五.1193. 每月交易 I题解六.1633. 各赛事的用户注册率题…

DP(2)--背包DP(0-1 背包,完全背包,多重背包)

滚动数组&#xff1a; 让数组滚动起来&#xff0c;每次都使用固定的几个存储空间&#xff0c;来达到压缩&#xff0c;节省存储空间的作用。 一般用于递推和动态规划中 一维数组 比如&#xff1a;求斐波那契数列第100项 long long arr[3]; arr[0] 1; arr[0] 1; for (int i 2…

Java 集合基础

文章目录一、集合概念二、ArrayList1. 构造方法和添加方法2. 常用方法三、案例演示1. 存储字符串并遍历2. 存储学生对象并遍历3. 键盘录入学生对象并遍历一、集合概念 编程的时候如果要存储多个数据&#xff0c;使用长度固定的数组存储格式&#xff0c;不一定满足我们的需要&a…

Axios二次封装和Api的解耦

目录 一、axios三种基本写法 二、axios的二次封装 三、Api的解耦 一、axios三种基本写法 1&#xff09;get方法&#xff08;是最简单的&#xff09;&#xff1a; 写法二&#xff1a; 2&#xff09;post&#xff1a; 3&#xff09;axios请求配置 默认是get请求&#xff0c;如…

数据分析-深度学习 NLP Day2关键词提取案例

训练一个关键词提取算法需要以下几个步骤&#xff1a;1&#xff09;加载已有的文档数据集&#xff1b;2&#xff09;加载停用词表&#xff1b;3&#xff09;对数据集中的文档进行分词&#xff1b;4&#xff09;根据停用词表&#xff0c;过滤干扰词&#xff1b;5&#xff09;根据…