CentOS7安装部署CDH6.2.1

news2024/7/4 5:09:50

文章目录

  • CentOS7安装部署CDH6.2.1
  • 一、前言
    • 1.简介
    • 2.架构
    • 3.环境
  • 二、环境准备
    • 1.部署服务器
    • 2.安装包准备
    • 3.修改机器名
    • 4.关闭防火墙
    • 5.关闭 SELinux
    • 6.Hosts文件
    • 7.limits文件
    • 8.设置swap空间
    • 9.关闭透明巨页内存
    • 10.免密登录
  • 三、安装CM管理端
    • 1.安装第三方依赖包
    • 2.安装Oracle的JDK
    • 3.安装lrzsz
    • 4.安装ntp
    • 5.安装MySQL
    • 6.配置CM的yum源
    • 7.CDH parcel包安装
    • 8.CM 组件安装
  • 四.配置CDH集群
    • 1.CM欢迎页
    • 2.集群安装欢迎页
  • 五、高可用
    • 1.Zookeeper高可用
    • 2.HDFS高可用
    • 3.添加服务
  • 六、告警
    • 1.CM 告警
    • 2.集群告警
  • 七、报错
    • 报错1
    • 报错2
    • 报错3
    • 报错4
    • 报错5
    • 报错6

CentOS7安装部署CDH6.2.1

一、前言

1.简介

Cloudera Manager 是一个用于管理 CDH 集群的端到端应用程序。Cloudera Manager 设定了标准 通过提供对 CDH 集群每个部分的精细可见性和控制,实现企业部署,使运营商能够提高性能、提高服务质量、增加 合规性并降低管理成本。借助 Cloudera Manager,您可以轻松部署和集中操作完整的 CDH 堆栈和其他托管服务。该应用程序自动执行 安装过程,将部署时间从几周缩短到几分钟;为您提供集群范围内正在运行的主机和服务的实时视图;提供单个中央控制台来制定配置 集群中的更改;并集成了全套报告和诊断工具,可帮助您优化性能和利用率。本入门书介绍了基本概念、结构、 和Cloudera Manager的功能。

2.架构

在这里插入图片描述

Cloudera Manager Server 可与其他几个组件配合使用:

  • 代理(Agent):安装在每台主机上。代理负责启动和停止进程、解压缩配置、触发安装以及 监视主机。
  • 管理服务(Management Service):由一组执行各种角色组成的服务 监视、警报和报告功能。
  • 数据库(Database):存储配置和监视信息。
  • Cloudera Repository :由ClouderaManager分发的软件存储库。
  • 客户端(Clients):是与服务器交互的接口:
    • Admin Console: 基于 Web 的 UI,Admin 可用于管理集群和 Cloudera Manager 。
    • API:开发人员用来创建自定义 Cloudera 的 API 管理器应用程序。

3.环境

  • Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
  • JDK 版本:Java SE Development Kit 11.0.19
  • CDH 版本:6.2.1

Cloudera Manager Overview | 6.2.x:https://docs.cloudera.com/documentation/enterprise/6/6.2/topics/cm_intro_primer.html

Cloudera Installation Guide | 6.2.x:https://docs.cloudera.com/documentation/enterprise/6/6.2/topics/installation.html

CDH 6.2.1 Packaging:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_62_packaging.html#cdh_621_packaging

CentOS基础操作命令:https://blog.csdn.net/u011424614/article/details/94555916

CentOS7安装部署Doris:https://blog.csdn.net/u011424614/article/details/132419397

二、环境准备

1.部署服务器

机器名IP角色硬件配置
cdh001192.168.249.121主节点4核 16G
cdh002192.168.249.122从节点4核 8G
cdh003192.168.249.123从节点4核 8G

2.安装包准备

  • 百度云盘

链接: https://pan.baidu.com/s/1ToePLghssMMxFnk-AiEkhQ

提取码: xvgx

  • 所有节点创建目录
mkdir /root/download
  • 将下载的文件夹,上传到 cdh001/root/download 目录

3.修改机器名

执行机器:所有节点

  • 修改 3 台服务器的机器名
#-- cdh001
hostnamectl set-hostname cdh001 --static
hostnamectl set-hostname cdh001 --transient

#-- cdh002
hostnamectl set-hostname cdh002 --static
hostnamectl set-hostname cdh002 --transient

#-- cdh003
hostnamectl set-hostname cdh003 --static
hostnamectl set-hostname cdh003 --transient

4.关闭防火墙

执行机器:所有节点

systemctl stop firewalld
systemctl disable firewalld

# 状态
systemctl status firewalld

5.关闭 SELinux

执行机器:所有节点

  • 临时关闭
setenforce 0
  • 永久关闭
vim /etc/selinux/config

编辑内容

# SELINUX=enforcing 改为 SELINUX=disabled
SELINUX=disabled

6.Hosts文件

执行机器:所有节点

  • 配置IP和机器名的映射
cat > /etc/hosts <<EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.249.121 cdh001
192.168.249.122 cdh002
192.168.249.123 cdh003
EOF

7.limits文件

执行机器:所有节点

  • 设置用户最多可打开的文件数、进程数、内存占用
cat > /etc/security/limits.conf <<EOF
*    soft    nofile   32728
*    hard    nofile   1024999
*    soft    nproc   65535
*    hard    noroc    unlimited
*    soft    memlock    unlimited
*    hard    memlock    unlimited
EOF
  • 更新参数
sysctl -p

8.设置swap空间

执行机器:所有节点

  • 输出交换分区的使用情况
cat /proc/sys/vm/swappiness
  • 修改文件内容
echo 10 > /proc/sys/vm/swappiness
echo "vm.swappiness = 0" >> /etc/sysctl.conf
  • Cloudera 建议将交换空间设置为 0,过多的交换空间会引起 GC 耗时激增

9.关闭透明巨页内存

执行机器:所有节点

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
  • 配置到文件
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
#避免重启后不生效,设置执行权限
chmod +x /etc/rc.d/rc.local

10.免密登录

执行机器:zdb001

# 生成公钥和私钥;如果不设置密码,三次回车
ssh-keygen -t rsa

# 复制公钥和私钥,输入对应机器的root用户密码
ssh-copy-id root@cdh001
ssh-copy-id root@cdh002
ssh-copy-id root@cdh003

三、安装CM管理端

1.安装第三方依赖包

执行机器:所有节点

yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb httpd mod_ssl

yum -y install bind-utils psmisc cyrus-sasl-plain libaio cyrus-sasl-gssapi fuse portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libxslt

2.安装Oracle的JDK

执行机器:所有节点

  • 将 cdh001 的 JDK 安装包拷贝到其它两台机器
# 拷贝到 192.168.249.122
scp /root/download/cdh6.2.1/cloudera-repos-6.2.1/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm root@192.168.249.122:/root/download/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

# 拷贝到 192.168.249.123
scp /root/download/cdh6.2.1/cloudera-repos-6.2.1/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm root@192.168.249.123:/root/download/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
  • 安装 JDK
# 查询已安装的java
rpm -qa | grep java

# 卸载
yum -y remove java*

# cdh001执行
cd /root/download/cdh6.2.1/cloudera-repos-6.2.1/
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

# cdh002 和 cdh003 执行
cd /root/download
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
  • 配置环境变量
vim /etc/profile
  • 写入内容
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export PATH=$PATH:$JAVA_HOME/bin
  • 更新环境变量
source /etc/profile

3.安装lrzsz

执行机器:所有节点

  • 类似 ftp 的上传和下载工具
rpm -qa | grep lrzsz

# 如果已安装,可忽略
yum -y install lrzsz

4.安装ntp

1)设置中国时区

  • 修改时区;如已修改过,可跳过
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 验证
date

2)安装 ntp

执行机器:所有节点

  • 用于各个机器的时间同步
rpm -qa | grep ntp

# 如果已安装,可忽略
yum -y install ntp
  • 管理 ntp 服务
# 启动
systemctl start ntpd.service
systemctl enable ntpd.service
# 重启
systemctl restart ntpd.service
# 关闭
systemctl stop ntpd.service
systemctl disable ntpd.service
# 状态
systemctl status ntpd.service

3)选一台机器作为 ntp 服务端

执行机器:cdh001

vim /etc/ntp.conf
  • 注释其它 server , 采用本地时间作为集群时间,且允许内网时间同步
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10

4)其它机器作为 ntp 客户端,同步服务端的时间

执行机器:cdh002、cdh003

  • 使用 crontab 实现每隔 30 分钟同步一次内网一台机器的时间
crontab -e
30 * * * *  /usr/sbin/ntpdate cdh001; /sbin/hwclock -w
  • crontab 格式
*  *  *  *  *  command
分 时 日 月 周   命令

5.安装MySQL

执行机器:cdh001

  • MySQL connector 包
# 创建目录
mkdir -p /usr/share/java

# 安装包目录
cd /root/download/cdh6.2.1
# 解压
tar -zxvf mysql-5.7/mysql-connector-java-5.1.47.tar.gz
 
# 移动到新建目录下,并改文件名为 mysql-connector-java.jar
cd mysql-connector-java-5.1.47
mv mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar
# 设置权限
chmod 755 /usr/share/java/mysql-connector-java.jar
  • 安装 MySQL 服务
# 检查 mariadb 是否安装
rpm -qa|grep mariadb

# 卸载 mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

# 解压 MySQL 安装包
cd /root/download/cdh6.2.1
tar -xvf mysql-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

# rpm 安装
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
  • 配置 MySQL 参数
cat > /etc/my.cnf <<EOF
[mysqld]
basedir = /usr/local/mysql
datadir = /var/lib/mysql
port = 3306
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8

transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0

server_id=1
max-binlog-size = 500M
log_bin=/var/lib/mysql/mysql_binary_log
#binlog_format = mixed
binlog_format = Row
expire-logs-days = 14

max_connections = 550
read_buffer_size = 2M
read_rnd_buffer_size = 16M 
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES
skip-ssl
EOF
  • 启动 MySQL
# 注意保存初始化生成的临时密码
# [Note] A temporary password is generated for root@localhost: q5TP/wdFjN?i
mysqld --initialize --user=mysql

# 启动
systemctl start mysqld.service
systemctl enable mysqld
  • 修改密码和远程访问权限
mysql -u root -p
# 设置密码
set password for root@localhost = password('cdh123Z');
# 设置远程权限
use mysql;
update user set host='%' where user='root' and host='localhost';
flush privileges;
# 备用
quit;
  • 创建默认数据库
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  • 查询现有数据库
show databases;

6.配置CM的yum源

执行机器:cdh001

  • 安装和启动 http 服务器
yum install httpd
# 启动
service httpd start
systemctl enable httpd.service
  • 创建 CM 的 yum 源
# 创建 yum 源目录
mkdir -p /var/www/html/cloudera-repos/repodata

# 安装包目录
cd /root/download/cdh6.2.1
# 复制 CM 的文件夹
cp -r cloudera-repos-6.2.1/. /var/www/html/cloudera-repos/

cd /var/www/html/cloudera-repos/

# 安装 createrepo
yum -y install yum-utils createrepo
# 创建 repodata
createrepo .

# yum 清理
yum clean all
  • 访问 yum 源:http://cdh001/cloudera-repos/http://192.168.249.121/cloudera-repos/

如无法访问,请注意配置 Hosts 文件

7.CDH parcel包安装

执行机器:cdh001

# 创建 parcel 包存放目录
mkdir -p /opt/cloudera/parcel-repo

# 安装包目录
cd /root/download/cdh6.2.1
cp -r parcel-6.2.1/. /opt/cloudera/parcel-repo

# 创建 cloudera-scm 用户
useradd --system --home=/opt/cloudera-manager/cm-6.2.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
# 修改用户组
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/

cd /opt/cloudera/parcel-repo
#校验 parcel 文件
sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
# 查看.sha1 内容
cat CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1
# 如果一样,直接将后缀 .sha1 改为 .sha
# 如果不一样,将 sha1sum 后的值替换到 .sha1 文件中 并改为 .sha 
mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha

8.CM 组件安装

执行机器:cdh001

  • 安装 CM 组件
# 主节点(cdh001)导入 GPGkey 
rpm --import http://cdh001/cloudera-repos/RPM-GPG-KEY-cloudera

# 顺序安装
# 所有节点安装 daemons
yum -y localinstall http://cdh001/cloudera-repos/cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm
# 主节点(cdh001)安装 server
yum -y localinstall http://cdh001/cloudera-repos/cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm
# 所有节点安装 agent
yum -y localinstall http://cdh001/cloudera-repos/cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm

# 主节点(cdh001)初始化数据库
# /opt/cloudera/cm/schema/scm_prepare_database.sh 数据库类型 数据库名 用户名 密码
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root cdh123Z
  • 修改 CM Agent 配置文件

执行机器:cdh002、cdh003

# 配置CM Server的Host
sed -i '/server_host=/cserver_host=cdh001' /etc/cloudera-scm-agent/config.ini
  • 启动 CM 服务
# 启动server(主节点 cdh001 执行)
systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server
# 启动agent(所有节点执行)
systemctl start cloudera-scm-agent
systemctl enable cloudera-scm-agent
# 服务状态
systemctl status cloudera-scm-server
systemctl status cloudera-scm-agent

四.配置CDH集群

执行机器:cdh001

1.CM欢迎页

CM管理端配置CDH集群

  • 登录 CM 管理端:http://cdh001:7180http://192.168.249.121:7180/
  • 默认账号和密码:admin || admin

在这里插入图片描述

  • 欢迎页

在这里插入图片描述

  • 用户协议

在这里插入图片描述

  • 选择免费版

在这里插入图片描述

2.集群安装欢迎页

在这里插入图片描述

  • 填写集群名称

在这里插入图片描述

  • 切换到【当前管理的主机】,勾选所有主机

在这里插入图片描述

  • 点击【更多选项】按钮,填写 “远程 Parcel 存储库 URL”

在这里插入图片描述

  • 远程 Parcel 存储库 URL:【http://cdh001/cloudera-repos/cm6】,其它链接可删除

在这里插入图片描述

  • 等待 CDH 安装完成
  • 点击 【Inspect Network Performance】 按钮 和 【Inspect Hosts】按钮,检查集群网络环境和主机状态

在这里插入图片描述

  • 根据需要,选择要安装的服务,这里选择 【自定义服务】

在这里插入图片描述

  • 自定义角色分配

在这里插入图片描述

  • 数据库设置,填写数据库信息后,点击【测试连接】按钮

在这里插入图片描述

  • 审核更改,默认存储目录

在这里插入图片描述

  • 等待安装完成

在这里插入图片描述

  • 安装完成

在这里插入图片描述

五、高可用

1.Zookeeper高可用

  • 点击 zookeeper

在这里插入图片描述

  • 实例 - 添加角色实例

在这里插入图片描述

  • 选择主机

在这里插入图片描述

  • 勾选 cdh002 和 cdh003

在这里插入图片描述

在这里插入图片描述

  • 安装之后,重启服务

在这里插入图片描述

2.HDFS高可用

  • 提前清理目录(cdh001执行)
rm -rf /dfs/nn
  • 点击 HDFS

在这里插入图片描述

  • 操作 - 启用 HighAvailability

在这里插入图片描述

  • 修改 nameservice 名称

在这里插入图片描述

  • 选择角色的主机

在这里插入图片描述

  • 编辑 NameNode 数据目录和 JournalNode 目录,注意:设置的目录与前面清理目录关联

在这里插入图片描述

  • 等待部署完成后,重启服务

在这里插入图片描述

3.添加服务

  • 集群操作 - 添加服务

在这里插入图片描述

  • 选择服务

在这里插入图片描述

六、告警

1.CM 告警

在这里插入图片描述

2.集群告警

在这里插入图片描述

  • 点击蓝色文字,根据提示修改配置

在这里插入图片描述

七、报错

报错1

  • 提示信息
# 集群配置 - 数据库设置
JDBC driver cannot be found. Unable to find the JDBC database jar on host : cdh003.
  • 解决方法

方案一:查看 Hive、Activity Monitor、Hue 是否已选择 cdh001,因为 cdh001 安装了 MySQL

方案二:/usr/share/java/mysql-connector-java.jar 是否有 MySQL 连接驱动

报错2

  • 提示信息
对当前 NameNode 的名称目录进行格式化。如果名称目录不为空,此操作将失败。
  • 解决方法
rm -rf /dfs/nn

报错3

  • 提示信息
Failed to start namenode.
java.io.IOException: NameNode is not formatted.
	at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:237)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1084)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:709)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:665)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:727)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:950)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:929)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1653)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1720)
  • 解决方法
hdfs namenode -format

报错4

  • 提示信息

场景说明:终端执行 hdfs dfs -ls /tmp 时,提示一下信息

ls: Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error
  • 原因

HDFS 高可用模式下,执行的 NameNode 处于 standby 状态

  • 解决方法
  1. 编辑配置文件
vim /etc/hadoop/conf/core-site.xml
vim /etc/hadoop/conf.cloudera.hdfs/core-site.xml
  1. 将配置改成 active 状态的 NameNode
<property>
   <name>fs.defaultFS</name>
   <value>hdfs://cdh002:8020</value>
</property>
  1. 重启 HDFS ,配置才会生效

报错5

  • 提示信息
不良 : Canary 测试无法为 /tmp/.cloudera_health_monitoring_canary_files 创建父目录。
  • 解决方法
  1. 创建 /tmp 目录;

  2. 创建完成后,HDFS 会自动创建 .cloudera_health_monitoring_canary_files 文件夹

hdfs dfs -ls /tmp

sudo -u hdfs hdfs dfs -mkdir /tmp

报错6

  • 报错提示

场景说明:在 NameNode 的 Web UI 中创建文件夹时,提示一下信息

Permission denied: user=dr.who, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
  • 解决方法
  1. HDFS = 配置 - 搜索 hdfs-site - hdfs-site.xml 的 HDFS 服务高级配置代码段(安全阀)

  2. 配置 dfs.permissions.enabled = false

在这里插入图片描述

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

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

相关文章

Rockchip RK3399 - DRM crtc基础知识

一、LCD硬件原理 1.1 CRT介绍 CRT是阴极射线管(Cathode Ray Tube)的缩写&#xff0c;它是一种使用电子束在荧光屏上创建图像的显示设备。CRT显示器在过去很长一段时间内是主流的显示技术&#xff0c;现已被液晶显示屏或其他新兴技术所替代。 在CRT显示器中&#xff0c;扫描电子…

k8s-----6、pod的镜像拉取、重启策略、资源限制

镜像拉取、重启策略、资源限制 1、镜像拉取2、资源限制3、重启机制 1、镜像拉取 [rootmaster ~]# cat nginx.yaml apiVersion: v1 kind: Pod metadata:name: mypod spec:containers:- name: nginximage: nginx:1.14imagePullPolicy: Always# IfNotPresent: 默认值&#xff0c…

CPO是啥?

CPO是啥&#xff1f; CPO通常是“Chief Product Officer”&#xff08;首席产品官&#xff09;的缩写&#xff0c;是企业高层管理团队中负责产品管理和战略规划的主要负责人。CPO通常负责制定公司的产品战略、管理产品组合、带领产品团队以及推动产品的创新和优化。他或她需要有…

引用类型的按值传递

按值传递时&#xff0c;传递过去的是该引用类型实例的引用的一个拷贝&#xff0c;这样说可能不是很清楚&#xff0c;而且容易引起误解。所谓引用&#xff0c;就是分配在栈上的一小块内存区域&#xff0c;里面存放着该引用类型实例在托管堆上的地址。引用类型在按值传递的时候&a…

CUDA学习笔记(十三) Shared Memory

CUDA SHARED MEMORY shared memory在之前的博文有些介绍&#xff0c;这部分会专门讲解其内容。在global Memory部分&#xff0c;数据对齐和连续是很重要的话题&#xff0c;当使用L1的时候&#xff0c;对齐问题可以忽略&#xff0c;但是非连续的获取内存依然会降低性能。依赖于…

codeshell安装配置

codeshell安装配置 1 注意事项1.1 Python版本问题 2 codeshell环境搭建2.1 codeshell使用软件各版本2.2 软件下载2.3 codeshell使用环境安装2.3.1 python-3.10.9-amd64.exe安装2.3.2 Anaconda3-2022.10-Windows-x86_64.exe安装2.3.3 创建环境2.3.4 Pytorch安装2.3.5 transforme…

C++中的多态以及如何实现多态(近万字图文详解)

C中的多态 1. 多态的概念1.1 概念 2. 多态的定义及实现2.1多态的构成条件&#xff08;重点&#xff09;2.2 虚函数2.3 虚函数的重写(重点)2.4 C11 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 抽象类3.1 概念3.2 接口继承和实现继承 4. 多态的原理4.1虚函数…

MySQL1——喵喵期末不挂科

宝宝&#xff0c;你不点个赞吗&#xff1f;不评个论吗&#xff1f;不收个藏吗&#xff1f; 最后的最后&#xff0c;关注我&#xff0c;关注我&#xff0c;关注我&#xff0c;你会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的很重要…

零代码编程:用ChatGPT多线程批量将PDF文档转换为word格式

pdf2docx是Python的一个库&#xff0c;可以很方便的将PDF文档转换为word格式&#xff0c;首先安装这个库。 然后在ChatGPT中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个文档格式转换的任务&#xff0c;具体步骤如下&#xff1a; 打开F盘的Books文件…

FreeRTOS基础(如何学好FreeRTOS?)

目录 基础知识 进阶内容 后期“摆烂” 基础知识 实时操作系统 (RTOS)&#xff1a;FreeRTOS是一个实时操作系统&#xff0c;它提供了任务管理、调度和同步等功能&#xff0c;在嵌入式系统中有效地管理多个任务。 任务&#xff08;Task&#xff09;&#xff1a;任务是在RTOS…

祝所有的程序猿们2023年的1024节快乐~

许久没更新Bolg了&#xff0c;眼看就要到1024节&#xff0c;其实也是没有可以更新的东西&#xff0c;目前在PhD&#xff0c;发现很多东西都还需要慢慢沉淀&#xff0c;放一doctoral college 开学的时候ppt的老图。 越往深处研究会陷入泥潭&#xff0c;考虑的细节将会越来越多&…

如何在Ubuntu下安装RabbitMQ服务并异地远程访问?

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

【Gensim概念】03/3 NLP玩转 word2vec

第三部分 对象函数 八 word2vec对象函数 该对象本质上包含单词和嵌入之间的映射。训练后&#xff0c;可以直接使用它以各种方式查询这些嵌入。有关示例&#xff0c;请参阅模块级别文档字符串。 类型 KeyedVectors 1&#xff09; add_lifecycle_event(event_name, log_level2…

Web前端—Flex布局:标准流、浮动、Flex布局、综合案例(短视频首页解决方案)

版本说明 当前版本号[20231024]。 20231024初版 目录 文章目录 版本说明目录Flex布局01-标准流02-浮动基本使用产品区域布局HTML标签CSS样式 清除浮动场景搭建额外标签法单伪元素法双伪元素法overfow法 03-Flex布局Flex组成主轴对齐方式侧轴对齐方式修改主轴方向弹性伸缩比弹…

从昏暗到明亮—改善照明环境,提升编程效率

作为一名程序员博主&#xff0c;长时间写代码、写博客&#xff0c;对着电脑屏幕的生活方式已经渐渐成为了我的日常。 然而&#xff0c;这种生活方式却给我的眼睛带来了相当大的压力。每当一天的工作结束&#xff0c;我的眼睛总是感到干涩、疲劳&#xff0c;让我感到不舒适。&am…

S5PV210裸机(六):SD卡

本文主要探讨s5pv210的SD的相关知识。 存储 软盘、硬盘、光盘、CD、磁带:磁存储,读写慢、可靠性低 NandFlash、NorFlash:电存储,读写接口时序复杂,接口众多 SD卡、MMC卡、MicroSD、TF卡:统一外部封装和接口,SD兼容MMC标准 iNand、MoviNand、e…

正点原子嵌入式linux驱动开发——Linux MISC驱动

misc的意思是混合、杂项的&#xff0c;因此MISC驱动也叫做杂项驱动&#xff0c;也就是当板子上的某些外设无法进行分类的时候就可以使用MISC驱动。MISC驱动其实就是最简单的字符设备驱动&#xff0c;通常嵌套在platform总线驱动中&#xff0c;实现复杂的驱动&#xff0c;本章就…

Web APIS——第一天(下)

一、随机轮播图案例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthde…

JAVA多线程基础篇--守护线程(Daemon Thread)

1.概述 JAVA中的线程主要分为两类&#xff1a;用户线程&#xff08;User Thread&#xff09;和守护线程(Daemon Thread)。JAVA语言中无论是线程还是线程池&#xff0c;默认都是用户线程&#xff0c;因此用户线程也被称为普通线程。守护线程也被称之为后台线程、服务线程或精灵…

LeetCode977——有序数组的平方

LeetCode977——有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求新数组也按 非递减顺序 排序。 输入&#xff1a;nums [-4,-1,0,3,10] 输出&#xff1a;[0,1,9,16,100] 解释&#xff1a;平方后&…