利用 Apache Ranger 管理 Amazon EMR 中的数据权限

5e580bd20d189a6c4f9a066c41b0f2d4.gif

需求背景简介

系统安全通常包括两个核心主题:身份验证和授权。一个解决“用户是谁”的问题,另一个解决“用户允许执行什么操作”的问题。在大数据领域,Apache Ranger 是最受欢迎的授权选择之一,它支持所有主流大数据组件,包括 HDFS、 Hive、HBase、 Trino 等组件。

虽然 Hive 在设计中通过 Linux 的用户和用户组来控制用户权限,但集成在 Amazon EMR 中的 Hive 组件默认权限管理是 None,即不设置权限控制,任何用户名都可以通过 Hive 用户对 Hive 组件中的数据进行操作,在多用户和多任务的情况下,就会造成数据管理的安全隐患。因此,在基于 Amazon EMR 构建的大数据环境中,客户往往需要集成权限控制工具,实现细化到数据表级别甚至字段级别的权限管理。

本文介绍了在 Amazon EMR 中,通过部署 Apache Ranger 和 Simple AD 服务,对 Amazon EMR 中的数据进行 Hive 表级别的权限管理。

系统方案架构图

611a7800716cacd01c8d9d2fbaea4f02.png

主要服务和组件简介

Amazon EMR

Amazon EMR(以前称为 Amazon Elastic MapReduce)是一个托管集群平台,可简化在上运行大数据框架(如 Apache Hadoop 和 Apache Spark)的过程,亚马逊云科技以处理和分析海量数据。使用这些框架和相关的开源项目,您可以处理用于分析目的的数据和业务情报工作负载。

集群是 Amazon EMR 的核心组件。集群是 Amazon Elastic Compute Cloud(Amazon EC2)实例的集合。集群中的每个实例称作节点。Amazon EMR 中的节点类型有:

  • 主节点:该节点管理集群,它通过运行软件组件来协调在其它节点之间分配数据和任务的过程以便进行处理。主节点跟踪任务的状态并监控集群的运行状况。每个集群都有一个主节点,并且可以仅使用主节点创建单节点集群。

  • 核心节点:该节点具有运行任务并在集群上的 Hadoop Distributed File System(HDFS)中存储数据的软件组件。多节点集群至少具有一个核心节点。

  • 任务节点:该节点具有仅运行任务但不在 HDFS 中存储数据的软件组件。

Simple Active Directory

Simple AD 目录是由 Samba 4 Active directory 兼容服务器提供支持的托管目录。它提供了 Microsoft AD 提供的功能的子集,并支持常用功能,如用户帐户、组成员身份、加入到运行 Linux 和 Windows 的域的 Amazon EC2 实例,以及基于 Kerberos 的单点登录(SSO)和组策略。这使得管理运行 Linux 和 Windows 的 EC2 实例以及在亚马逊云平台中部署应用程序变得更加容易。

同时 Simple AD 的成本也非常低廉,在大多数情况下,Simple AD 是成本最低的选择,如果用户数不超过 5000,并且不需要更高级的 Microsoft Active Directory 域功能,Simple AD 是这种场景下的最佳选择。

Apache Ranger

Apache Ranger 是一个框架,可跨 Hadoop 平台启用、监控和管理全面的数据安全。Apache Ranger 具有以下功能:

  • 集中安全管理以在中央 UI 或使用 REST API 管理所有与安全相关的任务;

  • 使用 Hadoop 组件或工具执行特定操作或操作的精细授权,通过集中管理工具进行管理;

  • 跨所有 Hadoop 组件的标准化授权方法;

  • 增强了对各种授权方法的支持;

  • 在 Hadoop 的所有组件中对用户访问和管理操作(安全相关)进行集中审计。

Apache Ranger 使用两个关键组件进行授权:

  • Apache Ranger 策略管理服务器 – 此服务器允许您定义 Hadoop 应用程序的授权策略。与 Amazon EMR 集成时,您可以为 Apache Spark 和 Hive 定义和实施策略以访问 Hive Metastore,并访问 Amazon S3 数据 EMR 文件系统。您可以设置新的或使用现有的 Apache Ranger 策略管理服务器与 Amazon EMR 集成。

  • Apache Ranger 插件 – 此插件根据 ApacheRanger 策略管理服务器中定义的授权策略验证用户的访问权限。Amazon EMR 会为在 Apache Ranger 配置中选择的每个 Hadoop 应用程序自动安装和配置 Apache Ranger 插件。

部署步骤

01

部署 Simple AD 服务

创建 Simple AD 服务比较简单,可以在亚马逊云科技控制台中,选择 Directory Service 服务,点击“设置目录”。

03dd36efa2bfbf60a947ad528b4baa3a.png

在“目录类型”中选择创建“Simple AD”

c0c42eb0414a6433a13b951cb83e81ef.png

目录大小选择“小型”即可,为目录设置一个 DNS 域名,例如 awsbuilder.cn。需要注意这个域名在后续 Apache Ranger 的集成配置中需要作为 Search Base 使用,LDAP 的 Search Base 格式是“dc=awsbuilder,dc=cn”;User Search Base 的格式是“cn=users,dc=awsbuilder,dc=cn”。

76a8c26ef25c2c40ff3d2e34e4457b64.png

继续设置 AD 域管理员密码

48f571f4a1002ba6bba14fb315aa5016.png

最后选择 Simple AD 所在的 VPC 和子网,就可以完成 Simple AD 的创建。

19590d22f0f50c24f56ec34cd262a999.png

创建完成后,可以看到 Simple AD 的 VPC 网络和 IP 地址,通过 AD 域控制器或者 LDAP 客户端工具对用户和组进行管理。如何管理 Simple AD 中的用户目录可以参考官方文档,本文中不再赘述。

  • 官方文档:

    https://docs.aws.amazon.com/zh_cn/directoryservice/latest/admin-guide/simple_ad_how_to.html

43a4d1b382e18d5e4c07738dee9c0e5d.png

02

部署 Apache Ranger

Apache Ranger 的官方网站是 https://ranger.apache.org/,最新的版本是 2.4.0,可以从 https://ranger.apache.org/download.html 获取最新版本的下载。详细的安装手册可以参考 https://cwiki.apache.org/confluence/display/RANGER/Running+Apache+Ranger+-++%5BFrom+source%5D+in+minutes。

Apache Ranger 是一个开源软件,我们需要启动一台 EC2 进行安装部署。同时 Apache Ranger 没有直接的安装包,官网下载源码后需要进行编译。具体安装部署的步骤如下:

1)准备工作,在 EC2 中,用 root 帐号安装 Java JDK、Maven、git、gcc 等工具软件

sudo su - root
yum -y install java-11* git gcc expect
    wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
tar -zxf apache-maven-3.8.6-bin.tar.gz -C /usr/local
export JAVA_HOME=/usr/lib/jvm/java
export PATH=$JAVA_HOME/bin:$PATH
export MAVEN_OPTS="-Xmx2048M"
export M2_HOME=/usr/local/apache-maven-3.8.6
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

左滑查看更多

运行 mvn -version,可以看到正常显示 Maven 的版本。

dae2a55d289752f3bb47fd3dd23bae64.png

安装完成后,需要修改 Maven 的配置文件,否则部署 Apache Ranger 会报错。修改$M2_HOME/conf/setting.xml 文件,屏蔽掉 159 行到 165 行:

sed 159c\ "<!-- <mirror>" -i $M2_HOME/conf/settings.xml
sed 165c\ "</mirror> -->" -i $M2_HOME/conf/settings.xml
sed -i "s/\r//g" $M2_HOME/conf/settings.xml

左滑查看更多

Apache Ranger 使用 MySQL 作为储存权限策略的数据库,需要下载 MySQL 的 JDBC Driver 文件:

wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.25.tar.gz
tar -zxf mysql-connector-java-8.0.25.tar.gz mysql-connector-java-8.0.25/mysql-connector-java-8.0.25.jar --strip-components 1
mv mysql-connector-java-8.0.25.jar /usr/share/java -f

左滑查看更多

MySQL 数据库可以在 EC2 中自建 MySQL 数据库,也可以采用亚马逊云科技托管的 RDS MySQL 8.0 版本,如果采用 RDS MySQL 8.0 版本,需要修改 RDS MySQL 实例的参数: log_bin_trust_function_creators = 1 。

2)编译 Apache Ranger,下载 Apache Ranger 的源码包,用 Maven 进行编译

wget https://dlcdn.apache.org/ranger/2.4.0/apache-ranger-2.4.0.tar.gz
tar -zxf apache-ranger-2.4.0.tar.gz
cd apache-ranger-2.4.0
mvn clean compile package -DskipTests -Drat.skip=true -Dmaven.wagon.http.ssl.insecure=true

左滑查看更多

编译的时间比较长,根据机型配置不同所需要的编译时间会有所不同,本文采用 t3a.small 的机型大约需要等待 30 分钟左右,看到 BUILD SUCCESS 的信息表示编译成功。编译后的安装包保存在 target 目录中。

c9845dbdf6915c1e9de8c553aebc4583.png

3)安装 Apache Ranger 的 ranger-admin 组件,解压缩编译后的安装包

tar -zxf ~/ranger/apache-ranger-2.4.0/target/ranger-2.4.0-admin.tar.gz -C /usr/local

左滑查看更多

修改/usr/local/ranger-2.4.0-admin/install.properties 配置文件的下列参数:

SQL_CONNECTOR_JAR = /usr/share/java/mysql-connector-java-8.0.25.jar
db_root_user = $dbadmin
db_root_password = $dbpassword
db_host = $dbhostname
db_name = $rangerdbname
db_user = $rangeradmin
db_password = $rangerpassword
rangerAdmin_password = $rangerpassword
rangerTagsync_password = $rangerpassword
rangerUsersync_password = $rangerpassword
keyadmin_password = $rangerpassword
#audit_store=solr

左滑查看更多

修改完成后,执行 ./setup.sh 进行 ranger-admin 组件的安装。直到出现“Installation of Ranger PolicyManager Web Application is completed.”的信息,表示 ranger-admin 安装成功。接着执行 ranger-admin start 启动 ranger-admin 服务,启动后,在浏览器访问 ranger-admin 的管理地址,URL 是 http://ec2-hostname:6080,用 admin 用户登录,密码是 install.properties 中 rangerAdmin_password 参数的值。如下图所示,ranger-admin 已经成功部署并运行。

e415cf21674faf35498419f4683a3582.png

4)安装 Apache Ranger 的 ranger-usersync 组件,解压缩编译后的安装包

tar -zxf ~/ranger/apache-ranger-2.4.0/target/ranger-2.4.0-usersync.tar.gz -C /usr/local

左滑查看更多

修改/usr/local/ranger-2.4.0-usersync/install.properties 配置文件的下列参数:

修改/usr/local/ranger-2.4.0-usersync/install.properties配置文件的下列参数:
POLICY_MGR_URL = http://localhost:6080
SYNC_SOURCE = ldap
SYNC_INTERVAL = 60
rangerUsersync_password = $rangerpassword
SYNC_LDAP_URL = ldap://simple-ad-ipaddress:389
SYNC_LDAP_BIND_DN = $ADadmin_DN
SYNC_LDAP_BIND_PASSWORD = $ADadmin_password
SYNC_LDAP_DELTASYNC = true
SYNC_LDAP_SEARCH_BASE = $Search_base
SYNC_LDAP_USER_SEARCH_BASE = $User_search_base

左滑查看更多

修改完成后,执行 ./setup.sh 进行 ranger-usersync 的安装。安装完成后,修改/usr/local/ranger-2.4.0-usersync/conf/ranger-ugsync.site.xml,把第 8 行 ranger.usersync.enabled 的属性由 false 改为 true,否则不会执行用户同步;然后修改/usr/local/ranger-2.4.0-usersync/conf/ranger-ugsync.default.xml,把第 70 行的 ranger.usersync.cookie.enabled 属性由 true 改为 false,否则 usersync 执行定时同步时会报 session 错误。

接着执行 ranger-usersync start 启动 ranger-usersync 服务。在 ranger-admin 的管理控制台中,点击 settings à Users/Groups/Roles,可以看到 Simple AD 中的用户已经被同步到 Ranger 服务,用户类型是 External,用户源是 LDAP/AD。

d35a777ab8e3da36c212a6d2bc67fd9a.png

Apache Ranger 的手工部署步骤比较繁琐,笔者基于 Apache Ranger 2.3.0 的安装写了一个自动化部署脚本,https://github.com/eq9684/emr_autolaunch/blob/main/ranger_mysql8.sh,读者可以参考脚本自行编写 Apache Ranger 2.4.0 的自动化部署脚本。

03

部署 Amazon EMR

Amazon EMR 可以通过亚马逊云科技管理控制台页面进行部署,也可以通过 Amazon CLI 进行一键部署。本文中采用 Amazon CLI 进行快速部署。如何安装和使用 Amazon CLI 可以参考官方文档:https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-getting-started.html,本文假设读者已经安装并熟悉 Amazon CLI 的使用。

安装 Amazon EMR,执行下面的 CLI 命令,命令中的文件参数可以参考:https://github.com/eq9684/emr_autolaunch。Amazon EMR 的组件较多,每个组件与 Simple AD 集成需要分别配置,手动配置会比较繁琐。本文的参数自动填充了 Hive 和 HUE 的参数,启动 Amazon EMR 后,HUE 即可通过设置 Simple AD 的用户作为 HUE 管理员帐号访问。注意需要将命令行和文件中的 keypair、子网、安全组、数据库链接等参数替换为自己的环境,更详细的部署参数可以查看官方文档:https://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/emr-plan-ha-launch.html。

aws emr create-cluster \
 --release-label emr-6.12.0 \
 --instance-groups=''file://instance-group.json \
 --use-default-roles \
 --auto-scaling-role EMR_AutoScaling_DefaultRole \
 --applications Name=Hadoop Name=Hive Name=Hue Name=Pig Name=Tez \
 --ec2-attributes KeyName=keypairFile,SubnetId=subnet-12345678,EmrManagedMasterSecurityGroup=sg-12345678,EmrManagedSlaveSecurityGroup=sg-12345678 \
 --termination-protected \
 --configurations=file://hiveldap.json \
 --name EMR-auto \
 --managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=1,MaximumCapacityUnits=4,MaximumOnDemandCapacityUnits=2,UnitType=Instances,MaximumCoreCapacityUnits=2}' \
 --log-uri s3://aws-logs-bucket\
 --ebs-root-volume-size 30

左滑查看更多

执行后返回带有 ClusterId 的 json 结果,可以在亚马逊云科技管理控制台页面中查看启动状态,Amazon EMR 启动的时间比较长,大约在 10 分钟左右。等集群状态变为绿色字体的“正在等待”,表示 EMR 集群已经成功启动。

3203bedab8c44e6703c415a7fb095056.png

访问 Amazon EMR 主节点的 HUE 服务,URL 是 http://emr-master-hostname:8.8.8.8,用 Simple AD 的设置的管理员帐号登录,就可以进入 HUE 主界面。

0b9a8aa51d6ea56d3dd5ee6f75ea9944.png

HUE 不会自动同步 Simple AD 的其他帐号,需要管理员在用户管理中手动同步。访问 http://emr-master-hostname:8.8.8.8/hue/useradmin/users 进入用户管理界面。

a03477b243ef1348f12a5b094567672e.png

点击“Add/Sync LDAP user”,接下来输入 LDAP 的用户名就可以同步 Simple AD 的用户到 HUE 中。

2fddd07f3f80c18410a45f26a237fbe9.png

133d7ebb9171e865e3ccda20ffa445b5.png

用新同步的用户登录 HUE,可以用 Simple AD 的用户名和密码登录。

dfcc7d52ebfae75032523d20823b7fbd.png

04

在 Amazon EMR 的主节点中

部署 Apache Ranger Plugin

登录到 Ranger 管理控制台的界面,点击 HADOOP SQL 右面的+号,创建 Hive 的策略条目。

ce3d96c71859c28c0bfe90d0d18de82b.png

在 Service Detail 段落中,填写 Service Name 和 Display Name,例如“hive”,记下填入的名称,Amazon EMR plugin 配置文件的属性必须和这个名称一致。

a0074410328e06bbe7ddcd76ae6bd471.png

在 Config Properties 段落中,填写 Simple AD 的用户名和密码,jdbc.driverClassName 保留默认的 org.apache.hive.jdbc.HiveDriver,jdbc url 填写 jdbc:hive2://emr-master-ip:10000/default;auth=noSasl。

3e55c6bf80c2d4bf09ec8eae00488605.png

点击页面下方的“Test Connection”按钮,可以看到连接成功的信息。成功后,点击最下面的“Add”按钮就可以保存策略配置。

9f0a62a427e079e481a8cd0caa71ffa5.png

在 Apache Ranger 的编译目录中,复制 ranger-2.4.0-hive-plugin.tar.gz 文件到 Amazon EMR 的主节点。

用 root 用户登录到 Amazon EMR 的 ssh 终端,执行下列命令:

tar -zxf ranger-2.4.0-hive-plugin.tar.gz 
cd $HOME/ranger-2.4.0-hive-plugin/
cp lib/ranger-hive-plugin-impl/*.jar /usr/lib/hive/lib

左滑查看更多

修改 ranger-2.4.0-hive-plugin 目录中的 install.properties 文件,其中 REPOSITORY_NAME 参数必须填写上一步创建的 Ranger 权限策略的 Service Name,本文上一步填写的 Service Name 是 hive,这里的 REPOSITORY_NAME 也要填写 hive:

POLICY_MGR_URL = http://$ranger-hostname:6080
REPOSITORY_NAME = hive
COMPONENT_INSTALL_DIR_NAME = /usr/lib/hive

左滑查看更多

执行 ./enable-hive-plugin.sh ,安装 hive plugin,然后执行 systemctl restart hive-server2 重新启动 hive 服务。

05

配置 Apache Ranger 权限策略

登录到 Ranger 管理控制台,点击“hive”的权限策略,可以看到当前的权限配置,点击列表中的“all-database”。

81aa8d5529dc3330e8dec64c7948ec10.png

用 HUE 管理员用户登录 HUE,在 default 库中创建一个 hive 表,表名为 private_table。

f4d6a50e763cda46165a04b6c6c17644.png

7350ed77b801f204d81cd2df6c4abfe5.png

登录 Ranger 管理控制台,点击 hive 策略,可以编辑 hive 表的权限,例如我们想把刚才创建的 hive 表设置为私有,就可以在 Range 的权限列表中,增加一条权限如下图所示,我们设置策略的资源是 private_table 表,给用户 huawangz 授予所有权限,同时拒绝任何其他的用户访问。

8a4e133e1beaaa2fc9cabdb08858bf3e.png

0eba8b967601d0d3ec5a5e6b929be324.png

84e94a5d06df054425c09b4d81e0438c.png

0d9d77374b09b419440ec8e5b16cf5cb.png

回到 HUE 的界面中,通过 huawangz 用户增加一条记录

78fb4d185c7ff319b57b42a91f71bdab.png

用 select * from default.private_table,可以查询到刚刚加入的记录

dec32533277c464738ac2e30cbf056d4.png

退出当前的 HUE 用户,用其他用户登录 HUE,同样运行 select * from default.private_table;,可以看到查询被 Hive 拒绝,此用户没有访问 default/private_table/*的权限,无法查询私有表中的数据,说明在 Ranger 中配置的权限策略已经生效。

cddaf5a143399baffcc6be9372535046.png

小结

本文介绍了如何在 Amazon EMR 集群中,通过开源组件 Apache Ranger 对 EMR 中的数据进行权限管理。通过 Apache Ranger 不同的 plug-in,除了对 Hive 表进行权限管理,还可以对 S3、Trino、Spark 等组件进行权限的管理,有兴趣的读者可以查阅亚马逊云科技官方文档:

https://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/emr-ranger-plugins.html 和 Apache Ranger 的文档 https://cwiki.apache.org/confluence/display/RANGER/Ranger+Installation+Guide

本文中自动化部署和配置的代码可以在 https://github.com/eq9684/emr_autolaunch 进行下载并修改。

本篇作者

7b87c5d4b47ff5c6fa953de84fde08ee.jpeg

王华

亚马逊云科技解决方案架构师。有 20 年从事软件架构、应用开发、系统集成等工作经验。擅长 Web 领域应用系统架构设计和开发运维,即时通讯软件、UC、企业 IT 服务台和云呼叫中心系统的开发部署工作,从事过多个大型企业呼叫中心项目的设计、开发与部署。目前专注于制造业和呼叫中心领域的研究和方案推广。

83c5675e62ccdbb1190c0bef2f39a742.gif

星标不迷路,开发更极速!

关注后记得星标「亚马逊云开发者」

868c3676d3520ee3a7dba1e57cce3949.gif

听说,点完下面4个按钮

就不会碰到bug了!

f3eb767c10ba9bb54af867c682f83c51.gif

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

联想拯救者Lenovo Legion R9000K 2021H(82N6)原装出厂Windows10/Win11系统ISO镜像

链接&#xff1a;https://pan.baidu.com/s/13NkeCXNdV0Ib5eeRnZUeAQ?pwdnlr7 提取码&#xff1a;nlr7 拯救者笔记本电脑原厂WIN系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文…

关于Flink的旁路缓存与异步操作

1. 旁路缓存 1. 什么是旁路缓存? 将数据库中的数据,比较经常访问的数据,保存起来,以减少和硬盘数据库的交互 比如: 我们使用mysql时 经常查询一个表 , 而这个表又一般不会变化,就可以放在内存中,查找时直接对内存进行查找,而不需要再和mysql交互 2. 旁路缓存例子使用 dim层…

基于JavaWeb+SSM+Vue教学辅助微信小程序系统的设计和实现

基于JavaWebSSMVue教学辅助微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 1.1 概述 随着信息时代的快速发展&#xff0c;互联网的优势和普及&#xff0c;人们生活…

HCIP-四、MUX-vlanSuper-vlan+端口安全

四、MUX-vlan&Super-vlan端口安全 MUX-vlan实验拓扑实验需求及解法1. 在SW1/2/3分别创建vlan10 20 30 402. SW1/2/3之间使用trunk链路&#xff0c;仅允许vlan10 20 30 40 通过。3. SW与PC/Server之间使用access链路。4. ping验证&#xff1a; Super-vlan端口安全实验拓扑实…

汽车级芯片NCV7518MWATXG 可编程六沟道低压侧 MOSFET预驱动器 特点、参数及应用

NCV7518MWATXG 可编程六沟道低压侧 MOSFET 预驱动器属于 FLEXMOS™ 汽车级产品&#xff0c;用于驱动逻辑电平 MOSFET。该产品可通过串行 SPI 和并行输入组合控制。该器件提供 3.3 V/5 V 兼容输入&#xff0c;并且串行输出驱动器可以采用 3.3 V 或 5 V 供电。内部通电重置提供受…

助力企业前行——ScalaSpark最佳实践课程

时间飞逝&#xff0c;转眼间我们的Scala&Spark培训课程已经圆满结束&#xff01;在这段精彩的学习旅程中&#xff0c;你们展现了坚韧、决心和追求卓越的品质。 scala(Scalable Language)是一种多范式的编程语言&#xff0c;其设计的初衷是要集成面向对象编程和函数式编程的…

【机器学习】On the Identifiability of Nonlinear ICA: Sparsity and Beyond

前言 本文是对On the Identifiability of Nonlinear ICA: Sparsity and Beyond (NIPS 2022)中两个结构稀疏假设的总结。原文链接在Reference中。 什么是ICA(Independent component analysis)&#xff1f; 独立成分分析简单来说&#xff0c;就是给定很多的样本X&#xff0c;通…

Linux基础命令3

移动&#xff0c;剪切文件 普通文件的移动剪切 现在在这儿 上图中&#xff0c;mv y.x ./tmp的意思&#xff0c;就是将当前路径下的y.x文件进行剪切&#xff0c;然后放到路径为当前路径下的tmp目录文件夹里面 操作完成后可以cd tmp&#xff0c;ls看到y.x文件已经在里面了 现在…

CUTLASS 1.3.3中的 Volta884_h884gemm

CUTLASS 是 CUDA C 模板抽象的集合&#xff0c;用于在 CUDA 内的所有级别和规模上实现高性能矩阵-矩阵乘法 (GEMM) 和相关计算。它采用了类似于 cuBLAS 和 cuDNN 中实现的分层分解和数据移动策略。 CUTLASS 最新版本为3.3&#xff0c;相比1.3.3变动较大。然而重温一下1.3.3仍然…

Django 创建项目时找不到数据库sqlite3

原因:PyCharm创建Django项目,找不到数据库sqlite3 解决&#xff1a;如果没有默认的db文件&#xff0c;则应在PyCharm终端中执行以下命令&#xff1a; python manage.py makemigrations python manage.py migrate

实现点击一个选框 使得一个组件的可选性修改

实现效果 代码 html <div class"divrow"><el-checkbox-group v-model"isSendTag" :max"1"><el-checkbox v-for"(item, index) in isSendTagOptions" :key"index" :label"item.value">{{item.…

PDF转Word,1行Python代码就够了,免费用

大家好&#xff0c;这里是程序员晚枫。 今年十一假期没出去旅游&#xff0c;在家里更新一套原创课程&#xff0c;&#x1f449;给小白的《50讲Python自动化办公》。 所有功能&#xff0c;都只需要1行代码&#xff0c;非常适合非程序员入门Python使用。 目前全网播放量直逼100…

Android RecyclerView点击宫格处于选择态外框变方框线,Kotlin

Android RecyclerView点击宫格处于选择态外框变方框线&#xff0c;Kotlin <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_MEDIA_IMAGES" /> implementa…

一起学docker系列之六如何搭建私服版本的Docker镜像仓库

目录 前言1 下载并运行私服版本的Docker镜像仓库2 准备上传私服的Docker镜像3 为镜像打上符合私服规范的标签4 修改Docker守护进程的配置文件5 推送镜像到私服版本的Docker镜像仓库6 验证私服的镜像结语 前言 Docker是一种开源的容器技术&#xff0c;可以让开发者和运维人员快…

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析-改进蜣螂算法优化最小二乘支持向量机的分类预测

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析-改进蜣螂算法优化最小二乘支持向量机的分类预测 目录 分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析-改进蜣螂算法优化最小二乘支持向量机的分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.多特…

HarmonyOS(三)—— 应用程序入口—UIAbility

前言 学习过android的同学都是知道Activity&#xff0c;Activity是Android组件中最基本也是最为常见用的四大组件之一&#xff0c;用户可以用来交互为了完成某项任务。 Activity中所有操作都与用户密切相关&#xff0c;是一个负责与用户交互的组件&#xff0c;可以通过setCon…

Nevron Vision for .NET 2023.1 Crack

Nevron Vision for .NET 适用于桌面和 Web 应用程序的高级数据可视化 Nevron Vision for .NET提供最全面的组件&#xff0c;用于构建面向 Web 和桌面的企业级数据可视化应用程序。 该套件中的组件具有连贯的 2D 和 3D 数据可视化效果&#xff0c;对观众产生巨大的视觉冲击力。我…

阅读记录【arXiv2020】 Adaptive Personalized Federated Learning

Adaptive Personalized Federated Learning 论文地址&#xff1a; https://arxiv.org/abs/2003.13461 摘要 对联邦学习算法个性化程度的研究表明&#xff0c;只有最大化全局模型的性能才会限制局部模型的个性化能力。在本文中&#xff0c;我们提倡自适应个性化联合学习&…

springboot前后端分离项目配置https接口(ssl证书)

文章目录 说明vue.js前端部署vue.js项目axios请求配置本地创建日志文件创建Dockerfile文件配置ssl证书nginx.confvue项目打包上传创建容器部署 后端springboot项目部署配置ssl证书打包部署 补充&#xff1a;jsk证书和pfx证书补充&#xff1a;两种证书的转化JKS转PFXPFX 转 JKS …

基于蛇优化算法优化概率神经网络PNN的分类预测 - 附代码

基于蛇优化算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于蛇优化算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于蛇优化优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络…