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

大数据学习-Hadoop

介绍

是 Apache 的顶级开源项目,一个分布式框架,主要功能:

  1. 分布式大数据存储——HDFS 组件
  2. 分布式大数据计算——MapReduce 组件
  3. 分布式资源调度——YARN 组件

可以通过它来构建集群,完成大数据的存储和计算

学习起来相对简单,市场占有率高,为后续的其他大数据软件学习打下基础

这里学习的是 Hadoop 开源版

HDFS

Hadoop Distributed File System,Hadoop 分布式文件系统,是一个用来存储数据的组件

可以在多台服务器上构建存储集群,存储海量数据

为什么需要分布式来存储

单台服务器无法存储太大的数据,那就把文件分成多个部分,用多台服务器存储多个部分

多台服务器还可以实现性能横向扩展,比如带宽、磁盘 IO 、CPU 运算速度等

如何管理多个服务器

中心化和去中心化

在大数据中大部分都是主从模式,这个 Hadoop 就是主从模式

基础架构

主角色:NameNode(是一个独立的进程,负责管理整个 HDFS 和 DataNode;领导)

从角色:DataNode (是一个独立的进程,主要负责存取数据;员工)

主角色辅助角色:SecondaryNameNode (是一个独立的进程,协助主角色合并元数据,这就是它唯一的作用;老板秘书)

经过后面的学习,可以这么理解吧:

  1. NameNode 负责整个集群的管理,元数据的记录和权限的审核
  2. DataNode 负责集群中文件的存储
  3. SecondaryNameNode 负责合并元数据文件(edits & fsimage)

可以在 IDEA 中下载 Big Data Tools 插件,再进行一波配置就能连接上远程的 HDFS 了,可以用图形化界面进行文件的增删改查

VMware 集群部署配置

下载好后,在 node1 上部署三个角色

另外两个 node,部署 DataNode 即可

上传 & 解压

把 Hadoop 的压缩包上传到 /export/server 中,并解压

tar -zxvf hadoop-3.3.4.tar.gz -C /export/server

构建软连接

cd /export/server

ln -s /export/server/hadoop-3.3.4 hadoop

修改配置文件

workers

这个是记录集群中哪几个服务器是从节点

把自带的 localhost 给删除

hadoop-env.sh

core-site.xml

<configuration>

    <property>

        <name?>fs.defaultFS</name>

        <value>hdfs:node1:8020</value>

    </property>

   

    <property>

        <name?>io.file.buffer.size</name>

        <value>131072</value>

    </property>

</configuration>

hdfs-site.xml

<configuration>

    <property>

        <name>dfs.datanode.data.dir.perm</name>

        <value>700</value>

    </property>

    <property>

        <name>dfs.namenode.name.dir</name>

        <value>/data/nn</value>

    </property>

    <property>

        <name>dfs.namenode.hosts</name>

        <value>node1,node2,node3</value>

    </property>

    <property>

        <name>dfs.blocksize</name>

        <value>268435456</value>

    </property>

    <property>

        <name>dfs.namenode.handler.count</name>

        <value>100</value>

    </property>

    <property>

        <name>dfs.datanode.data.dir</name>

        <value>/data/dn</value>

    </property>

</configuration>

创建数据保存的目录

把 node1 中的文件复制给另两个

cd /export/server

scp -r hadoop-3.3.4 node2:/export/server

scp -r hadoop-3.3.4 node3:/export/server

软连接

ln -s /export/server/hadoop-3.3.4 /export/server/hadoop

环境变量

在三台机器都加上这些

vim /etc/profile

export HADOOP_HOME=/export/server/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

为授权 hadoop 用户

为了用 hadoop 用户启动服务

用 root 在三台机器中执行

chown -R hadoop:hadoop /data

chown -R hadoop:hadoop /export

格式化 HDFS

格式化 namenode

su hadoop

hadoop namenode -format

启动

# 启动HDFS集群

start-dfs.sh

# 停止HDFS集群

stop-dfs.sh

成功标志

在 /data/nn/current 目录中有这些

启动后,输入 jps,node1 有这些,node2/3 只有 DataNode

如果无法启动,说明配置文件或者权限有问题,去看日志+问AI基本都能解决

启动后,访问这个地址,可以看到 web 管理页面(Windows 的 hosts 文件有映射)

http://node1:9870/

启动完毕后,关机,打快照,ssh 以后用 hadoop 用户登录

HDFS 操作

一键启动、停止

# 启动HDFS集群

start-dfs.sh

# 停止HDFS集群

stop-dfs.sh

单进程启停

文件系统操作命令

HDFS 的目录形式和 Linux 一样,命令名称和 Linux 几乎一样,在前面加上特定的关键字即可

创建文件夹

hadoop 会自动识别创建的目录是 HDFS 还是 Linux 的目录的

查看目录中的内容

上传文件到 HDFS 指定目录

查看 HDFS 中文件内容

下载 HDFS 文件

复制 HDFS 文件

追加/删除 HDFS 文件内容

只可以删除和追加内容,不能修改文件内容

把 localsrc 中的内容追加到 dst 文件中

移动 HDFS 文件

删除 HDFS 文件

回收站功能

第一个的 1440,表示保留时长为一天(24 * 60 = 1440 min)

第二个的 120,表示 120 分钟检查一次回收站

注意这个配置修改后会立即生效,在哪个机器进行配置,就在哪生效

web UI 操作 HDFS

但是默认情况下,只有只读权限

修改方法:

切换到 root 用户,修改 core-site.xml 文件,然后重启集群

<property>

    <name>hadoop.http.staticuser.user</name>

    <value>hadoop</value>

</property>

后面的话还会有其他的 HDFS 客户端,比这个好用

HDFS 权限

文件的权限控制和 Linux 是一样的

这个 supergroup 是启动 namenode 的用户(在本文中是 hadoop 用户)

谁启动谁就是超级用户,root 在 Linux 上超级用户,但是在 HDFS 中只是普通用户,无特权

HDFS 存储原理

把一个文件拆分为多个部分,把各自部分存到不同的服务器

在取出来时,在组装起来即可

这种方法的问题:文件大小不同,不利于管理

block 块与备份

这是文件在 HDFS 中存储的统一单位,叫 block,一个 block 默认的大小是 256 MB(可以修改)

如果有个块出问题了怎么办?这样文件取出来后是损坏的(有点像 raid 0)

解决方法:对文件进行复制,做备份,并放到不同服务器中

默认对每个块做两个备份(可修改),一个文件就有三份

大文件会有很多的 block

修改备份数

在 hdfs-site.xml 中,修改这个属性后重启集群

当然一般情况下是不用动它的

block 配置文件

默认一个 block 大小是 256 MB,一般都不用改的

临时设置备份数和 fsck 命令

这个 2,只针对本次文件上传生效

会输出很多,但都很容易看懂

元数据记录-NameNode

HDFS 中有很多的块和文件,hadoop 如何记录和整理文件和 block 之间的关系?通过 NameNode 写入的两个文件

edits 文件

NameNode 来写 edits 文件

是一个流水账文件,记录了 HDFS 中的每一次操作,还有本次操作影响的文件和对应的 block

当文件大小达到阈值,就会使用新的 edits 文件进行记录

但是这个文件会越来越大,所以会有多个 edits 文件;

还有就是因为记录的是流水账,如果前面记录了新增文件,后面又删除了,所以查找文件时,需要从头到尾遍历所有的 edits 文件,这样效率就很低

解决方法:只要最后的结果,叫做 edits 文件的合并(那这种方法和 AOF 文件一样),这样的体积就会小很多

最终得到 fsimage 文件

fsimage 文件

定期会进行 edits 文件的合并操作,如果不存在则会创建

如果之前已经存在了 fsimage 文件,会将全部的 edits 文件和已经存在的 fsimage 文件进行合并,形成新的 fsimage 文件

这样查找文件的话,主要通过 fsimage 来查询

合并时间设置

谁来进行合并

在 HDFS 架构中,NameNode 有个辅助角色:SecondaryNameNode

它就是进行数据合并的,这也是它唯一的作用,不启动它的话,文件搜索的速度会越来越慢

它通过 HTTP 获取 edits 和 fsimage,合并完成后再提供给 NameNode

HDFS 写入数据流程

  1. 客户端向 NameNode 发送写入请求
  2. NameNode 检查客户端是否具有写入权限,HDFS 剩余空间是否充足;如果都 OK,那么会返回允许写入的消息,和要写入的地址(某个 DataNode 的 IP)
  3. 客户端向指定的 DataNode 发送数据包(写入数据)
  4. 被写入数据的 DataNode,会完成数据备份的操作,并将这些数据发送给其他的 DataNode
  5. 客户端通知 NameNode 写入完毕;NameNode 向 edits 和 fsimage 文件中写入数据

HDFS 读取文件流程

  1. 客户端发送读取请求给 NameNode
  2. NameNode 允许读取,并返回该文件的 block 列表
  3. 客户端根据列表,去 DataNode 中读取文件

MapReduce

分布式计算

计算,就是根据给定的条件和数据,得出相应的结论

多台计算机一起来计算,就是分布式计算;那这就会涉及多台计算机的管理问题

分散-汇总模式

  1. 对于很大的数据,每台计算机得到一部分来进行计算
  2. 算完后,将各自的结果汇总到一台计算机中
  3. 最后由这台计算机计算出最终的结果

典型例子:人口普查,一层层统计后向上汇报

中心调度-步骤执行模式

  1. 让一个节点作为总指挥,将任务分成若干个步骤
  2. 总指挥将任务下发给多个计算机,它们执行计算

不同点:在执行完某些步骤后,不同计算机之间会进行结论的交换后,才能继续进行计算

典型例子:老板-高管-经理-部门主管-员工,这种管理模式

MapReduce 使用的是 分散-汇总模式,而更牛的框架(spark、flink 使用中心调度-步骤执行模式)

介绍

它是 Hadoop 的一个组件,用来进行分布式计算的一个框架;计算的模式:分散-汇总模式

提供了两个接口

  1. Map,提供“分散”功能,由多个服务器分布式地对数据进行处理
  2. Reduce,提供“汇总”功能,将分布式计算的结果进行汇总

可以使用高级语言实现接口,来执行相应的功能

但是现在基本都是使用 Hive 框架,它的底层是 MapReduce,所以这里只是简单介绍

简单分析执行原理

假如一个文件中有很多的单词,现在要统计每个单词出现的次数

现在有三台服务器,两台执行 Map 的任务,一台执行 Reduce 的任务

会将文件分为多个部分,每台机器统计该部分的单词数量,最后将结果交给汇总的服务器

Yarn

是 Hadoop 的一个组件,用来进行分布式的资源调度

对于多台服务器,需要有规划、统一地去调度各种硬件资源,提高资源利用率

MapReduce 是基于 Yarn 运行的,这样可以得到更好的资源利用率

核心架构

主从架构,一主多从

  1. 主角色:ResourceManger,负责集群的资源调度,协调调度各个程序所需的资源(老板)
  2. 从角色:NodeManager,负责单台服务器的资源调度(各部门经理)

一个程序过来申请资源,就先去找 ResourceManager 要资源,老大再去通知小弟

容器

Yarn 基于容器技术,实现资源的精准分配

NodeManager 预先占用一部分资源,再将这部分资源提供给程序使用;程序使用的资源上限就是容器占用资源的大小,不能突破

程序需要 4GB 内存,那 NodeManager 就先占用 4GB 内存,然后将这些内存给程序使用

辅助架构

这两个辅助角色让 Yarn 集群运行更加稳定

代理服务器-ProxyServer

在 Yarn 运行时,也会有一个 Web UI,如果在公网上就可能遭受攻击

它的作用就是减少网络攻击的可能性,提高安全性

这个推荐单独运行,不要和 Yarn 一起运行

历史服务器-JobHistoryServer

记录历史运行的程序信息、产生的日志、提供WEB UI站点供用户使用浏览器查看。

有它的原因是 Yarn 是用容器来分配资源的,如果要查看某个容器的日志,是比较麻烦的

所以就用它来统一收集并展示(浏览器)

Yarn 集群部署

ResourceManager 进程作为管理节点

NodeManager 进程作为工作节点

ProxyServer、JobHistoryServer 进程作为辅助节点

而 MapReduce 是运行在 Yarn 容器中的,所以无需独立启动进程,它也没有独立的进程,改改配置文件即可

MapReduce 配置文件

切换为 root 用户,来到 /export/server/hadoop-3.3.4/etc/hadoop 目录

修改 mapred-env.sh 文件,添加这些东西

# 设置 JDK 路径

export JAVA_HOME=/export/server/jdk

# 设置 JobHistoryServer 进程内存为 1G

export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000

# 设置日志级别为 INFO

export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

mapred-site.xml,添加这些东西

<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

        <description>MapReduce 的运行框架设置为 YARN</description>

    </property> ​    

    <property>

        <name>mapreduce.jobhistory.address</name>

        <value>node1:10020</value>

        <description>历史服务器地址:node1:10020</description>

    </property> ​ ​    

    <property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>node1:19888</value>

        <description>历史服务器web端口为node1的19888</description>

    </property> ​ ​    

    <property>

        <name>mapreduce.jobhistory.intermediate-done-dir</name>

        <value>/data/mr-history/tmp</value>

        <description>历史信息在HDFS的记录临时路径</description>

    </property> ​ ​    

    <property>

        <name>mapreduce.jobhistory.done-dir</name>

        <value>/data/mr-history/done</value>

        <description>历史信息在HDFS的记录路径</description>

    </property>

    <property>

        <name>yarn.app.mapreduce.am.env</name>

        <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>

        <description>MapReduce HOME 设置为 HADOOP_HOME</description>

    </property>

    <property>

        <name>mapreduce.map.env</name>

        <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>

        <description>MapReduce HOME 设置为 HADOOP_HOME</description>

    </property>

    <property>

        <name>mapreduce.reduce.env</name>

        <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>

        <description>MapReduce HOME 设置为 HADOOP_HOME</description>

    </property>

</configuration>

YARN 配置文件

切换为 root 用户,来到 /export/server/hadoop-3.3.4/etc/hadoop 目录

修改 yarn-env.sh 文件,添加 4 行环境变量

# JDK 环境变量

export JAVA_HOME=/export/server/jdk

# HADOOP_HOME

export HADOOP_HOME=/export/server/hadoop

# 配置文件路径的环境变量

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

# export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

# export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn

# 日志文件的环境变量

export HADOOP_LOG_DIR=$HADOOP_HOME/logs

修改 yarn-site.xml 文件,添加这些东西

<configuration>

    <property>

        <name>yarn.log.server.url</name>

        <value>http://node1:19888/jobhistory/logs</value>

        <description>历史服务器URL</description>

    </property>

    <property>

        <name>yarn.web-proxy.address</name>

        <value>node1:8089</value>

        <description>proxy server hostname and port</description>

    </property>

    <property>

        <name>yarn.log-aggregation-enable</name>

        <value>true</value>

        <description>开启日志聚合,可以在浏览器中看到整理好的日志</description>

    </property>

    <property>

        <name>yarn.nodemanager.remote-app-log-dir</name>

        <value>/tmp/logs</value>

        <description>程序日志HDFS的存储路径</description>

    </property>

                <!-- Site specific YARN configuration properties -->

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>node1</value>

        <description>ResourceManager设置在node1节点</description>

    </property>

    <property>

        <name>yarn.resourcemanager.scheduler.class</name>

        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>

        <description>选择公平调度器</description>

    </property>

    <property>

        <name>yarn.nodemanager.local-dirs</name>

        <value>/data/nm-local</value>

        <description>NodeManager数据的本地存储路径</description>

    </property>

    <property>

        <name>yarn.nodemanager.log-dirs</name>

        <value>/data/nm-log</value>

        <description>NodeManager数据日志本地存储路径</description>

    </property>

    <property>

        <name>yarn.nodemanager.log.retain-seconds</name>

        <value>10800</value>

        <description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description>

    </property>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

        <description>为MapReduce程序开启shuffle服务</description>

    </property>

</configuration>

把配置文件发送给其他服务器

cd /export/server/hadoop/etc/hadoop

scp * node2:/export/server/hadoop-3.3.4/etc/hadoop/

scp * node3:/export/server/hadoop-3.3.4/etc/hadoop/

一键启动停止

start-yarn.sh

stop-yarn.sh

启动历史服务器

mapred --daemon start historyserver

单独控制进程

$HADOOP_HOME/bin/yarn,此程序也可以用以单独控制所在机器的进程启停

yarn --daemon (start|stop) (resourcemanager|nodemanager|proxyserver)

查看结果 & 打快照

访问 http://node1:8088/,如果能看到页面,说明一切 OK

关机打快照,速度会很快

提交 MapReduce 的任务到 Yarn 中执行

这个倒是只需要执行命令即可,毕竟现在很少使用 MapReduce 进行计算,spark flink 的效率是它的上百倍

这里就是演示

h第三章-08-[实操]提交MapReduce任务到YARN执行_哔哩哔哩_bilibili

相关文章:

大数据学习-Hadoop

介绍 是 Apache 的顶级开源项目&#xff0c;一个分布式框架&#xff0c;主要功能&#xff1a; 分布式大数据存储——HDFS 组件分布式大数据计算——MapReduce 组件分布式资源调度——YARN 组件 可以通过它来构建集群&#xff0c;完成大数据的存储和计算 学习起来相对简单&…...

visualbox搭建linux环境双网卡配置

文章目录 1. 双网卡模式简介2. 网络模式配置2.1 virtualBox说明2.2 host-only网络模式配置2.3 NAT网络模式配置 3. 虚拟主机网络设置3.1 网卡一设置3.2 网卡二设置 4. 网卡配置5. ssh访问 本篇的目的是为了搭建本地的linux测试环境用。 1. 双网卡模式简介 双网卡网络模式简介 …...

一分钟了解Galaxybase银河图数据库先锋版升级功能!

Galaxybase 银河图数据库是一款创邻科技自主研发的商用图数据库&#xff0c;具有高性能、高可用、企业级安全等特性&#xff0c;支持大规模数据查询实时返回&#xff0c;快速挖掘关联关系&#xff0c;发现深层商业洞见&#xff0c;可广泛应用于金融、能源、电信、政企等行业中的…...

C++并发之协程实例(二)(计算斐波那契序列)

目录 1 协程2 实例-计算斐波那契序列2.1 斐波那契序列2.2 代码 3 运行 1 协程 协程(Coroutines)是一个可以挂起执行以便稍后恢复的函数。协程是无堆栈的&#xff1a;它们通过返回到调用方来暂停执行&#xff0c;并且恢复执行所需的数据与堆栈分开存储。这允许异步执行的顺序代码…...

云邮件推送服务如何配置?有哪些优势特点?

云邮件推送的性能怎么优化&#xff1f;如何选择邮件推送服务&#xff1f; 云邮件推送服务是一种基于云计算的邮件发送解决方案&#xff0c;能够帮助企业和个人高效地发送大规模邮件。AokSend将详细介绍如何配置云邮件推送服务&#xff0c;以便你能够充分利用其优势。 云邮件推…...

QT 数值型坐标轴有那些?(QValueAxis)

在Qt中&#xff0c;QValueAxis类用于表示数值型坐标轴&#xff0c;它本身没有直接的子类&#xff0c;但它是从QAbstractAxis这个抽象类继承而来的。QAbstractAxis是定义坐标轴属性和行为的基类&#xff0c;而QValueAxis则在此基础上提供了针对数值数据的具体实现。 Qt的图表模…...

《数字图像处理-OpenCV/Python》第16章:图像的特征描述

《数字图像处理-OpenCV/Python》第16章&#xff1a;图像的特征描述 本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 第16章&#xff1a;图像的特征描述 特征通常是针对图像中的目标或…...

React的服务器端渲染(SSR)和客户端渲染(CSR)有什么区别?

React的服务器端渲染&#xff08;SSR&#xff09;和客户端渲染&#xff08;CSR&#xff09;是两种不同的页面渲染方式&#xff0c;它们各自有不同的特点和适用场景&#xff1a; 服务器端渲染&#xff08;SSR&#xff09; 页面渲染: 页面在服务器上生成&#xff0c;然后将完整的…...

安全生产第一位,靠谱的漏油监测系统有哪些?

漏油监测系统&#xff0c;一般是由漏油绳、漏油控制器、监控云平台组成&#xff0c;用于实时检测油库、油罐、加油站、输油管道、油类化工厂等场所是否发生漏油事故。在这些地方一旦发生漏油&#xff0c;就极可能引发爆炸&#xff0c;损害到人员及财产安全。而一套靠谱的漏油监…...

基于C#、Visual Studio 2017以及.NET Framework 4.5的Log4Net使用教程

在使用Log4Net记录日志时&#xff0c;以下是一个基于C#、Visual Studio 2017以及.NET Framework 4.5的详细步骤教程。这个教程适合初学者&#xff0c;会从添加Log4Net库、配置日志、编写日志记录代码等方面进行说明。 步骤1&#xff1a;安装Log4Net 通过NuGet安装 打开您的Vi…...

C# —— 构造函数

什么是构造函数 构造函数: 一般在函数为类的属性初始值的作用&#xff0c;构造函数的名称类名 在类里面定义构造函数 方法名和类名同名 不能带返回值类型 void/非void 不能有 // 创建一个构造函数 class People {public string Name { get; set; }public int Age { get; set;…...

HTML5的新属性

pattern&#xff1a;用于指定输入字段的正则表达式模式。在提交表单前&#xff0c;输入将验证是否符合指定的模式。 pattern 属性是 HTML5 中用于表单验证的一个属性&#xff0c;它用于指定一个正则表达式&#xff0c;以验证输入字段中的值是否符合特定的模式。该属性通常与 &l…...

[C语言] 常用排序算法

冒泡排序 思路&#xff1a; 从小到大&#xff0c;找到集合中最小的放在最左边&#xff0c;在剩下的集合中找到最小的放在最左边以此类推。如何找到最小的&#xff1f;&#xff08;假定左边第一个数就是最小的&#xff0c;让它依次和它右边的比较&#xff0c;如果右边的比它还小…...

【前端vue3】TypeScrip-interface(接口)和对象类型

对象类型 定义对象需要用到interface&#xff08;接口&#xff09;&#xff0c;主要用来约束数据的类型满足格式 定义方式如下&#xff1a; interface Person {name: string;age: number; }如对象中与接口中的属性不一致会报错&#xff0c;必须保持一致 例如如下&#xff1a…...

神经网络 torch.nn---nn.RNN()

torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) RNN — PyTorch 2.3 documentation torch.nn---nn.RNN() nn.RNN(input_sizeinput_x,hidden_sizehidden_num,num_layers1,nonlinearitytanh, #默认tanhbiasTrue, #默认是Truebatch_firstFalse,dropout0,bidirection…...

RocketMQ-记一次生产者发送消息存在超时异常

目录 1、背景说明 2、排查 2.1、防火墙 2.2、超时时间设置 2.3、服务器资源检查 2.3.1、内存、CPU等 2.3.2、磁盘空间 ​编辑 2.3.3、检查文件描述符 2.3.4、swap区 3、增加swap空间 3.1、创建目录 3.2、格式化 3.3、启动swap 3.4、查看效果 1、背景说明 在一次…...

ls命令的参数选项

ls命令的参数的作用 可以指定要查看的文件夹&#xff08;目录&#xff09;的内容&#xff0c;如果不指定参数&#xff0c;就查看当前工作目录的内容。ls 命令的选项 常用语法&#xff1a;ls [-a -l -h] [linux路径] -a 选项表示 all &#xff0c;即列出全部内容&#xff0c;包括…...

网络安全:Web 安全 面试题.(文件上传漏洞)

网络安全&#xff1a;Web 安全 面试题.&#xff08;文件上传漏洞&#xff09; 网络安全面试是指在招聘过程中,面试官会针对应聘者的网络安全相关知识和技能进行评估和考察。这种面试通常包括以下几个方面&#xff1a; &#xff08;1&#xff09;基础知识:包括网络基础知识、操…...

智源联合多所高校推出首个多任务长视频评测基准MLVU

当前&#xff0c;研究社区亟需全面可靠的长视频理解评估基准&#xff0c;以解决现有视频理解评测基准在视频长度不足、类型和任务单一等方面的局限性。因此&#xff0c;智源联合北邮、北大和浙大等多所高校提出首个多任务长视频理解评测基准MLVU&#xff08;A Comprehensive Be…...

Linux系统:线程概念 线程控制

Linux系统&#xff1a;线程概念 & 线程控制 线程概念轻量级进程 LWP页表 线程控制POSIX 线程库 - ptherad线程创建pthread_createpthread_self 线程退出pthread_exitpthread_cancelpthread_joinpthread_detach 线程架构线程与地址空间线程与pthread动态库 线程的优缺点 线程…...

LearnOpenGL - Android OpenGL ES 3.0 绘制纹理

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好&#xff0c;窗口LearnOpenGL 笔记 - 入门 04 你好&#xff0c;三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…...

山东济南最出名的起名大师颜廷利:二十一世纪哲学的领航者

山东济南最出名的起名大师颜廷利教授&#xff1a;二十一世纪哲学的领航者 在哲学的天空中&#xff0c;颜廷利教授犹如一颗璀璨的星辰&#xff0c;被无数求知者誉为21世纪最杰出的思想家之一。他的理论既深邃又广博&#xff0c;巧妙地将东方的儒家与道家哲学与西方的思辨传统交织…...

Nginx 负载均衡实现上游服务健康检查

Nginx 负载均衡实现上游服务健康检查 Author&#xff1a;Arsen Date&#xff1a;2024/06/20 目录 Nginx 负载均衡实现上游服务健康检查 前言一、Nginx 部署并新增模块二、健康检查配置2.1 准备 nodeJS 应用程序2.2 Nginx 配置负载均衡健康检查 小结 前言 如果你使用云负载均衡…...

小程序使用接口wx.getLocation配置

开通时需详细描述业务&#xff0c;否则可能审核不通过 可能需要绑定腾讯位置服务&#xff0c;新建应该&#xff0c;绑定到小程序 配置 权限声明&#xff1a;在使用wx.getLocation前&#xff0c;需要在app.json的permission字段中声明对用户位置信息的使用权限&#xff0c;并提…...

Protobuf安装配置--附带每一步截图

Protobuf Protobuf&#xff08;Protocol Buffers&#xff09;协议是一种由 Google 开发的二进制序列化格式和相关的技术&#xff0c;它用于高效地序列化和反序列化结构化数据&#xff0c;通常用于网络通信、数据存储等场景。 为什么要使用Protobuf Protobuf 在许多领域都得到…...

力扣1019.链表中的下一个更大节点

力扣1019.链表中的下一个更大节点 从左到右 每个数确定下一个更大节点后 弹出栈中存下标 即res.size() class Solution {public:vector<int> nextLargerNodes(ListNode* head) {vector<int> res;stack<int> st;for(auto ihead;i;ii->next){while(!st.e…...

查询mysql库表的几个语句

1、查询某个数据库的所有表 SELECTtable_name FROMinformation_schema.TABLES WHEREtable_schema database_namedatabase_name替换成你需要查询的数据库名称 2、查询某张表的所有字段名称 SELECTCOLUMN_NAME,column_comment FROMinformation_schema.COLUMNS WHEREtable…...

【CT】LeetCode手撕—103. 二叉树的锯齿形层序遍历

目录 题目1- 思路2- 实现⭐103. 二叉树的锯齿形层序遍历——题解思路 2- ACM实现 题目 原题连接&#xff1a;103. 二叉树的锯齿形层序遍历 1- 思路 二叉树的层序遍历&#xff0c;遇到奇数时&#xff0c;利用 Collections.reverse() 翻转即可 2- 实现 ⭐103. 二叉树的锯齿形层…...

1958springboot VUE宿舍管理系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE宿舍管理系统是一套完善的完整信息管理类型系统&#xff0c;结合springboot框架和VUE完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09; &#xff0c;系统具有完整的源代码和数…...

LVS DR模式

Linux Virtual Server&#xff08;LVS&#xff09;是一个由Linux内核支持的负载均衡解决方案&#xff0c;旨在通过集群技术来提高服务器的可扩展性、可靠性和高可用性。LVS通过将客户端的请求分发到多个服务器上&#xff0c;从而实现负载均衡和容错。 目录 LVS的工作模式 DR模…...

wordpress 左右翻页/深圳谷歌网络推广公司

Lua支持goto语法, 但是有一定的局限性.例如1. 不能在block外面跳入block(因为block中的lable不可见), 2. 不能跳出或者跳入一个函数. 3. 不能跳入本地变量的作用域.Lua poses some restrictions to where you can jump with a goto. First, labels follow the usual visibility…...

南阳网站搭建/移动端优化

#转载请先留言联系 定位 HTML中的position属性可以对元素进行定位&#xff0c;通过position的不同的值&#xff0c;可以配合方位属性&#xff0c;让元素显示页面中的任何一个位置。 position有四个值&#xff1a; static&#xff0c;默认值&#xff0c;去除元素的定位。也就是不…...

设计公司网站官网/一键优化大师

千呼万唤始出来&#xff0c;Eclipse总算出3.0版了...

做电子商务网站建设工资多少/seo泛目录培训

java交流群&#xff1a;扫码加群群满100人后需要群主邀请的&#xff0c;请加下方微信号&#xff0c;备注“入群”关注微信公众号【非典型互联网】&#xff0c;回复“入群”&#xff0c;可进所有互联网交流群&#xff1b;java干货资源下载&#xff1a;扫码关注微信公众号&#x…...

建设一个网站的好处/关键词百度网盘

一、问题描述&#xff1a; KVM中宿主机通过console无法连接客户机&#xff0c;卡在这里不动。 # virsh console vm01 Connected to domain vm01 Escape character is ^] 二、解决办法&#xff1a; 利用vnc或宿主机的桌面进入客户机vm01中添加参数 1、添加ttyS0的安全许可&#…...

wordpress 清除/抖音指数

定义&#xff1a;定义一系列算法&#xff0c;将它们一个个封装起来&#xff0c;并且使他们之间可以相互替换。本模式使得算法可以独立于使用它的客户而变化。 类型&#xff1a;对象行为型模式 类图&#xff1a; 策略模式是对算法的封装&#xff0c;把一系列的算法分别封装到对应…...