【Hadoop】HDFS读写流程和客户端命令使用

这篇具有很好参考价值的文章主要介绍了【Hadoop】HDFS读写流程和客户端命令使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁

🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁

感谢点赞和关注 ,每天进步一点点!加油!

目录

一、HDFS产出背景及定义

1.1.HDFS产生背景

1.2.HDFS简介

1.3.HDFS的优缺点

1、优点

2、缺点

二、HDFS的特点

三、HDFS组成架构

1、Client:客户端

2、NameNode

3、 DataNode

4、 Secondary NameNode

四、HDFS读写过程

4.1.写入流程

4.2.读取流程

五、HDFS客户端常用命令

5.1.HDFS客户端访问命令使用

5.2.HDFS客户端管理命令使用

1、报告文件系统的基本信息和统计信息

2、fs_image 文件导出解析到本地

3、安全模式

4、文件健康检查和租约释放

5、har 归档

5.3. HDFS 命令总体划分


一、HDFS产出背景及定义


1.1.HDFS产生背景


随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。

1.2.HDFS简介


HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

HDFS的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变

1.3.HDFS的优缺点


1、优点

  • 高容错性,自动保存 默认的副本数,某个副本或者机器宕机都会完成自动复制,使副本数保持在设置的个数;
  • 适合处理大数据,能够存储和处理TB,甚至 PB级别的数据量;
  • 可构建在廉价机器上,使用普通服务器便可建设大数据平台。

2、缺点

  • 不适合低延时数据访问, 我们一般采用分布式的HBase 作为存储;
  • 无法高效对大量小文件进行存储

         a.大量 小文件会占用 NameNode 大量内存来存储文件索引信息

         b.小文件增加访问和写入寻址时间,大量小文件的存在无论是读取或者写入数

据 都会都集群造成很大的压力

  • 不支持并发写入、数据修改

          a.一个文件只能一个写,不允许多个线程同时写。

          b.仅仅支持数据append(追加),不支持文件的随机修改


二、HDFS的特点


高容错性:一个HDFS集群会包含非常多节点,HDFS将文件分块(Block)存储,并且会自动保存多个副本到不同的机器节点上以保证数据的安全,而且HDFS可以检测故障并且从故障中快速恢复。

高吞吐率:与一般文件系统的访问低延迟不同,HDFS的重点是存储和处理大量的数据,支持数据处理规模是GB、TB、甚至是PB的级别。因此,相比较用户交互式程序,HDFS更加适用批处理的应用程序。

一次写入多次读取模型:一个文件只支持单线程的文件写入,HDFS假定一个文件一旦被创建,写入完成之后除了追加和截断就不需要更改。这种设置简化了数据一致性的问题,从而也提高了数据访问的吞吐率,同时也不支持文件的随机修改。

大数据集HDFS 中的典型文件大小为 GB 到 TB,对于大批量小文件HDFS无法做到高效存储,存储和检索会消耗NameNode内存。

可移植性HDFS是由Java语言构建,任何支持Java的机器,都可以运行HDFS,因此HDFS可以轻松地从一个平台移植到另一个平台。


三、HDFS组成架构


【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

1、Client:客户端

通过Client来访问文件系统,然后由Client与NameNode和DataNode进行通信。Client对外作为文件系统的接口

  • 文件切分,上传HDFS文件的时候,Client将文件切分成一个一个 Block 然后进行上传;
  • 负责与 NameNode 和 DataNode 交互,获取文件的位置信息;
  • Client 提供一些命令来管理HDFS,比如:banlance 数据均衡、 fsimage 元数据获取和解析、NameNode 格式化、checkpoint 等;
  • Clinet 提供一些命令来访问HDFS,比如:HDFS文件的增删改查

2、NameNode

管理者。 用于存储和管理文件元数据、维护文件系统的目录树形结构,记录写入的每个数据块(Block)与其归属文件的对应关系。

  • 管理文件系统命名空间;
  • 配置副本策略,默认3副本策略;
  • 管理数据块的映射信息(Blockmap);
  • 处理客户端的读写请求。

3、 DataNode

DataNode会通过心跳和NameNode保持通信,处理实际的操作。

  • 存储实际的数据块;
  • 执行数据块的读写操作。

4、 Secondary NameNode

Secondary NameNode的作用是消费EditsLog,定期地合并FsImage和EditsLog,生成新的FsImage文件,并推送给NameNode,降低了NameNode的压力。 在紧急情况下,可辅助恢复NameNode。

SecondaryNameNode机制:

  • SecondaryNameNode不是NameNode挂了的备用节点
  • 主要功能只是定期合并日志, 防止日志文件变得过大
  • 合并过后的镜像文件在NameNode上也会保存一份

SecondaryNameNode工作过程:

  1. SNN向NameNode发起同步请求, 此时NameNode会将日志都写到新的日志当中;
  2. SNN向NameNode下载镜像文件和日志文件;
  3. SNN开始Merge这两份文件并生成新的镜像文件;
  4. SNN向NameNode传回新的镜像文件;
  5. NameNode文件将新的镜像文件和日志文件替换成当前正在使用的文件

四、HDFS读写过程


4.1.写入流程


【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

  1. client向namenode通信,请求上传文件
  2. namenode判断是否可上传: namenode检查用户是否有上传的权限、目标文件是否已存在、父目录是否存在
  3. 文件切分:client将文件切分成0~128M大小的block块(逻辑切分)
  4. client请求block块的存储位置
  5. namenode返回datanode地址dn1、dn2、dn3(默认三副本地址)
  6. client通过FSDataOutputStream模块请求dn1上传数据,建立连接管道(本质上是一个 RPC 调用,建立 pipeline)
  7. 当dn1收到请求后会继续调用dn2, dn2调用dn3,将整个通信管道建立完成,然后逐级返回client,即图中的ack校验
  8. client开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位(默认64k),dn1收到一个Packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答
  9. 当一个Block传输完成之后,client再次请求NameNode上传第二个Block的服务器(重复执行4-8步)
  10. 传输完毕之后,客户端关闭流资源,并且会告诉hdfs数据传输完毕,然后hdfs收到传输完毕就恢复元数据

4.2.读取流程


【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

  1. Client 向 NameNode 发起 RPC 请求,来确定请求文件 block 所在的位置;
  2. NameNode 会视情况返回文件的部分或者全部 block 列表,对于每个 block,NameNode 都会返回含有该 block 副本的 DataNode 地址;
  3. 这些返回的 DataNode 地址,会按照集群拓扑结构得出 DataNode 与客户端的距离,然后进行排序,排序两个规则:网络拓扑结构中距离Client近的排靠前;心跳机制中超时汇报的 DataNode 状态为 STALE,这样的排靠后;
  4. Client 选取排序靠前的 DataNode 来读取 block,如果客户端本身就是 DataNode,那么将从本地直接获取数据;底层上本质是建立 Socket Stream(FSDataInputStream),重复的调用父类 DataInputStream 的 read 方法,直到这个块上的数据读取完毕;
  5. 当读完列表的 block 后,若文件读取还没有结束,客户端会继续向 NameNode 获取下一批的 block 列表;
  6. 读取完一个 block 都会进行 checksum 验证,如果读取 DataNode 时出现错误,客户端会通知 NameNode,然后再从下一个拥有该 block 副本的 DataNode 继续读。
  7. read 方法是并行的读取 block 信息,不是一块一块的读取;NameNode 只是返回 Client 请求包含块的 DataNode 地址,并不是返回请求块的数据;
  8. 最终读取来所有的 block 会合并成一个完整的最终文件。(摘录博友)

五、HDFS客户端常用命令


5.1.HDFS客户端访问命令使用


对于客户端shell命令的具体使用可以查看 help 帮助, 熟悉Linux 常用命令的人可能一看这些命令就会有种很熟悉对的感觉。

[winner_spark@hdp105 root]$ hdfs dfs -help

如下为常用的命令:

# 创建文件夹
hdfs dfs -mkdir -p   /tmp/kangll 

# 上传文件 test.sh 到HDFS 
hdfs dfs -put   test.sh   /tmp/kangll

# 查看文件
hdfs dfs -ls  /tmp/kangll

# 下载到本地 /tmp 文件夹
hdfs dfs -get   test.sh   /tmp/kangll  /tmp

# 查看test.sh 文件内容 -less 或者 -more也可以
hdfs dfs -cat    /tmp/kangll/test.sh

# 查看 文件或者文件夹 大小
hdfs dfs -du  -h /tmp/kangll

#判断当前路径是否存在
hadoop fs -test -d  /tmp/kangll

# 文件权限修改
hdfs dfs -chmod 775  /tmp/kangll/test.sh
hdfs dfs -chown  winner_spark:hadoop  /tmp/kangll/test.sh

# 删除test.sh 删除后的文件会先进入 垃圾桶
hdfs dfs -rm -r  /tmp/kangll/test.sh

# -cp:从HDFS的一个路径拷贝到HDFS的另一个路径
hdfs dfs -cp  /tmp/kangll/test.sh  /tmp/

# 移动
hdfs dfs -mv  /tmp/kangll/test.sh  /tmp/

5.2.HDFS客户端管理命令使用


如下介绍几个常用的管理命令:

1、报告文件系统的基本信息和统计信息

hdfs dfsadmin -report

执行部分结果如下:

[hdfs@hdp105 root]$ hdfs dfsadmin -report 
Configured Capacity: 2253195592704 (2.05 TB)
Present Capacity: 2103420218371 (1.91 TB)
DFS Remaining: 1194928602115 (1.09 TB)
DFS Used: 908491616256 (846.10 GB)
DFS Used%: 43.19%
Replicated Blocks:
	Under replicated blocks: 172
	Blocks with corrupt replicas: 0
	Missing blocks: 0
	Missing blocks (with replication factor 1): 0
	Low redundancy blocks with highest priority to recover: 0
	Pending deletion blocks: 0
Erasure Coded Block Groups: 
	Low redundancy block groups: 0
	Block groups with corrupt internal blocks: 0
	Missing block groups: 0
	Low redundancy blocks with highest priority to recover: 0
	Pending deletion blocks: 0

-------------------------------------------------
Live datanodes (3):  # 测试环境 3个datanode

Name: 192.168.2.152:1019 (hdp103)
Hostname: hdp103
Decommission Status : Normal        # 节点状态
Configured Capacity: 751065197568 (699.48 GB)
DFS Used: 302833778688 (282.04 GB)
Non DFS Used: 88004692992 (81.96 GB)
DFS Remaining: 359240115201 (334.57 GB)
DFS Used%: 40.32%
DFS Remaining%: 47.83%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 20
Last contact: Thu Aug 24 14:13:48 CST 2023
Last Block Report: Thu Aug 24 12:32:27 CST 2023
Num of Blocks: 38238

2、fs_image 文件导出解析到本地

获取Namenode元数据fsImage镜像文件,并且 解析为CSV文件。

# 获取 fsimage, 获取到的数据到二进制文件
hdfs dfsadmin -fetchImage $BASEDIR/data
# 解析,数据解析为 csv 文件 , -o 为输出路径, -p输出文件格式     
hdfs oiv -i $BASEDIR/data/fsimage_*  -o $BASEDIR/fs_distribution/fs_deli   -p Delimited -delimiter ","


#可以 查看命令参数解释 hdfs oiv -i  -help

解析结果

【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

包含的信息有:路径,副本数,日期,权限 ,所属用户和组等信息。

3、安全模式

HDFS中,安全模式是一种保护机制,它可以在NameNode节点出现故障或异常情况时,防止数据丢失或损坏。在安全模式下,HDFS集群只允许读取数据,禁止写入数据,同时也禁止执行元数据修改操作。这意味着,当NameNode节点处于安全模式下时,HDFS集群的数据将处于只读状态,直到NameNode节点恢复正常并退出安全模式为止。

 hdfs dfsadmin [-safemode enter | leave | get | wait | forceExit]

hdfs dfsadmin 的其他命令:

命令选项

描述

-report

报告文件系统的基本信息和统计信息。

-safemode enter | leave | get | wait

安全模式维护命令。安全模式是Namenode的一个状态,这种状态下,Namenode
1. 不接受对名字空间的更改(只读)
2. 不复制或删除块
Namenode会在启动时自动进入安全模式,当配置的块最小百分比数满足最小的副本数条件时,会自动离开安全模式。安全模式可以手动进入,但是这样的话也必须手动关闭安全模式。

-refreshNodes

重新读取hosts和exclude文件,更新允许连到Namenode的或那些需要退出或入编的Datanode的集合。

-finalizeUpgrade

终结HDFS的升级操作。Datanode删除前一个版本的工作目录,之后Namenode也这样做。这个操作完结整个升级过程。

-upgradeProgress status | details | force

请求当前系统的升级状态,状态的细节,或者强制升级操作进行。

-metasave filename

保存Namenode的主要数据结构到hadoop.log.dir属性指定的目录下的<filename>文件。对于下面的每一项,<filename>中都会一行内容与之对应
1. Namenode收到的Datanode的心跳信号
2. 等待被复制的块
3. 正在被复制的块
4. 等待被删除的块

-setQuota <quota> <dirname>...<dirname>

为每个目录 <dirname>设定配额<quota>。目录配额是一个长整型整数,强制限定了目录树下的名字个数。
命令会在这个目录上工作良好,以下情况会报错:
1. N不是一个正整数,或者
2. 用户不是管理员,或者
3. 这个目录不存在或是文件,或者
4. 目录会马上超出新设定的配额。

-clrQuota <dirname>...<dirname>

为每一个目录<dirname>清除配额设定。
命令会在这个目录上工作良好,以下情况会报错:
1. 这个目录不存在或是文件,或者
2. 用户不是管理员。
如果目录原来没有配额不会报错。

-help [cmd]

显示给定命令的帮助信息,如果没有给定命令,则显示所有命令的帮助信息。
 

4、文件健康检查和租约释放

hdfs文件操作异常没有正确关闭连接,造成租约没有释放,而程序可以读取这个文件时获取不到租约就会报错。所以需要释放租约, -retries 3 表示重试三次。


# 健康检查
hdfs fsck    /tmp/kangll/test.sh

# hdfs文件操作异常没有正确关闭连接,造成租约没有方式 需要释放租约, -retries 3 重试三次
hdfs debug recoverLease -path $LINE -retries 3 

执行结果

【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&amp;YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

hdfs fsck 的其他命令:

命令选项

描述

-move

把损坏的文件移动到/lost+found

-delete

直接删除损坏的文件

-files

打印被检测的文件

-openforwrite

打印正在被写入的文件,可能是文件写入关闭异常

-includeSnapshots

检测的文件包括系统snapShot快照目录下的

list-corruptfileblocks

打印出丢失的块和它们所属的文件列表

-blocks

打印block 信息

-locations

打印 block 的位置,即在哪个节点

-racks

打印block 所在的 rack

-storagepolicies

打印 block 存储的策略信息

-blockId

打印 block所属块的位置信息

5、har 归档

Hadoop存档是特殊格式的存档。Hadoop存档映射到文件系统目录。Hadoop归档文件总是带有* .har扩展名

  • Hadoop存档目录包含元数据(采用_index和_masterindex形式)
  • 数据部分data(part- *)文件。
  • _index文件包含归档文件的名称和部分文件中的位置。
hadoop archive -archiveName $fileName -p $src $subSrc $dest

【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&amp;YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

归档启动MR任务执行完成后: 

【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&amp;YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

har 归档虽然对 文件进行了归档 减少了 block 数量,但是har 归档并没有压缩数据。

5.3. HDFS 命令总体划分


【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&amp;YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

Admin Commands:

命令

描述

cacheadmin

配置 HDFS 缓存

crypto

配置HDFS加密区

debug

执行Debug Admin命令执行HDFS的Debug命令

dfsadmin

运行DFS管理客户端

dfsrouteradmin

管理基于路由的联邦

ec

运行HDFS ErasureCoding 客户端

fsck

运行DFS文件系统检查工具

haadmin

运行DFS HA 管理客户端

jmxget

从NameNode或DataNode获取JMX导出的值

oev

an edits file 应用于 离线 edits viewer

oiv

an fsimage 应用于离线 fsimage viewer

oiv_legacy

apply the offline fsimage viewer to a legacy fsimage

storagepolicies

list/get/set block storage policies

Client Commands:

命令

描述

classpath

打印获取hadoop jar和所需库所需的类路径

dfs

在文件系统上运行filesystem命令

envvars

显示计算的Hadoop环境变量

fetchdt

从NameNode获取一个委托令牌

getconf

从配置中获取配置值

groups

获取用户所属的组

lsSnapshottableDir

列出当前用户拥有的所有可快照目录

Daemon Commands:

命令

描述

balancer

运行集群平衡实用程序

datanode

运行DFS datanode

dfsrouter

运行DFS路由器

diskbalancer

将数据均匀地分布在给定节点的硬盘上

httpfs

运行HttpFS server, HDFS的HTTP网关

journalnode

运行DFS journalnode

mover

运行实用程序以跨存储类型移动块副本

namenode

运行DFS namenode

nfs3

运行NFS v3网关

portmap

运行portmap服务

对于命令的具体可以可以使用 help 帮助 查看具体使用,我们平时使用做多的就是 hdfs dfs :

[winner_spark@hdp105 root]$ hdfs dfs -help
Usage: hadoop fs [generic options]
	[-appendToFile <localsrc> ... <dst>]
	[-cat [-ignoreCrc] <src> ...]
	[-checksum <src> ...]
	[-chgrp [-R] GROUP PATH...]
	[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
	[-chown [-R] [OWNER][:[GROUP]] PATH...]
	[-copyFromLocal [-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst>]
	[-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
	[-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] [-e] <path> ...]
	[-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
	[-createSnapshot <snapshotDir> [<snapshotName>]]
	[-deleteSnapshot <snapshotDir> <snapshotName>]
	[-df [-h] [<path> ...]]
	[-du [-s] [-h] [-v] [-x] <path> ...]
	[-expunge]
	[-find <path> ... <expression> ...]
	[-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
	[-getfacl [-R] <path>]
	[-getfattr [-R] {-n name | -d} [-e en] <path>]
	[-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
	[-head <file>]
	[-help [cmd ...]]
	[-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [<path> ...]]
	[-mkdir [-p] <path> ...]
	[-moveFromLocal <localsrc> ... <dst>]
	[-moveToLocal <src> <localdst>]
	[-mv <src> ... <dst>]
	[-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
	[-renameSnapshot <snapshotDir> <oldName> <newName>]
	[-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
	[-rmdir [--ignore-fail-on-non-empty] <dir> ...]
	[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
	[-setfattr {-n name [-v value] | -x name} <path>]
	[-setrep [-R] [-w] <rep> <path> ...]
	[-stat [format] <path> ...]
	[-tail [-f] <file>]
	[-test -[defsz] <path>]
	[-text [-ignoreCrc] <src> ...]
	[-touch [-a] [-m] [-t TIMESTAMP ] [-c] <path> ...]
	[-touchz <path> ...]
	[-truncate [-w] <length> <path> ...]
	[-usage [cmd ...]]

HDFS 知识框架图: 

【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&amp;YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

 

【Hadoop】HDFS读写流程和客户端命令使用,# 【==== HDFS&amp;YARN ====】,hadoop,HDFS读取流程,har,HDFS客户端,HDFS shell,安全模式

 ————————————————

参考链接:Hadoop --- HDFS介绍_hadoop hdfs_三水写代码的博客-CSDN博客

参考链接:Hadoop之HDFS简介_hadoop的hdfs_数新网络的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-680334.html

到了这里,关于【Hadoop】HDFS读写流程和客户端命令使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HDFS之Java客户端操作

    Hadoop版本:Hadoop-3.1.3 Linux版本:CentOS7.5 IDE工具:IntelliJ IDEA(Windows环境下) HDFS的Java客户端操作也是入门Hadoop开发的学习重点 下载依赖 https://github.com/steveloughran/winutils 根据自己的Hadoop安装版本选择对应版本的依赖,如果需要更高版本的依赖,请从以下地址下载 https://github.

    2024年02月12日
    浏览(45)
  • hbase优化:客户端、服务端、hdfs

    hbase优化 一.读优化 1.客户端: 2.服务器: 3.列簇:是否过多、 是否使用布隆过滤器:任何业务都应该设置Bloomfilter,通常设置为row就可以,除非确认业务随机查询类型为row+cf,可以设置为rowcol 是否设置ttl 4.hdfs优化: 二、写优化 是否需要写WAL?WAL是否需要同步写入 用批量

    2024年02月14日
    浏览(52)
  • Git客户端Sourcetree工具安装使用详解&命令

    目录 一、Git工作流程 二、Git安装 三、Sourcetree工具安装 四、Sourcetree配置 五、Sourcetree配置SSH 六、GIT常用命令 1、获取安装程序 a、官网地址:https://git-scm.com/downloads b、网盘地址:百度网盘 请输入提取码    xc5d 2、双击按照默认配置安装即可,安装目录:D:softwareGit、安装完

    2024年02月07日
    浏览(60)
  • 【HDFS】ResponseProcessor线程详解以及客户端backoff反压

    ResponseProcessor如何处理datanode侧发过来的packet ack的 客户端侧backoff逻辑。 ResponseProcessor:主要功能是处理来自datanode的响应。当一个packet的响应到达时,会把这个packet从ackQueue里移除。

    2024年02月11日
    浏览(67)
  • 【HDFS】每天一个RPC系列----complete(二):客户端侧

    上图给出了最终会调用到complete RPC的客户端侧方法链路(除去Router那条线了)。 org.apache.hadoop.hdfs.DFSOutputStream#completeFile(org.apache.hadoop.hdfs.protocol.ExtendedBlock): 下面这个方法在complete rpc返回true之前,会进行重试,直到超过最大重试次数抛异常。 另外需要注意的是,这个方法在

    2024年02月13日
    浏览(43)
  • 使用eXosip+ffmpeg、ffplay命令行实现sip客户端

    使用sip做视频通话时,会遇到需要使用ip摄像头作为视频源的情况,查了资料使用pjsip通常也需要改源码。pjsip包含的功能很完整,但有点过于庞大,很多功能并不需要。而且笔者有一个想法,只要有个能处理sip交互的库比如eXosip,音视频这块另外实现,比如先使用ffmpeg和ffp

    2024年02月14日
    浏览(37)
  • “远程客户端操作hdfs创建文件夹”,验证环境是否配置成功,以及HDFS错误整改

    编写“远程客户端操作hdfs创建文件夹”代码,验证环境是否配置成功! 1、错误点1: 改正方法: 第一步:点击文件项目文件模块 第二步:会发现红色框里的显示的是15,这里我们需要改成8,如下图: 2、错误点2: 改正方法: 第一步:点击文件项目文件设置,后按照图中步

    2024年02月12日
    浏览(68)
  • 客户端读写HBase数据库的运行原理

    1.HBase的特点 HBase是一个数据库,与RDMS相比,有以下特点: ① 它不支持SQL ② 不支持事务 ③ 没有表关系,不支持JOIN ④ 有列族,列族下可以有上百个列 ⑤ 单元格,即列值,可以存储多个版本的值,每个版本都有对应时间戳 ⑥ 行键按照字典序升序排列 ⑦ 元数据 和 数据 分

    2024年02月10日
    浏览(53)
  • 【Hadoop面试】HDFS读写流程

    HDFS(Hadoop Distributed File System)是GFS的开源实现。 HDFS是一个典型的主/备(Master/Slave)架构的分布式系统,由一个名字节点Namenode(Master) +多个数据节点Datanode(Slave)组成。其中Namenode提供元数据服务,Datanode提供数据流服务,用户通过HDFS客户端与Namenode和Datanode交互访问文件系统。

    2024年02月04日
    浏览(41)
  • 大数据:HDFS操作的客户端big data tools和NFS

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库 这oracle比sql安全,强大多了,所以你需要学

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包