大数据常见面试题及答案(Linux、Zookeeper、Hadoop、Hive)

技术问答题目

一、Linux

1.如何给⽂件(⽂件夹)分配读rwx的操作权限?

2. vi 编辑器的常⽤命令有哪些?

3.Linux 中⽂件的操作权限分为⼏种? 

4.Linux 中实时查看日志的方法

5. Linux查看内存、磁盘存储、io 读写、端口占用、进程等命令

6. 说⼀说你能想到的 linux 基础指令并解释其作⽤?

二、Zookeeper

7.简述Zookeeper的架构角色  请简述ZooKeeper的选举机制

8. ZooKeeper对节点的watch监听是永久的吗?为什么?

9. 请说明ZooKeeper使用到的各个端口的作用? 

三、Hadoop

10. 分布式分析系统(HDFS)的特点

11.HDFS三个核心组件时什么,分别有什么作用 

12. NN如何管理元数据?SNN的功能职责

13.HDFS的存储机制(读写流程)

        13.1读流程 

        13.2写流程

14.小文件存储场景如何优化? 

15.Namenode的工作机制

16.Datenode工作机制    

17.MapReduce执行流程

        17.1 MapTask工作机制

        17.2 ReduceTask工作机制

18. 如何决定一个jobmapreduce的数量?

19. MapReduce Shuffle机制 20.Yarn组件有哪些?

21.Yarn 调度流程

22. yarn调度策略 scheduler

四、Hive

23.请谈一下Hive的特点, HiveRDBMS有什么异同? 

24.数仓的特性特点

25.数仓的分层思想

26.阐述Hive中架构、名词

27. hive SerDe机制(序列化机制) 

28.内部表、外部表的区别

29.分区表和分桶表的区别

        Hive为什么要分桶?

30.Hive 中的存储格式

31.Hive的函数: UDFUDAFUDTF的区别?

32.Hive基本函数

33.hive函数高阶应用 

34.Hive数据倾斜

        34.1 数据倾斜原因

        34.2 数据倾斜解决方案

35.HiveHSQL转换为MapReduce的过程?

36.row_number() rank()dense_rank()的区别

37.请说明HiveSort ByOrder ByCluster By Distrbute By各代表什么意思?

38.简述拉链表 39.下钻与上卷

40.渐变维(SCD

一、 Linux

1.如何给⽂件(⽂件夹)分配读rwx的操作权限?

给⽂件(⽂件夹)分配权限,⼀共分为 3 种⽅式,具体如下:

数字表示法

 ⽐如:chmod 777 1.txt

字⺟加减法

 ⽐如:chmod u+x,g-w 1.txt

等号赋值法

 ⽐如:chmod u=rwx,g=rw-,o=--- 1.txt

2. vi 编辑器的常⽤命令有哪些?

G:跳到⽂件的最后⼀⾏

gg:跳到⽂件的第⼀⾏

yy:复制光标所在⾏的内容

nyy:复制光标所在⾏往后的n⾏内容

p:在光标所在⾏的下⼀⾏粘贴内容

dd:删除光标所在⾏的内容

ndd:删除光标所在⾏往后的n⾏内容

u :撤销上⼀步的操作

x :删除当前光标所在的字符

r + 字符:替换当前光标所在字符

3.Linux 中⽂件的操作权限分为⼏种?

针对于Linux中的每个⽂件(⽂件夹),分为3组共9个操作权限,具体如下:

⽂件(⽂件夹)的所属⽤户对该⽂件(⽂件夹)的读r、写w、执⾏ x权限;

⽂件(⽂件夹)的所属组的⽤户对该⽂件(⽂件)的读r、写w、执⾏ x权限;

⽂件(⽂件夹)的其他⽤户对该⽂件(⽂件夹)的读r、写w、执⾏ x权限;

4.Linux 中实时查看日志的方法

静态日志

        可以使用 cat,more等命令

实时日志        

        tail -f  *.log

        tail -fn 100  *.log

5. Linux查看内存、磁盘存储、 io 读写、端口占用、进程 等命令

1、查看内存: top

2、查看磁盘存储情况: df -h

3、查看磁盘IO读写情况: iotop (需要安装一下:yum install iotop)、 iotop -o (直接查看输出比较 高的磁盘读写程序)

4、查看端口占用情况: netstat -tunlp  | grep 端口号

5、查看进程: ps aux

6. 说⼀说你能想到的 linux 基础指令并解释其作⽤?

pwd:查看当前所处的位置(当前路径)

mkdir ⽬录路径:创建⽬录(⽂件夹),如果需要把创建⽬录的⽗⽬录⼀并创建,需要加 -p 参数。 

cd ⽬录路径:切换到指定的⽬录中。注意: cd 是不能进⼊⽂件的!!!

ls 指定路径:显示指定路径下的内容,默认为当前路径。 

touch ⽂件路径:在指定位置创建⼀个⽂件。

cat ⽂件路径:查看指定⽂件的内容,在终端进⾏显示。适合⼩⽂件查看。

rm ⽂件路径:删除指定的⽂件。如果要删除的是⽬录,需要添加 -r参数,另外,如果想强制删 除,不进⾏确认,还需要添加 -f 参数。

cp 源⽂件 ⽬标位置:将源⽂件拷⻉⾄⽬标位置,如果拷⻉的是⽬录,需要添加 -r参数。

mv 源⽂件 ⽬标位置:将源⽂件拷⻉⾄⽬标位置,如果源⽂件和⽬标位置是同⼀⽬录,则是重命 名操作。

head -n ⽂件:查看指定⽂件的前 n ⾏内容,默认为前 10 ⾏。 

tail -n ⽂件:查看指定⽂件的后 n ⾏内容,默认为后 10 ⾏。

nd 指定⽬录 查找条件:在指定⽬录下,按指定条件查找⽂件。

command | grep 指定内容:从左边命令的输出结果中检索指定的内容,输出检索到的⾏。

tar -cvf 打包名.tar ⽂件或⽬录:对指定⽂件或⽬录进⾏打包操作。 

tar -xvf 打包名.tar:将指定tar⽂件进⾏解包操作。

tar -zcvf 打包名.tar ⽂件或⽬录:对指定⽂件或⽬录进⾏打包压缩操作。 

tar -zxvf 打包名.tar:将指定tar⽂件进⾏解包解压缩操作。

ln -s ⽬标⽂件的绝对路径 软链接名:创建软链接(类似于快捷⽅式)。

ln ⽬标⽂件的绝对路径 硬链接名:创建硬链接(同⼀个磁盘⽂件区域对应多个⽂件名称)。

二、Zookeeper

7.简述Zookeeper的架构角色

请简述ZooKeeper的选举机制

假设有五台服务器组成的zookeeper集群,它们的id1-5,同时它们都是最新启动的,也就是没有历史数据,

在存放数据量这一点上,都是一样的。假设这些服务器依序启动,来看看会发生什么。

1)服务器1启动,此时只有它一台服务器启动了,它发出去的报没有任何响应,所以它的选举状态一直是LOOKING状态。

2)服务器2启动,它与最开始启动的服务器1进行通信,互相交换自己的选举结果,由于两者都没有 历史数据,所以id值较大的服务器2胜出,但是由于没有达到超过半数以上的服务器都同意选举它(这个例子中 的半数以上是3),所以服务器12还是继续保持LOOKING状态。

3)服务器3启动,根据前面的理论分析,服务器3成为服务器123中的Leader,而与上面不同的是,此时有三台服务器选举了它,所以它成为了这次选举的Leader。

4)服务器4启动,根据前面的分析,理论上服务器4应该是服务器1234中最大的,但是由于前 面已经有半数以上的服务器选举了服务器3,所以它成为Follower

5)服务器5启动,同4一样成为Follower

注意,如果按照5,4,3,2,1的顺序启动,那么5成为Leader,因为在满足半数条件后, ZooKeeper群启动, 5Id最大,被选举为Leader

8. ZooKeeper对节点的watch监听是永久的吗?为什么?

不是。

官方声明:一个Watch事件是一个一次性的触发器,当被设置了Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了Watch的客户端,以便通知它们。

为什么不是永久的,举个例子,如果服务端变动频繁,而监听的客户端很多情况下,每次变动都要通知到所有的客户端,这太消耗性能了。

一般是客户端执行getData(“/节点A”,true),如果节点A发生了变更或删除,客户端会得到它的watch件,但是在之后节点A又发生了变更,而客户端又没有设置watch事件,就不再给客户端发送。

在实际应用中,很多情况下,我们的客户端不需要知道服务端的每一次变动,我只要最新的数据即可。

9. 请说明ZooKeeper使用到的各个端口的作用?

2888 FollowerLeader交换信息的端口。

3888:万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这 个端口就是用来执行选举时服务器相互通信的端口。

三、 Hadoop

10. 分布式分析系统(HDFS)的特点

11.HDFS三个核心组件时什么,分别有什么作用

1-NameNode. 集群的核心, 是整个文件系统的管理节点. 维护着

a) 文件系统的文件目录结构和元数据信息

b) 文件与数据块列表的对应关系

2-DataNode. 存放具体数据块的节点, 主要负责数据的读写, 定期向NameNode发送心跳

3-SecondaryNameNode. 辅助节点, 同步NameNode中的元数据信息, 辅助NameNodefsimage

editsLog行合并.

12. NN如何管理元数据?SNN的功能职责

13.HDFS的存储机制(读写流程)

HDFS存储机制,包括HDFS的写入过程和读取过程两个部分.

13.1读流程

1)客户端向namenode请求上传文件, namenode检查目标文件是否已存在,父目录是否存在。

2 namenode返回是否可以上传。

3)客户端请求第一个 block上传到哪几个datanode服务器上。

4 namenode返回3datanode节点,分别为dn1dn2dn3

5)客户端请求dn1上传数据, dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。

6dn1dn2dn3逐级应答客户端

7)客户端开始往dn1上传第一个block (先从磁盘读取数据放到一个本地内存缓存),packet为单位,dn1收到一个packet就会传给dn2 dn2传给dn3dn1每传一个packet会放入一个应答队列等待应答

8)当一个block传输完成之后,客户端再次请求namenode上传第二个block的服务器。(重复执行3-7 步)

13.2写流程

1)客户端向namenode请求下载文件, namenode通过查询元数据,找到文件块所在的datanode址。

2)挑选一台datanode(就近原则,然后随机)服务器,请求读取数据。

3datanode开始传输数据给客户端(从磁盘里面读取数据放入流,以packet为单位来做校验)。

4)客户端以packet为单位接收,先在本地缓存,然后写入目标文件。

14.小文件存储场景如何优化?

15.Namenode的工作机制

第一阶段: NameNode启动

1)第一次启动NameNode格式化后,创建FsimageEdits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。

2)客户端对元数据进行增删改的请求。

3NameNode记录操作日志,更新滚动日志。

4NameNode在内存中对元数据进行增删改。 

第二阶段: Secondary NameNode工作

1Secondary NameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否检查结果。

2Secondary NameNode请求执行CheckPoint

3NameNode滚动正在写的Edits日志。

4)将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode

5Secondary NameNode加载编辑日志和镜像文件到内存,并合并。

6)生成新的镜像文件fsimage.chkpoint

7)拷贝fsimage.chkpointNameNode

8 NameNodefsimage.chkpoint重新命名成fsimage

16.Datenode工作机制

1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身, 一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。

2 DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。

3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。

4)集群运行中可以安全加入和退出一些机器。

17.MapReduce执行流程

17.1 MapTask工作机制

1 Read阶段: Map Task通过用户编写的RecordReader,从输入InputSplit中解析出一个个 key/value

2 Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的 key/value

3Collect收集阶段:在用户编写map()函数中,当数据处理完成后, 一般会调用 OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓冲区 中。

4Spill阶段:即溢写,当环形缓冲区满后, MapReduce会将数据写到本地磁盘上,生成一个临时 文件。需要注意的是,将数据写入本地磁盘之前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压 缩等操作。

5Combine阶段:当所有数据处理完成后, MapTask对所有临时文件进行一次合并,以确保最终只 会生成一个数据文件。

当所有数据处理完后, MapTask会将所有临时文件合并成一个大文件,并保存到文件output/file.out 中,同时生成相应的索引文件output/file.out.index

在进行文件合并过程中, MapTask以分区为单位进行合并。对于某个分区,它将采用多轮递归合并的方 式。每轮合并io.sort.factor(默认100)个文件,并将产生的文件重新加入待合并列表中,对文件排序  后,重复以上过程,直到最终得到一个大文件。让每个MapTask最终只生成一个数据文件,可避免同时 打开大量文件和同时读取大量小文件产生的随机读取带来的开销。

17.2 ReduceTask工作机制

1Copy阶段: ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小 超过一定阈值,则写到磁盘上,否则直接放到内存中。

2 Merge阶段:在远程拷贝数据的同时, ReduceTask启动了两个后台线程对内存和磁盘上的文件进 行合并,以防止内存使用过多或磁盘上文件过多。

3Sort阶段:按照MapReduce语义,用户编写reduce()函数输入数据是按key进行聚集的一组数 据。为了将key相同的数据聚在一起, Hadoop采用了基于排序的策略。由于各个MapTask已经实现对自己的处理结果 进行了局部排序,因此, ReduceTask只需对所有数据进行一次归并排序即可

4 Reduce阶段: reduce()函数将计算结果写到HDFS上。

18. 如何决定一个jobmapreduce的数量?

1 map数量

splitSize=max{minSize,min{maxSize,blockSize}}

map数量由处理的数据分成的block数量决定default_num = total_size / split_size;

2 reduce数量

reduce的数量job.setNumReduceTasks(x);x reduce的数量。不设置的话默认为 1

19. MapReduce Shuffle机制

20.Yarn组件有哪些?

21.Yarn 调度流程

22. yarn调度策略 scheduler

Hadoop调度器主要分为三类:

FIFO Scheduler:先进先出调度器:优先提交的,优先执行,后面提交的等待【生产环境不会使用】

Capacity Scheduler:容量调度器:允许看创建多个任务对列,多个任务对列可以同时执行。但是一个 队列内部还是先进先出。【Hadoop2.7.2默认的调度器】

Fair Scheduler:公平调度器:第一个程序在启动时可以占用其他队列的资源(100%占用),当其他队 列有任务提交时,占用资源的队列需要将资源还给该任务。还资源的时候,效率比较慢。【CDH版本的yarn度器默认】

四、 Hive

23.请谈一下Hive的特点, HiveRDBMS有什么异同?

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL 句快速实现

简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析,但是Hive 不支持实时查询。

Hive与关系型数据库的区别:

24.数仓的特性特点

25.数仓的分层思想

26.阐述Hive中架构、名词

27. hive SerDe机制(序列化机制)

28.内部表、外部表的区别

29.分区表和分桶表的区别

Hive为什么要分桶?

1)获得更高的查询处理效率

在分区数量过于庞大以至于可能导致文件系统崩溃时,或数据集找不到合理的分区字段时,我们就需要使用分桶来解决问题了。 分区中的数据可以被进一步拆分成桶,不同于分区对列直接进行拆分,桶往往使用列的哈希值 对数据打散,并分发到各个不同的桶中从而完成数据的分桶过程。

注意,hive使用对分桶所用的值进行hash,并用hash结果除以桶的个数做取余运算的方式来分 桶,保证了每个桶中都有数据,但每个桶中的数据条数不一定相等。 如果另外一个表也按照同样的规则分成了一个个小文件。两个表join的时候,就不必要扫描整 个表,只需要匹配相同分桶的数据即可,从而提升效率。 在数据量足够大的情况下,分桶比分区有更高的查询效率。

2)数据采样

在真实的大数据分析过程中,由于数据量较大,开发和自测的过程比较慢,严重影响系统的开

发进度。此时就可以使用分桶来进行数据采样。采样使用的是一个具有代表性的查询结果而不是全 部结果,通过对采样数据的分析,来达到快速开发和自测的目的,节省大量的研发成本。

3)分桶和分区的区别

1. 分桶和分区两者不干扰,可以把分区表进一步分桶;

2. 分桶对数据的处理比分区更加细粒度化:分区针对的是数据的存储路径;分桶针对的是数据文件;

3. 分桶是按照列的哈希函数进行分割的,相对比较平均;而分区是按照列的值来进行分割的,容易造 成数据倾斜。

4) 文本数据处理

注意:对于分桶表,不能使用loaddata的方式进行数据插入操作,因为loaddata导入的数据不会有分 桶结构

30.Hive 中的存储格式

1. TextFile

默认格式,存储方式为行存储,数据不做压缩,磁盘开销大,数据解析开销大。可结合Gzip

Bzip2使用(系统自动检查,执行查询时自动解压),但使用这种方式,压缩后的文件不支持split Hive不会对数据进行切分,从而无法对数据进行并行操作。并且在反序列化过程中,必须逐个字符判断是不是分隔符和行结束符,因此反序列化开销会比SequenceFile高几十倍。

2. SequenceFile

SequenceFileHadoop API提供的一种二进制文件支持,,存储方式为行存储,其具有使用方

便、可分割、可压缩的特点。

SequenceFile支持三种压缩选择: NONE  RECORD  BLOCK Record压缩率低, 一般建议使用 BLOCK缩。

优势是文件和hadoop api中的MapFile是相互兼容的

3. RCFile

存储方式:数据按行分块,每块按列存储。结合了行存储和列存储的优点: 

首先, RCFile 保证同一行的数据位于同一节点,因此元组重构的开销很低;

其次,像列存储一样, RCFile 能够利用列维度的数据压缩,并且能跳过不必要的列读取; RCFile的一个行组包括三个部分:

第一部分是行组头部的【同步标识】,主要用于分隔 hdfs 块中的两个连续行组

第二部分是行组的【元数据头部】,用于存储行组单元的信息,包括行组中的记录数、每个列的字 节数、列中每个域的字节数

第三部分是【表格数据段】,即实际的列存储数据。在该部分中,同一列的所有域顺序存储。

4. ORCFile

存储方式:数据按行分块 每块按照列存储。 

压缩快 快速列存取。

效率比rcle,rcle的改良版本

总结:相比TEXTFILESEQUENCEFILE  RCFILE由于列式存储方式,数据加载时性能消耗较大,但是具有较好的压缩比和查询响应。数据仓库的特点是一次写入、多次读取,因此,整体来看, RCFILE相比其余两种 格式具有较明显的优势

31.Hive的函数: UDF UDAF UDTF的区别?

UDF User-Dened-Function: 单行进入,单行输出

UDAF User-Dened Aggregation Function: 多行进入,单行输出

UDTF User-Dened Table-Generating Functions: 单行输入,多行输出

32.Hive基本函数

33.hive函数高阶应用

34.Hive数据倾斜

34.1 数据倾斜原因

34.2 数据倾斜解决方案

参数调优:

35.HiveHSQL转换为MapReduce的过程?

HiveSQL ->AST(抽象语法树) -> QB(查询块) ->OperatorTree(操作树) ->优化后的操作树- >mapreduce务树->优化后的mapreduce任务树

过程描述如下:

SQL ParserAntlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象 语法树AST Tree

Semantic Analyzer:遍历AST Tree,抽象出查询的基本组成单元QueryBlock Logical plan:遍历QueryBlock,翻译为执行操作树OperatorTree

Logical plan optimizer: 逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator 减少shuffle数据量;

Physical plan:遍历OperatorTree,翻译为MapReduce任务;

Logical plan optimizer:物理层优化器进行MapReduce任务的变换,生成最终的执行计划;

36.row_number()  rank()dense_rank()的区别

row_number():根据查询结果的顺序计算排序,多用于分页查询 

rank():排序相同时序号重复,总序数不变

dense_rank():排序相同时序号重复时,总序数减少

37.请说明HiveSort By  Order By  Cluster By  Distrbute By各代表什么意思?

order by:会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)。只有一个reducer会导致当输入规模较大时,需要较长的计算时间。

sort by:不是全局排序,其在数据进入reducer前完成排序.

distribute by:按照指定的字段对数据进行划分输出到不同的reduce中。 

cluster by:除了具有 distribute by 的功能外还兼具 sort by 的功能。

38.简述拉链表

39.下钻与上卷

维度中有不同的层次,每个层次可以有多个级别,这样就可以根据多个维护层次和级别进行分析,可以 灵活获取高级别的汇总信息,获取低级别的明细信息,把获取高级别的汇总信息的过程叫上卷,把获取 低级别的明细信息的过程叫下钻,比如:课程访问量分析,时间维度有四个级别,分别是年、月、天、  小时,现在我们某个级别分析每天的课程访问量,比如按天分析课程访问量,此时我们可以按小时下钻 分析,得出一天内每小时的课程访问量,也可以按月上卷,得到月度的课程访问量。

下钻维度: 

        天、小时

上卷维度: 

        年、月

40.渐变维(SCD

什么是渐变维?

维度可以根据变化剧烈程度主要分为无变化维度、缓慢变化维度和剧烈变化维度。例如一个人的相关信 息,身份证号、姓名和性别等信息数据属于不变的部分,政治面貌和婚姻状态属于缓慢变化部分,而工 作经历、工作单位和培训经历等在某种程度上属于急剧变化字段。

大多数维度表随时间的迁移是缓慢变化的。比如增加了新的产品,或者产品的ID号码修改了,或者产品 增加了一个新的属性,此时,维度表就会被修改或者增加新的记录行。这样,在设计维度和使用维度的 过程中,就要考虑到缓慢变化维度的处理。

缓慢渐变维,即维度中的属性可能会随着时间发生改变,比如包含用户住址AddressDimCustomer 度,用户的住址可能会发生改变,进而影响业务统计精度,  DimCustomer维度就是缓慢渐变维(SCD)。

SCD有三种分类,我们这里以顾客表为例来进行说明:

假设在第一次从业务数据库中加载了一批数据到数据仓库中,当时业务数据库有这样的一条顾客的信 息。

顾客 BIWORK ,居住在北京,目前是一名 BI 的开发工程师。假设 BIWORK 因为北京空气质量 PM2.5 等原因从北京搬到了三亚。那么这条信息在业务数据库中应该被更新了。

那么当下次从业务数据库中抽取这类信息的时候,数据仓库又应该如何处理呢?

我们假设在数据仓库中实现了与业务数据库之间的同步,数据仓库中也直接将词条数据修改更新。后来 我们创建报表做一些简单的数据统计分析,这时在数据仓库中所有对顾客 BIWORK 的销售都指向了BIWORK 新的所在地 - 城市三亚,但是实际上 BIWORK 在之前所有的购买都发生在 BIWORK 居住在北 京的时候。

通过这个简单的例子,描述了因一些基本信息的更改可能会引起数据归纳和分析出现的问题。

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

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

相关文章

【软件工程】一篇入门UML建模图(类图)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀软件开发必练内功_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…

开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序

今天给大家分析一个音频分解器,通过傅里叶变换和信封匹配分离音乐中的各个音符和乐器,实现音乐到乐谱的转换。将音乐开源分离为组成乐器。该方式是盲源分离,从头开始制作,无需外部乐器分离库。 相关链接 代码:https:…

微服务day10-Redis面试篇

Redis主从 搭建主从集群 建立集群时主节点会生成同一的replicationID,交给各个从节点。 集群中的缓冲区是一个环型数组,即若从节点宕机时间过长,可能导致命令被覆盖。 主从集群优化 哨兵原理 哨兵是一个集群来确保哨兵不出现问题。 服务状态监控 选举…

交换排序——快速排序

交换排序——快速排序 7.7 交换排序——快速排序快速排序概念c语言的库函数qsort快速排序框架quickSort 7.7 交换排序——快速排序 快速排序概念 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法(下文简称快排),其基本思想为&a…

预处理(1)(手绘)

大家好,今天给大家分享一下编译器预处理阶段,那么我们来看看。 上面是一些预处理阶段的知识,那么明天给大家讲讲宏吧。 今天分享就到这里,谢谢大家!!

自动驾驶系列—深入解析自动驾驶车联网技术及其应用场景

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

华为路由策略配置

一、AS_Path过滤 要求: AR1与AR2、AR2与AR3之间建立EBGP连接 AS10的设备和AS30的设备无法相互通信 1.启动设备 2.配置IP地址 3.配置路由器的EBGP对等体连接,引入直连路由 [AR1]bgp 10 [AR1-bgp]router-id 1.1.1.1 [AR1-bgp]peer 200.1.2.2 as-nu…

深度学习中的Pixel Shuffle和Pixel Unshuffle:图像超分辨率的秘密武器

在深度学习的计算机视觉任务中,提升图像分辨率和压缩特征图是重要需求。Pixel Shuffle和Pixel Unshuffle是在超分辨率、图像生成等任务中常用的操作,能够通过转换空间维度和通道维度来优化图像特征表示。本篇文章将深入介绍这两种操作的原理,…

React--》如何高效管理前端环境变量:开发与生产环境配置详解

在前端开发中,如何让项目在不同环境下表现得更为灵活与高效,是每个开发者必须面对的挑战,从开发阶段的调试到生产环境的优化,环境变量配置无疑是其中的关键。 env配置文件:通常用于管理项目的环境变量,环境…

HuggingFace:基于YOLOv8的人脸检测模型

个人操作经验总结 1、YOLO的环境配置 github 不论base环境版本如何,建议在conda的虚拟环境中安装 1.1、创建虚拟环境 conda create -n yolov8-face python3.9conda create :创建conda虚拟环境, -n :给虚拟环境命名的…

基于Python的仓库管理系统设计与实现

背景: 基于Python的仓库管理系统功能介绍 本仓库管理系统采用Python语言开发,利用Django框架和MySQL数据库,实现了高效、便捷的仓库管理功能。 用户管理: 支持员工和管理员角色的管理。 用户注册、登录和权限分配功能&#x…

当 docker-compose.yaml 文件部署时,Dify 线上版本升级过程

如果线上 Dify 是通过 docker-compose.yaml 文件部署的,那么当 Dify 版本升级时该如何操作呢?官方已经给出了 Docker compose 和 Source Code 两种方式。相对而言,前者更简单些,至少不需要安装依赖包和迁移数据库文件。为了更加具…

【H3C华三 】VRRP与BFD、Track联动配置案例

原创 厦门微思网络 组网需求 如图1所示,区域A和区域B用户所在网络的出口处部署了两台汇聚层设备(Device A和Device B)。 现要求使用VRRP与BFD、Track联动功能,实现以下需求: • 在Device A和Device B上分别配置两个…

记录配置ubuntu18.04下运行ORBSLAM3的ros接口的过程及执行单目imu模式遇到的问题(详细说明防止忘记)

今天的工作需要自己录制的数据集来验证昨天的标定结果 用ORBSLAM3单目imu模式运行,mentor给的是一个rosbag格式的数据包,配置过程出了几个问题记录一下,沿配置流程写。 一.orbslam3编译安装 1.首先是安装各种依赖 这里不再赘述&#xff0…

【汇编】c++游戏开发

由一起学编程创作的‘C/C项目实战:2D射击游戏开发(简易版), 440 行源码分享来啦~’: C/C项目实战:2D射击游戏开发(简易版), 440 行源码分享来啦~_射击c-CSDN博客文章浏览…

Vue Canvas实现区域拉框选择

canvas.vue组件 <template><div class"all" ref"divideBox"><!-- 显示图片&#xff0c;如果 imgUrl 存在则显示 --><img id"img" v-if"imgUrl" :src"imgUrl" oncontextmenu"return false" …

JavaWeb--MySQL

1. MySQL概述 首先来了解一下什么是数据库。 数据库&#xff1a;英文为 DataBase&#xff0c;简称DB&#xff0c;它是存储和管理数据的仓库。 像我们日常访问的电商网站京东&#xff0c;企业内部的管理系统OA、ERP、CRM这类的系统&#xff0c;以及大家每天都会刷的头条、抖音…

在MATLAB中导入TXT文件的若干方法

这是一篇关于如何在MATLAB中导入TXT文件的文章&#xff0c;包括示例代码和详细说明 文章目录 在MATLAB中导入TXT文件1. 使用readtable函数导入TXT文件示例代码说明 2. 使用load函数导入TXT文件示例代码说明 3. 使用importdata函数导入TXT文件示例代码说明 4. 自定义导入选项示例…

Clonezilla 再生龙制作系统U盘还原系统 ubuntu 22.04 server

参考 Clonezilla 再生龙制作系统U盘还原系统(UltraISO) https://blog.csdn.net/qq_57172130/article/details/120417522 Clonezilla-备份_部署ubuntu https://blog.csdn.net/xiaokai1999/article/details/131054826 基于再生龙&#xff08;clonezilla&#xff09;的Ubuntu镜…

号卡分销系统,号卡系统,物联网卡系统源码安装教程

号卡分销系统&#xff0c;号卡系统&#xff0c;物联网卡系统&#xff0c;&#xff0c;实现的高性能(PHP协程、PHP微服务)、高灵活性、前后端分离(后台)&#xff0c;PHP 持久化框架&#xff0c;助力管理系统敏捷开发&#xff0c;长期持续更新中。 主要特性 基于Auth验证的权限…