Hadoop HDFS 常见问题

news2024/10/3 8:28:15

docker安装hadoop 添加镜像源

为了加速在 CentOS 7 镜像中安装软件包的速度,可以使用阿里云的镜像源。以下是修改后的 Dockerfile,它包括了将 yum 源更改为阿里云的步骤,并确保安装过程更快。
为了加速在 CentOS 7 镜像中安装软件包的速度,可以使用阿里云的镜像源。以下是修改后的 Dockerfile,它包括了将 yum 源更改为阿里云的步骤,并确保安装过程更快。

# 使用官方的 CentOS 7 镜像作为基础镜像
FROM centos:7

# 添加元数据
LABEL author="hjq" date="2022/03/05"

# 更改yum源为阿里云镜像源
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup && \
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \
    yum clean all && \
    yum makecache

# 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no
RUN yum install -y openssh-server sudo && \
    sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

# 安装openssh-clients
RUN yum install -y openssh-clients

# 安装which
RUN yum install -y which

# 添加测试用户root,密码root,并且将此用户添加到sudoers里
RUN echo "root:root" | chpasswd && \
    echo "root ALL=(ALL) ALL" >> /etc/sudoers && \
    ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' && \
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''

# 启动sshd服务并且暴露22端口
RUN mkdir /var/run/sshd
EXPOSE 22

# 拷贝并解压jdk,根据自己的版本修改
ADD jdk-8u321-linux-x64.tar.gz /usr/local/
RUN mv /usr/local/jdk1.8.0_321 /usr/local/jdk1.8
ENV JAVA_HOME /usr/local/jdk1.8
ENV PATH $JAVA_HOME/bin:$PATH

# 拷贝并解压hadoop,根据自己的版本修改
ADD hadoop-3.3.2.tar.gz /usr/local
RUN mv /usr/local/hadoop-3.3.2 /usr/local/hadoop
ENV HADOOP_HOME /usr/local/hadoop
ENV PATH $HADOOP_HOME/bin:$PATH

# 设置容器启动命令
CMD ["/usr/sbin/sshd", "-D"]

关键点说明:

  1. 更改 Yum 源

    • 将默认的 CentOS 基础仓库文件备份。
    • 使用 curl 下载阿里云的 CentOS 7 仓库文件。
    • 清理现有的 Yum 缓存并重新生成缓存。
  2. 安装 SSH 和相关工具

    • 安装 openssh-serversudoopenssh-clients
    • 修改 SSH 配置文件以禁用 PAM。
    • 生成 SSH 主机密钥。
  3. 配置用户和权限

    • 设置 root 用户的密码。
    • 将 root 用户添加到 sudoers 文件中。
  4. 安装 JDK 和 Hadoop

    • 拷贝并解压 JDK 和 Hadoop 的压缩包。
    • 设置环境变量 JAVA_HOMEHADOOP_HOME,并将它们添加到 PATH 中。
  5. 启动 SSH 服务

    • 创建 /var/run/sshd 目录。
    • 在容器启动时运行 SSH 服务。

通过这种方式,不仅可以加快软件包的安装速度,还能确保的 Docker 容器能够快速地提供 SSH 服务。

ERROR: failed to solve: unexpected EOF

=> [ 5/11] RUN yum install -y which                                                                                                                                                                          1.3s 
 => [ 6/11] RUN echo "root:root" | chpasswd &&     echo "root ALL=(ALL) ALL" >> /etc/sudoers &&     ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' &&     ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_k  0.3s 
 => [ 7/11] RUN mkdir /var/run/sshd                                                                                                                                                                           0.2s 
 => ERROR [ 8/11] ADD jdk-8u321-linux-x64.tar.gz /usr/local/                                                                                                                                                  0.1s 
------                                                                                                                                                                                                             
 > [ 8/11] ADD jdk-8u321-linux-x64.tar.gz /usr/local/:                                                                                                                                                             
------                                                                                                                                                                                                             
Dockerfile:34                                                                                                                                                                                                      
--------------------
  32 |     
  33 |     # 拷贝并解压jdk,根据自己的版本修改
  34 | >>> ADD jdk-8u321-linux-x64.tar.gz /usr/local/
  35 |     RUN mv /usr/local/jdk1.8.0_321 /usr/local/jdk1.8
  36 |     ENV JAVA_HOME /usr/local/jdk1.8
--------------------
ERROR: failed to solve: unexpected EOF

主要问题

  1. 内部文件和外部文件不一致, 将RUN mv /usr/local/jdk1.8.0_321 改为文件的内部文件名

hdfs dfs -put test.txt / 遇到的问题

[root@master /]# hdfs dfs -put test.txt /
2024-10-01 02:48:53,048 WARN hdfs.DataStreamer: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /test.txt._COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.
	at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:2338)
	at org.apache.hadoop.hdfs.server.namenode.FSDirWriteFileOp.chooseTargetForNewBlock(FSDirWriteFileOp.java:294)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2989)
	at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:911)
	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:595)
	at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
	at org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:621)
	at org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:589)
	at org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:573)
	at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1213)
	at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1089)
	at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1012)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899)
	at org.apache.hadoop.ipc.Server$Handler.run(Server.java:3026)

	at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1584)
	at org.apache.hadoop.ipc.Client.call(Client.java:1530)
	at org.apache.hadoop.ipc.Client.call(Client.java:1427)
	at org.apache.hadoop.ipc.ProtobufRpcEngine2$Invoker.invoke(ProtobufRpcEngine2.java:258)
	at org.apache.hadoop.ipc.ProtobufRpcEngine2$Invoker.invoke(ProtobufRpcEngine2.java:139)
	at com.sun.proxy.$Proxy9.addBlock(Unknown Source)
	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:531)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:433)
	at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:166)
	at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:158)
	at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:96)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:362)
	at com.sun.proxy.$Proxy10.addBlock(Unknown Source)
	at org.apache.hadoop.hdfs.DFSOutputStream.addBlock(DFSOutputStream.java:1088)
	at org.apache.hadoop.hdfs.DataStreamer.locateFollowingBlock(DataStreamer.java:1915)
	at org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1717)
	at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:713)
put: File /test.txt._COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

HDFS 无法将文件 test.txt 写入集群,因为没有可用的 DataNode。具体错误是:


File /test.txt._COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

这表明 Hadoop 集群中没有运行的 DataNode,因此 NameNode 无法找到足够的 DataNode 来存储数据块。

解决方法

  1. 检查 DataNode 是否启动
    • 确保所有 DataNode 服务已经启动。可以通过以下命令检查 DataNode 的状态:
      hdfs dfsadmin -report
      
    • 这个命令会显示集群的状态报告,包括每个 DataNode 的信息。如果没有任何 DataNode 显示,则表示 DataNode 没有启动。
  2. 启动 DataNode
    • 如果 DataNode 没有启动,需要手动启动它们。假设在单节点或多节点集群上,可以使用以下命令启动 DataNode:
      hdfs --daemon start datanode
      
    • 如果在多节点集群上,确保在所有 DataNode 节点上都执行这个命令。
  3. 检查配置文件
    • 确保 Hadoop 配置文件(如 hdfs-site.xmlcore-site.xml)正确配置了 DataNode 的位置和端口。
    • 确认 dfs.datanode.addressdfs.datanode.http.addresshdfs-site.xml 中正确设置。
  4. 检查日志文件
    • 查看 DataNode 的日志文件以获取更多详细信息。日志文件通常位于 /var/log/hadoop/ 目录下,具体路径可能因配置而异。
    • 日志文件名通常是 hadoop-hadoop-datanode-<hostname>.log 或类似的命名方式。
  5. 检查防火墙和网络
    • 确保防火墙没有阻止 DataNode 与 NameNode 之间的通信。
    • 确保所有节点之间的网络连接正常。
  6. 格式化 NameNode(仅在必要时):
    • 如果是第一次设置集群或者遇到其他问题,可能需要格式化 NameNode:
      hdfs namenode -format
      
    • 注意:这将清除所有现有的 HDFS 数据,请谨慎操作。
  7. 重启 Hadoop 服务
    • 有时,重启整个 Hadoop 服务可以解决问题。可以使用以下命令停止并重新启动 Hadoop 服务:
      stop-dfs.sh
      start-dfs.sh
      

示例命令

假设有一个简单的单节点集群,以下是启动 DataNode 并检查其状态的示例命令:

# 启动 DataNode
hdfs --daemon start datanode

# 检查 DataNode 状态
hdfs dfsadmin -report

如果在一个多节点集群上,确保在所有 DataNode 节点上执行这些命令。

其他注意事项

  • 确保 Hadoop 版本与集群配置兼容。
  • 确保所有节点上的 Hadoop 配置文件是一致的。
  • 如果使用的是分布式环境,确保所有节点的时间同步。

Couldn’t find datanode to write file. Forbidden (hadoop上传不了文件)

当遇到 Couldn't find datanode to write file. Forbidden 错误时,这通常意味着 Hadoop NameNode 无法找到可用的 DataNode 来写入数据。以下是一些可能的原因和解决方法:

可能的原因

  1. DataNode 未启动
    • 确保所有 DataNode 服务已经启动。
  2. 防火墙或网络问题
    • 确保 DataNode 和 NameNode 之间的网络通信没有被防火墙阻止。
    • 检查网络连接是否正常。
  3. 配置错误
    • 确认 hdfs-site.xmlcore-site.xml 配置文件中的设置正确无误。
    • 确认 dfs.replication 设置合理(默认值通常是 3)。
  4. 权限问题
    • 确保有权限在 HDFS 上创建文件。检查 HDFS 的权限设置。
  5. NameNode 和 DataNode 版本不匹配
    • 确保所有节点上的 Hadoop 版本一致。
  6. DataNode 日志中的错误
    • 查看 DataNode 的日志文件以获取更多详细信息。

解决方法

  1. 检查 DataNode 是否启动

    • 使用以下命令检查 DataNode 的状态:
      hdfs dfsadmin -report
      
    • 如果没有任何 DataNode 显示,则表示 DataNode 没有启动。
  2. 启动 DataNode

    • 在每个 DataNode 节点上执行以下命令来启动 DataNode 服务:
      hdfs --daemon start datanode
      
  3. 检查防火墙和网络

    • 确保防火墙没有阻止 DataNode 与 NameNode 之间的通信。
    • 确保所有节点之间的网络连接正常。
    • 可以使用 ping 命令测试节点之间的连通性:
      ping <datanode-hostname>
      
  4. 检查配置文件

    • 确认 hdfs-site.xmlcore-site.xml 配置文件中的设置正确无误。
    • 确认 dfs.replication 设置合理。例如:
      <property>
        <name>dfs.replication</name>
        <value>3</value>
      </property>
      
    • 如果集群只有一个 DataNode,可以将 dfs.replication 设置为 1:
      <property>
        <name>dfs.replication</name>
        <value>1</value>
      </property>
      
  5. 检查权限

    • 确保有权限在 HDFS 上创建文件。可以使用以下命令检查当前用户的权限:
      hdfs dfs -ls /
      
    • 如果需要,可以更改目录权限:
      hdfs dfs -chmod 777 /
      
  6. 查看 DataNode 日志

    • 查看 DataNode 的日志文件以获取更多详细信息。日志文件通常位于 /var/log/hadoop/ 目录下,具体路径可能因的配置而异。
    • 日志文件名通常是 hadoop-hadoop-datanode-<hostname>.log 或类似的命名方式。
  7. 重启 Hadoop 服务

    • 有时,重启整个 Hadoop 服务可以解决问题。可以使用以下命令停止并重新启动 Hadoop 服务:
      stop-dfs.sh
      start-dfs.sh
      

示例命令

假设有一个简单的单节点集群,以下是启动 DataNode 并检查其状态的示例命令:

# 启动 DataNode
hdfs --daemon start datanode
# 检查 DataNode 状态
hdfs dfsadmin -report

如果在一个多节点集群上,确保在所有 DataNode 节点上执行这些命令。

其他注意事项

  • 确保 Hadoop 版本与的集群配置兼容。
  • 确保所有节点上的 Hadoop 配置文件是一致的。
  • 如果使用的是分布式环境,确保所有节点的时间同步。

通过上述步骤,能够解决 Couldn't find datanode to write file. Forbidden 问题,并成功将文件上传到 HDFS。

RemoteException Object { exception: “AccessControlException”, javaClassName: "org.apache.hadoop.security.AccessControlException

RemoteException	Object { exception: "AccessControlException", javaClassName: "org.apache.hadoop.security.AccessControlException", message: 'Permission denied: user=dr.who, access=WRITE, inode="/":root:supergroup:drwxr-xr-x\n\tat org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:506)\n\tat org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:346)\n\tat org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:242)\n\tat org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1943)\n\tat org…Invoker.call(ProtobufRpcEngine2.java:573)\n\tat org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1213)\n\tat org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1089)\n\tat org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1012)\n\tat java.security.AccessController.doPrivileged(Native Method)\n\tat javax.security.auth.Subject.doAs(Subject.java:422)\n\tat org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899)\n\tat org.apache.hadoop.ipc.Server$Handler.run(Server.java:3026)\n' }

遇到的 AccessControlException 是 Hadoop 中常见的权限问题。具体错误信息是:

Permission denied: user=dr.who, access=WRITE, inode="/":root:supergroup:drwxr-xr-x

这表明用户 dr.who 尝试对根目录 / 进行写操作,但没有足够的权限。

解决方法

  1. 检查 HDFS 权限
    使用 hdfs dfs -ls / 命令来查看根目录的权限设置。

    hdfs dfs -ls /
    

    应该会看到类似以下的输出:

    drwxr-xr-x - root supergroup          0 2023-10-01 11:05 /
    

    在这个例子中,根目录的权限是 drwxr-xr-x,这意味着只有 root 用户和 supergroup 组有写权限。

  2. 更改 HDFS 权限
    如果需要允许 dr.who 用户进行写操作,可以更改目录的权限或将其添加到具有写权限的组。

    • 更改目录权限
      可以使用 hdfs dfs -chmod 命令来更改目录的权限。

      hdfs dfs -chmod 777 /
      

      注意:将权限设置为 777 会使任何人都可以读、写和执行该目录,这在生产环境中通常是不安全的。建议仅在测试环境中这样做,并确保在生产环境中使用更严格的权限设置。

    • 将用户添加到具有写权限的组
      可以将 dr.who 用户添加到 supergroup 组(假设 supergroup 有写权限)。

      sudo usermod -a -G supergroup dr.who
      

      然后重新登录以使组更改生效。

  3. 使用 Hadoop 的 hadoop 命令行工具
    可以使用 hadoop fshdfs dfs 命令来管理 HDFS 文件系统。

  4. 检查 Hadoop 配置
    确保 Hadoop 配置文件中的 hdfs-site.xmlcore-site.xml 没有配置错误。特别是检查 hdfs-site.xml 中的 dfs.permissions.enabled 属性是否设置为 true

    <property>
        <name>dfs.permissions.enabled</name>
        <value>true</value>
    </property>
    

    如果不希望启用权限检查,可以将其设置为 false(不推荐在生产环境中这样做)。

  5. 使用正确的用户运行 Hadoop 命令
    确保使用的是具有适当权限的用户来运行 Hadoop 命令。可以使用 sudo -u <user> 来切换用户并运行命令。

    sudo -u hdfs hdfs dfs -mkdir /mydirectory
    

示例

假设想让 dr.who 用户能够写入 /mydirectory 目录,可以按以下步骤操作:

  1. 创建目录并设置适当的权限:

    hdfs dfs -mkdir /mydirectory
    hdfs dfs -chown dr.who:supergroup /mydirectory
    hdfs dfs -chmod 775 /mydirectory
    
  2. 验证权限:

    hdfs dfs -ls /mydirectory
    
  3. 使用 dr.who 用户尝试写入文件:

    sudo -u dr.who hdfs dfs -put localfile.txt /mydirectory/
    

通过这些步骤,应该能够解决 AccessControlException 并允许 dr.who 用户进行写操作。

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

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

相关文章

Leecode刷题之路第六天之Z字形变换

题目出处 06-Z字形变换 题目描述 个人解法 思路&#xff1a; todo 代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo 官方解法 06-Z字形变换官方解法 方法1&#xff1a;利用二维矩阵模拟 思路&#xff1a; 代码示例&#xff1a;&#xff08;Java&am…

Microsoft 更新 Copilot AI,未來將能使用語音並看到你瀏覽的網頁

不過受到 Recall 事件的影響&#xff0c;更新的推出將更緩慢謹慎。 Microsoft 也同步對其網頁版及行動版的 Copilot AI 進行大改版。這主要是為網頁版換上了一個較為簡單乾淨的介面&#xff0c;並增加了一些新的功能&#xff0c;像是 Copilot Voice 能讓你與 AI 助手進行對話式…

Ansible Playbook原理与实践(Principles and Practice of Ansible Playbook)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…

环绕航线规划软件,适配大疆御3e、M300/350适用大疆机型: 经纬M300 rtk、M350rtk、御3e等行业机,能支持kml,㎞z导入。

环绕航线规划软件,适配大疆御3e、M300/350 适用大疆机型: 经纬M300 rtk、M350rtk、御3e等行业机,能支持kml,㎞z导入。 环绕航线规划软件介绍 名称 环绕航线规划软件 (Orbit Flight Planning Software) 适用机型 大疆经纬 M300 RTK大疆经纬 M350 RTK大疆御 3E 行业机功能特…

【技术详解】SpringMVC框架全面解析:从入门到精通(SpringMVC)

文章目录 【技术详解】SpringMVC框架全面解析&#xff1a;从入门到精通(SpringMVC)SpringMVC概述1. 三层架构与MVC架构区别1.1 三层架构1.2 MVC架构1.3前后端分离开发模式 2. SpringMVC环境搭建2.1 注解启动方式2.2 xml启动方式2.3 SpringMVC PostMan工具使用 3. SpringMVC 请求…

electron出现乱码和使用cmd出现乱码

第一种出现乱码。这种可以通过chcp 65001&#xff0c;设置为utf-8的编码。第二种&#xff0c;是执行exec的时候出现乱码&#xff0c;这个时候需要设置一些编码格式&#xff0c;可以通过iconv-lite进行解决&#xff0c;这个方法是node自带的&#xff0c;所以不需要导入。使用方法…

scrapy爬取汽车、车评数据【上】

这个爬虫我想分三期来写&#xff1a; ✅ 第一期写如何爬取汽车的车型信息&#xff1b; ✅ 第二期写如何爬取汽车的车评&#xff1b; ✅ 第三期写如何对车评嵌入情感分析结果&#xff0c;以及用简单的方法把数据插入mysql中&#xff1b; 技术基于scrapy框架、BERT语言模型、mysq…

【springboot】整合沙箱支付

目录 1. 配置沙箱应用环境2. 配置springboot项目1. 引入依赖2. 配置文件注册下载ngrok 3. 创建支付宝支付服务类4. 支付界面模板5. 控制类实现支付6. 测试 1. 配置沙箱应用环境 使用支付宝账号登录到开放平台控制台。 使用支付宝登录后&#xff0c;看到以下页面&#xff0c;下…

2、.Net 前端框架:OpenAuth.Net - .Net宣传系列文章

OpenAuth.Net 是一个开源的身份验证框架&#xff0c;由开发者 Yubaolee 创建&#xff0c;它旨在简化 Web 应用和服务的安全授权过程。这个框架以其强大的功能和易用性&#xff0c;为开发人员提供了一种高效的方式来处理用户认证和授权问题。 OpenAuth.Net 的关键特性包括&#…

无头双向不循环链表的模拟

总共由四部分组成&#xff0c;一个拥有总体方法名参数 的接口、一个异常类、一个方法类、一个测试类 先看我们写入的接口 public interface ILinkList {// 2、无头双向链表实现//头插法void addFirst(int val);//尾插法void addLast(int val);//任意位置插入,第一个数据节点为…

广联达 Linkworks办公OA Service.asmx接口存在信息泄露漏洞

漏洞描述 广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑&#xff0c;提供一百余款基于“端云大数据”产品/服务&#xff0c;提供产业大数据、产业新金融等增值服务的数字建筑平台服务商。广联达OA存在信息泄露漏洞&#xff0c;由于某些接口没有鉴权&#xff0c…

Unity Input System自动生成配置

参考视频 创建及配置新输入系统 New Input System&#xff5c;Unity2022.2 最新教程《勇士传说》入门到进阶&#xff5c;4K_哔哩哔哩_bilibili ProjectSettings设置 Unity编辑器菜单栏选择Edit->Project Settings->Player->Other Settings,将Api Compatibility Level…

Ascend C 算子运行资源管理简介

Ascend C 算子运行资源管理简介 在 Ascend C 平台上开发深度学习应用时&#xff0c;运行资源的管理是一个核心知识点。通过合理管理算子执行中的计算资源&#xff0c;能够有效提升模型的执行效率和硬件利用率。本文将简要介绍 Ascend C 算子运行时的资源管理。 1. AscendCL 初…

draw.io创建自定义形状

Create custom shapes in draw.io using the text editor Reference draw怎么创建和编辑复杂的自定义形状 https://blog.csdn.net/u012028275/article/details/113828875 Create custom shapes in draw.io using the text editor

AMD发布首个AI小语言模型:6900亿token、推测解码提速3.88倍

AMD发布了自己的首个小语言模型(SLM)&#xff0c;名为“AMD-135M”。相比于越来越庞大的大语言模型(LLM)&#xff0c;它体积小巧&#xff0c;更加灵活&#xff0c;更有针对性&#xff0c;非常适合私密性、专业性很强的企业部署。 AMD-135小模型隶属于Llama家族&#xff0c;有两…

5分钟学会SPI

SPI 定义&#xff1a;SPI 是一种机制&#xff0c;允许用户在不修改现有代码的情况下扩展和替换特定服务的实现。它定义了一组接口&#xff08;Service Interfaces&#xff09;和一组实现&#xff08;Service Providers&#xff09;&#xff0c;使得应用程序可以动态加载和使用…

netty之Netty与SpringBoot整合

前言 在实际的开发中&#xff0c;我们需要对netty服务进行更多的操作&#xff0c;包括&#xff1b;获取它的状态信息、启动/停止、对客户端用户强制下线等等&#xff0c;为此我们需要把netty服务加入到web系统中。 MyChannelInitializer public class MyChannelInitializer ex…

[C++]使用C++部署yolov11目标检测的tensorrt模型支持图片视频推理windows测试通过

官方框架&#xff1a; https://github.com/ultralytics/ultralytics yolov8官方最近推出yolov11框架&#xff0c;标志着目标检测又多了一个检测利器&#xff0c;于是尝试在windows下部署yolov11的tensorrt模型&#xff0c;并最终成功。 重要说明&#xff1a;安装环境视为最基…

边缘自适应粒子滤波(Edge-Adaptive Particle Filter)的MATLAB函数示例,以及相应的讲解

目录 讲解 初始化 预测步骤 观测模拟 权重更新 重采样 状态估计 总结 下面是一个简单的边缘自适应粒子滤波&#xff08;&#xff09;的函数示例&#xff0c;以及相应的讲解。 程序源代码&#xff1a; function X_est edgeAdaptiveParticleFilter(numParticles, numS…