hdfs file system shell的简单使用

news2024/9/28 9:20:27

文章目录

  • 1、背景
  • 2、hdfs file system shell命令有哪些
  • 3、确定shell操作的是哪个文件系统
  • 4、本地准备如下文件
  • 5、hdfs file system shell
    • 5.1 mkdir创建目录
    • 5.2 put上传文件
    • 5.3 ls查看目录或文件
    • 5.4 cat 查看文件内容
    • 5.5 head 查看文件前1000字节内容
    • 5.6 tail 查看文件后1000字节内容
    • 5.7 appendToFile 追加数据到hdfs文件中
    • 5.8 get下载文件
    • 5.9 getmerge合并下载
    • 5.10 cp复制文件
    • 5.11 mv移动文件
    • 5.12 setrep 修改指定文件的副本数
    • 5.13 df显示可用空间
    • 5.14 du统计文件夹或文件的大小
    • 5.15 chgrp chmod chown改变文件的所属权限
    • 5.16 rm删除文件或目录
  • 6、界面操作
  • 7、参考链接

1、背景

此处我们通过命令行,简单的学习一下 hdfs file system shell 的一些操作。

2、hdfs file system shell命令有哪些

我们可以通过如下网址https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#appendToFile来看看支持的命令操作。 其中大部分命令都和linux的命令用法类似。

hdfs file system shell有哪些

3、确定shell操作的是哪个文件系统

我们通过hadoop fs操纵时如何知道操作的是那个文件系统

# 操作本地文件系统
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls file:///
Found 19 items
dr-xr-xr-x   - root root      24576 2023-02-18 14:47 file:///bin
dr-xr-xr-x   - root root       4096 2022-06-13 10:41 file:///boot
drwxr-xr-x   - root root       3140 2023-02-28 20:17 file:///dev
......
# 操作hdfs 文件系统
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls hdfs://hadoop01:8020/
Found 1 items
drwxrwx---   - hadoopdeploy supergroup          0 2023-02-19 17:20 hdfs://hadoop01:8020/tmp
# 操作hdfs 文件系统 fs.defaultFS
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /
Found 1 items
drwxrwx---   - hadoopdeploy supergroup          0 2023-02-19 17:20 /tmp
[hadoopdeploy@hadoop01 ~]$

4、本地准备如下文件

文件名内容
1.txtaaa
2.txtbbb
3.txtccc

5、hdfs file system shell

5.1 mkdir创建目录

语法: Usage: hadoop fs -mkdir [-p] <paths>
-p表示,如果父目录不存在,则创建父目录。

[hadoopdeploy@hadoop01 sbin]$ hadoop fs -mkdir -p /bigdata/hadoop
[hadoopdeploy@hadoop01 sbin]$

5.2 put上传文件

语法: Usage: hadoop fs -put [-f] [-p] [-d] [-t <thread count>] [-q <thread pool queue size>] [ - | <localsrc> ...] <dst>
-f 如果目标文件已经存在,则进行覆盖操作
-p 保留访问和修改时间、所有权和权限
-d 跳过._COPYING_的临时文件
-t 要使用的线程数,默认为1。上传包含1个以上文件的目录时很有用
-q 要使用的线程池队列大小,默认为1024。只有线程数大于1时才生效

# 创建3个文件 1.txt 2.txt 3.txt
[hadoopdeploy@hadoop01 ~]$ echo aaa > 1.txt
[hadoopdeploy@hadoop01 ~]$ echo bbb > 2.txt
[hadoopdeploy@hadoop01 ~]$ echo ccc > 3.txt
# 上传本地的 1.txt 到hdfs的 /bigdata/hadoop 目录中
[hadoopdeploy@hadoop01 ~]$ hadoop fs -put -p 1.txt /bigdata/hadoop
# 因为 /bigdata/hadoop 中已经存在了 1.txt 所有上传失败
[hadoopdeploy@hadoop01 ~]$ hadoop fs -put -p 1.txt /bigdata/hadoop
put: `/bigdata/hadoop/1.txt': File exists
# 通过 -f 参数,如果目标文件已经存在,则进行覆盖操作
[hadoopdeploy@hadoop01 ~]$ hadoop fs -put -p -f 1.txt /bigdata/hadoop
# 查看 /bigdata/hadoop 目录中的文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata/hadoop
Found 1 items
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/1.txt
# 通过多线程和 通配符 上传多个文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -put -p -f -t 3 *.txt /bigdata/hadoop
# 查看 /bigdata/hadoop 目录中的文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata/hadoop
Found 3 items
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/1.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/2.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/3.txt

5.3 ls查看目录或文件

语法: Usage: hadoop fs -ls [-h] [-R] <paths>
-h 展示成人类可读的,比如文件的大小,展示成多少M等。
-R 递归展示。

# 列出/bigdata 目录和文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata/
Found 1 items
drwxr-xr-x   - hadoopdeploy supergroup          0 2023-02-28 12:37 /bigdata/hadoop
# -R 递归展示
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls -R /bigdata/
drwxr-xr-x   - hadoopdeploy supergroup          0 2023-02-28 12:37 /bigdata/hadoop
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/1.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/2.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/3.txt
# -h 展示成人类可读的,比如多少k,多少M等
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls -R -h /bigdata/
drwxr-xr-x   - hadoopdeploy supergroup          0 2023-02-28 12:37 /bigdata/hadoop
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/1.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/2.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/3.txt

5.4 cat 查看文件内容

语法: Usage: hadoop fs -cat [-ignoreCrc] URI [URI ...]
-ignoreCrc 禁用checkshum验证
注意: 如果文件比较大,需要慎重读取,因为这是查看文件的全部内容

# 查看 1.txt 和 2.txt 的文件内容
[hadoopdeploy@hadoop01 ~]$ hadoop fs -cat -ignoreCrc /bigdata/hadoop/1.txt /bigdata/hadoop/2.txt
aaa
bbb
[hadoopdeploy@hadoop01 ~]$

5.5 head 查看文件前1000字节内容

语法: Usage: hadoop fs -head URI
Displays first kilobyte of the file to stdout(显示文件的前1000字节)

# 查看1.txt的前1000字节
[hadoopdeploy@hadoop01 ~]$ hadoop fs -head /bigdata/hadoop/1.txt
aaa
[hadoopdeploy@hadoop01 ~]$

5.6 tail 查看文件后1000字节内容

语法: Usage:hadoop fs -tail [-f] URI
Displays last kilobyte of the file to stdout.(显示文件的后1000字节)
-f:表示将随着文件的增长输出附加数据,就像在Unix中一样。

# 查看1.txt的后1000字节
[hadoopdeploy@hadoop01 ~]$ hadoop fs -tail /bigdata/hadoop/1.txt
aaa
[hadoopdeploy@hadoop01 ~]$

5.7 appendToFile 追加数据到hdfs文件中

语法: Usage: hadoop fs -appendToFile <localsrc> ... <dst>
将单个src或多个src从本地文件系统附加到目标文件系统。还可以从标准输入(localsrc是-)读取输入并附加到目标文件系统。

# 查看1.txt文件的内容
[hadoopdeploy@hadoop01 ~]$ hadoop fs -cat /bigdata/hadoop/1.txt
aaa
# 查看2.txt文件的内容
[hadoopdeploy@hadoop01 ~]$ hadoop fs -cat /bigdata/hadoop/2.txt
bbb
# 将1.txt文件的内容追加到2.txt文件中
[hadoopdeploy@hadoop01 ~]$ hadoop fs -appendToFile 1.txt  /bigdata/hadoop/2.txt
# 再次查看2.txt文件的内容
[hadoopdeploy@hadoop01 ~]$ hadoop fs -cat /bigdata/hadoop/2.txt
bbb
aaa
[hadoopdeploy@hadoop01 ~]$

5.8 get下载文件

语法: Usage: hadoop fs -get [-ignorecrc] [-crc] [-p] [-f] [-t <thread count>] [-q <thread pool queue size>] <src> ... <localdst>

将文件复制到本地文件系统。可以使用-gnrecrc选项复制未能通过CRC检查的文件。可以使用-crc选项复制文件和CRC。

-f 如果目标文件已经存在,则进行覆盖操作
-p 保留访问和修改时间、所有权和权限
-t 要使用的线程数,默认为1。下载包含多个文件的目录时很有用
-q 要使用的线程池队列大小,默认为1024。只有线程数大于1时才生效

# 下载hdfs文件系统的1.txt 到本地当前目录下的1.txt.download文件 
[hadoopdeploy@hadoop01 ~]$ hadoop fs -get /bigdata/hadoop/1.txt ./1.txt.download
# 查看 1.txt.download是否存在
[hadoopdeploy@hadoop01 ~]$ ls
1.txt  1.txt.download  2.txt  3.txt
# 再次下载,因为本地已经存在1.txt.download文件,所有报错
[hadoopdeploy@hadoop01 ~]$ hadoop fs -get /bigdata/hadoop/1.txt ./1.txt.download
get: `./1.txt.download': File exists
# 通过 -f 覆盖已经存在的文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -get -f /bigdata/hadoop/1.txt ./1.txt.download
# 多线程下载
[hadoopdeploy@hadoop01 ~]$ hadoop fs -get -f -t 3 /bigdata/hadoop/*.txt ./123.txt.download
get: `./123.txt.download': No such file or directory
# 多线程下载
[hadoopdeploy@hadoop01 ~]$ hadoop fs -get -f -t 3 /bigdata/hadoop/*.txt .
[hadoopdeploy@hadoop01 ~]$

5.9 getmerge合并下载

语法: Usage: hadoop fs -getmerge [-nl] [-skip-empty-file] <src> <localdst>

将多个src文件的内容合并到localdst文件中

-nl 表示在每个文件末尾增加换行符
-skip-empty-file 跳过空文件

# hdfs上1.txt文件的内容
[hadoopdeploy@hadoop01 ~]$ hadoop fs -cat /bigdata/hadoop/1.txt
aaa
# hdfs上3.txt文件的内容
[hadoopdeploy@hadoop01 ~]$ hadoop fs -cat /bigdata/hadoop/3.txt
ccc
# 将hdfs上1.txt 3.txt下载到本地 merge.txt 文件中 -nl增加换行符 -skip-empty-file跳过空文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -getmerge -nl -skip-empty-file /bigdata/hadoop/1.txt /bigdata/hadoop/3.txt ./merge.txt
# 查看merge.txt文件
[hadoopdeploy@hadoop01 ~]$ cat merge.txt
aaa

ccc

[hadoopdeploy@hadoop01 ~]$

5.10 cp复制文件

语法: Usage: hadoop fs -cp [-f] [-p | -p[topax]] [-t <thread count>] [-q <thread pool queue size>] URI [URI ...] <dest>

-f 如果目标文件存在则进行覆盖。
-t 要使用的线程数,默认为1。复制包含多个文件的目录时很有用
-q 要使用的线程池队列大小,默认为1024。只有线程数大于1时才生效

# 查看 /bigdata目录下的文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata
Found 1 items
drwxr-xr-x   - hadoopdeploy supergroup          0 2023-02-28 12:55 /bigdata/hadoop
# 查看/bigdata/hadoop目录下的文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata/hadoop
Found 3 items
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/1.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          8 2023-02-28 12:55 /bigdata/hadoop/2.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/3.txt
# 将 /bigdata/hadoop 目录下所有的文件 复制到 /bigdata 目录下
[hadoopdeploy@hadoop01 ~]$ hadoop fs -cp /bigdata/hadoop/* /bigdata
# 查看 /bigdata/ 目录下的文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata
Found 4 items
-rw-r--r--   2 hadoopdeploy supergroup          4 2023-02-28 13:17 /bigdata/1.txt
-rw-r--r--   2 hadoopdeploy supergroup          8 2023-02-28 13:17 /bigdata/2.txt
-rw-r--r--   2 hadoopdeploy supergroup          4 2023-02-28 13:17 /bigdata/3.txt
drwxr-xr-x   - hadoopdeploy supergroup          0 2023-02-28 12:55 /bigdata/hadoop
[hadoopdeploy@hadoop01 ~]$

5.11 mv移动文件

语法: Usage: hadoop fs -mv URI [URI ...] <dest>
将文件从源移动到目标。此命令还允许多个源,在这种情况下,目标需要是一个目录。不允许跨文件系统移动文件。

# 列出 /bigdata/hadoop 目录下的文件
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata/hadoop
Found 3 items
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/1.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          8 2023-02-28 12:55 /bigdata/hadoop/2.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/3.txt
# 将 1.txt 重命名为 1-new-name.txt
[hadoopdeploy@hadoop01 ~]$ hadoop fs -mv /bigdata/hadoop/1.txt /bigdata/hadoop/1-new-name.txt
# 列出 /bigdata/hadoop 目录下的文件,可以看到1.txt已经改名了
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata/hadoop
Found 3 items
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/1-new-name.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          8 2023-02-28 12:55 /bigdata/hadoop/2.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          4 2023-02-28 12:31 /bigdata/hadoop/3.txt
[hadoopdeploy@hadoop01 ~]$

5.12 setrep 修改指定文件的副本数

语法: Usage: hadoop fs -setrep [-R] [-w] <numReplicas> <path>
更改文件的副本数。如果path是一个目录,则该命令递归更改以path为根的目录树下所有文件的副本数。执行此命令时,EC文件将被忽略。
-R -R标志是为了向后兼容。它没有影响。
-w -w标志请求命令等待复制完成。这可能需要很长时间。

# 修改1-new-name.txt文件为3个副本
[hadoopdeploy@hadoop01 ~]$ hadoop fs -setrep -w 3 /bigdata/hadoop/1-new-name.txt
Replication 3 set: /bigdata/hadoop/1-new-name.txt
Waiting for /bigdata/hadoop/1-new-name.txt .... done
[hadoopdeploy@hadoop01 ~]$

5.13 df显示可用空间

语法: Usage: hadoop fs -df [-h] URI [URI ...]

[hadoopdeploy@hadoop01 ~]$ hadoop fs -df /bigdata/hadoop
Filesystem                   Size     Used    Available  Use%
hdfs://hadoop01:8020  27697086464  1228800  17716019200    0%
# -h 显示人类可读的
[hadoopdeploy@hadoop01 ~]$ hadoop fs -df -h /bigdata/hadoop
Filesystem              Size   Used  Available  Use%
hdfs://hadoop01:8020  25.8 G  1.2 M     16.5 G    0%

5.14 du统计文件夹或文件的大小

语法: Usage: hadoop fs -df [-h] URI [URI ...]

[hadoopdeploy@hadoop01 ~]$ hadoop fs -du /bigdata/hadoop
4  12  /bigdata/hadoop/1-new-name.txt
8  16  /bigdata/hadoop/2.txt
4  8   /bigdata/hadoop/3.txt
[hadoopdeploy@hadoop01 ~]$ hadoop fs -du -s /bigdata/hadoop
16  36  /bigdata/hadoop
[hadoopdeploy@hadoop01 ~]$ hadoop fs -du -s -h /bigdata/hadoop
16  36  /bigdata/hadoop
# 16 表示/bigdata/hadoop目录下所有文件的总大小
# 36 表示/bigdata/hadoop目录下所有文件占据所有副本的总大小
[hadoopdeploy@hadoop01 ~]$ hadoop fs -du -s -h -v /bigdata/hadoop
SIZE  DISK_SPACE_CONSUMED_WITH_ALL_REPLICAS  FULL_PATH_NAME
16    36                                     /bigdata/hadoop
[hadoopdeploy@hadoop01 ~]$

5.15 chgrp chmod chown改变文件的所属权限

[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata/hadoop/2.txt
-rw-rw-r--   2 hadoopdeploy hadoopdeploy          8 2023-02-28 12:55 /bigdata/hadoop/2.txt
# 给2.txt增加可执行的权限
[hadoopdeploy@hadoop01 ~]$ hadoop fs -chmod +x /bigdata/hadoop/2.txt
[hadoopdeploy@hadoop01 ~]$ hadoop fs -ls /bigdata/hadoop/2.txt
-rwxrwxr-x   2 hadoopdeploy hadoopdeploy          8 2023-02-28 12:55 /bigdata/hadoop/2.txt
[hadoopdeploy@hadoop01 ~]$

5.16 rm删除文件或目录

语法: Usage: hadoop fs -rm [-f] [-r |-R] [-skipTrash] [-safely] URI [URI ...]
如果启用了回收站,文件系统会将已删除的文件移动到垃圾箱目录。
目前,默认情况下禁用垃圾桶功能。用户可以通过为参数fs. trash.interval(在core-site.xml中)设置大于零的值来启用回收站。

-f 如果文件不存在,将不会显示诊断消息或修改退出状态以反映错误。
-R 选项递归删除目录及其下的任何内容。
-r 选项等价于-R。
-skipTrash 选项将绕过回收站,如果启用,并立即删除指定的文件。当需要从大目录中删除文件时,这很有用。
-safely 在删除文件总数大于 hadoop.shell.delete.limited.num.files的文件时(在core-site.xml中,默认值为100)之前,需要进行安全确认

# 删除2.txt,因为我本地启动了回收站,所以文件删除的文件进入了回收站
[hadoopdeploy@hadoop01 ~]$ hadoop fs -rm /bigdata/hadoop/2.txt
2023-02-28 22:04:51,302 INFO fs.TrashPolicyDefault: Moved: 'hdfs://hadoop01:8020/bigdata/hadoop/2.txt' to trash at: hdfs://hadoop01:8020/user/hadoopdeploy/.Trash/Current/bigdata/hadoop/2.txt
[hadoopdeploy@hadoop01 ~]$

6、界面操作

可能有些人会说,这么多的命令,怎么记的住,如果我们可以操作hdfs的界面,则可以在界面上进行操作。

界面操作

7、参考链接

1、https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#appendToFile

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

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

相关文章

Kubernetes12:k8s集群安全机制 ***与证书生成***

Kubernetes12&#xff1a;k8s集群安全机制 1、概述 1&#xff09;访问一个k8s集群的时候&#xff0c;需要经过以下三个步骤才能完成具体操作 第一步&#xff1a;认证操作第二部&#xff1a;鉴权操作&#xff08;授权&#xff09;第三部&#xff1a;准入控制操作 2&#xff…

小白晋升大牛的13个项目

入门到放弃 “C/C真的太难学了,我准备放弃了!” 很多初学者在学完C和C的基本语法后&#xff0c;就停滞不前了&#xff0c;最终走向“从入门到放弃”。其实&#xff0c;我们初学者最需要的不是HelloWorld&#xff0c;也不是语法知识的堆砌&#xff0c;需要的只是实战项目的磨砺…

「TCG 规范解读」基础设施架构和协议 (1)

可信计算组织&#xff08;Ttrusted Computing Group,TCG&#xff09;是一个非盈利的工业标准组织&#xff0c;它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立&#xff0c;并采纳了由可信计算平台联盟&#xff08;the Trusted Computing Platform Alli…

9、STM32 SDIO FATFS(SD卡)

本篇文章使用STM32对SD卡通过SDIO配置&#xff0c;读写文件 在使用FATFS时值得注意得是若通信SDIO不启动DMA方式读写&#xff0c;容易导致其他任务中断打断读写时序&#xff0c;导致FATFS的执行出现异常&#xff0c;常见返回为FR_DISK_ERR, / (1) A hard error occurred in the…

【论文阅读】Robust Invertible Image Steganography (CVPR 2022)

作者来自北大深研院 网上已有介绍&#xff1a;https://news.pkusz.edu.cn/info/1002/6538.htm 针对传统图像隐写方法对高斯噪声、泊松噪声和有损压缩鲁棒性差的问题&#xff0c;提出了一种基于流的鲁棒可逆图像隐写框架RIIS。框架如下图 一、方法概述&#xff1a; 基于流的可…

计算机组成原理4小时速成6:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线

计算机组成原理4小时速成6&#xff1a;输入输出系统&#xff0c;io设备与cpu的链接方式&#xff0c;控制方式&#xff0c;io设备&#xff0c;io接口&#xff0c;并行串行总线 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c…

计算机网络--网络层 IPv4地址概述(day05)

网络层 网络层提供的两种服务 IPv4地址概述 IPv4地址就是给因特网(Internet)上的每一台主机(或路由器&#xff09;的每一个接口分配一个在全世界范围内是唯一的32比特的标识符 IPv4地址的编址方法经历了如下三个历史阶段&#xff1a; 分类编址 1981划分子网 1985无分类编址…

JavaScript Array 数组对象

文章目录JavaScript Array 数组对象什么是数组?创建一个数组访问数组JavaScript Array 数组对象 数组对象的作用是&#xff1a;使用单独的变量名来存储一系列的值。 创建数组, 为其赋值&#xff1a; 实例 var mycars new Array(); mycars[0] "Saab"; mycars[1]…

【虚幻引擎】UE4源码解析FWorldContent、UWorld、ULevel、UGameInstance、UEngine

一、UEngine Engine&#xff0c;因为也是很基础的类&#xff0c;再加上开发过程中会经常访问到该类型&#xff0c;因此UE4引擎也在代码全局范围内定义了一个该类型的全局变量&#xff1a;UEngine* GEngine供开发者直接调用。该最基础的类型分化成了两个子类&#xff1a;UGameE…

【面试题】 JavaScript 字符串截取方法有哪些?

大厂面试题分享 面试题库后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库在 JavaScript 中&#xff0c;可以使用 substr()、slice() 和 substring() 方法截取字符串。substring()substring() 方法返回一个字符串在开始…

Lock锁心得

lock接口最常见的实现类ReentrantLock&#xff0c;通常情况下&#xff0c;lock只允许一个线程访问共享资源&#xff0c;也有特殊情况&#xff0c;比如读写锁里的读锁。lock和synchronizrd是常见的锁&#xff0c;都可以让代码变得安全。但是功能上有差别&#xff0c;二者不是能替…

笃行不怠勾勒人才图,望城区人才工作为高质量发展增添强劲动力

功以才成&#xff0c;业以才广。人才是经济高质量发展的重要资源。党的二十大报告明确“深入实施人才强国战略”&#xff0c;指出“实施更加积极、更加开放、更加有效的人才政策”。作为湖南“一核两副三带四区”区域经济发展格局的战略支点&#xff0c;望城区积极发挥着政策主…

TCP协议详解—TCP各个报头属性的作用

文章目录一.TCP是什么二.TCP协议格式1.报头属性解释TCP首部长度/如何解包分用三.确认应答机制-tcp如何保证可靠性1.确认应答机制2.序号/确认序号-如何保证报文按序到达3.为什么要两个序号四.16位窗口大小-调整发送策略五.6个标志位一.TCP是什么 首先我们需要知道TCP是什么,TCP全…

你知道Object类和Objects的常用方法吗

文章目录Object的常用方法Objects的常用方法hashCodehashisNullequalsrequireNonNullcomparenonNull大家好&#xff0c;Leo又来了!!!最近在网上看到别人分析Objects中isNullfanfan方法来判断&#xff0c;我就想到之前写的一坨坨null&#xff0c;突然很惭愧&#xff0c;特地去研…

IIC总线式驱动开发(mpu6050)

目录 一、I2C总线背景知识 二、Exynos4412 I2C收发实现之裸机版 2.1 发送 2.2 接收 三、Linux内核对I2C总线的支持 四、MPU6050 五、应用层直接使用I2C通道 5.1 预备工作&#xff1a; 5.1.1 5.1.2 5.2 应用层直接使用i2c总线的代码实现 5.2.1 调用read、write实现接…

解决“vue“不是内部或外部命令问题

通过vue指令使用脚手架初始化项目时&#xff0c;在cmd中输入vue init webpack vue_project&#xff0c;终端报错&#xff1a; vue 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。解决方案&#xff1a; 1、确定npm是否已正确安装&#xff0c;在cmd中输入如下…

AcWing算法提高课-3.1.3香甜的黄油

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 题目传送门点这里 题目描述 农夫John发现了做出全威斯康辛州最甜的黄油的方法&#xff1a;糖。 把糖放在一片牧场上&#xff0c;他知道 N 只奶牛会过来舔它&#xff0c;这样就能做出能卖好价…

Dynamics 365 环境搭建 之 SQL Server 2019问题汇总

前言 随着产品的迭代&#xff0c;SQL Server 2016 已经是7-8年前的产品&#xff0c;新环境的搭建必然要随之更新。截至目前&#xff08;2023年3月&#xff09;Dynamics 365 9.1 op版本的软件要求如下。 Windows ServerSQL ServerWindows Server 2019 标准 Windows Server 20…

Vue2与Vue3响应式的详解与比对

目录前言一&#xff0c;响应式的理解1.1 Mvvm模式的复习1.2 什么是响应式二&#xff0c; Vue2中响应式的应用三&#xff0c;Vue2响应式的原理及实现3.1 数据代理3.2 数据代理的原理3.3 数据劫持四&#xff0c;Vue3中响应式的应用3.1 ref与reactive3.2 ref函数的使用讲解3.3 为什…

Anaconda配置Python新版本tensorflow库(CPU、GPU通用)的方法

本文介绍在Anaconda环境中&#xff0c;下载并配置Python中机器学习、深度学习常用的新版tensorflow库的方法。 在之前的两篇文章基于Python TensorFlow Estimator的深度学习回归与分类代码——DNNRegressor&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/detail…