hdfs短路读

恩慈1年前技术文章733

原理

当客户端执行数据块副本短路读时,Client与DataNode的交互过程具体如下图:

含义如下:

(1)DFSClient通过requestShortCircuitShm()接口向DataNode请求创建共享内存,DataNode创建共享内存文件并将共享内存文件描述符返回给DFSClient。

(2)DFSClient通过allocShmSlot()接口申请共享内存中的槽位,并通过requestShortCircuitFds()接口向DataNode请求要读取的副本文件描述符,DataNode打开副本文件并将数据块文件和元数据文件的文件描述符返回给DFSClient。

(3)DFSClient读取完副本后,异步通过releaseShortCircuitFds()接口向DataNode请求释放文件描述符及相应槽位


配置hdfs短路读


修改hdfs-site.xml文件 添加如下内容

<!--开启客户端段路读-->
<property>
   <name>dfs.client.read.shortcircuit</name>
   <value>true</value>
</property>


重启hdfs服务

相关文章

ACK版本升级

ACK版本升级

需求:将ACK版本从1.14.8升级至1.16.9升级前注意事项:集群升级需要机器可以公网访问,以便下载升级所需的软件包。集群升级Kubernetes过程中,可能会有升级失败的情况,为了您的数据安全,...

flink-hive方言配置(Hive Dialect)

简介       在使用 Hive 方言时,Flink 允许用户用 Hive 语法来编写 SQL 语句。 通过提供与 Hive 语法的兼容性,我们旨在改善与 Hive 的互操作性,并减少用户需要在 F...

Pod 的 init Containers

Pod 的 init Containers

Pod 我们可以分为两类,一种属于自主式 Pod ,还有一种属于控制器管理的 Pod 。一、Pod 的 initContainers基本概念:Pod能够具有多个容器,应用运行在容器里面,但是它也可能有...

Go 配置文件管理(ini)

Go 配置文件管理(ini)

1、背景ini 文件是 Initialization File 的缩写,即初始化文件,可用于统一管理各项配置。gopkg.in/ini.v1 是地表最强大、最方便和最流行的 Go 语言 INI 文件操...

Rancher+dashboard安装部署

Rancher+dashboard安装部署

一、简介1、什么rancherRancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher,组织不再需要使用一套独特的开源技术从头开始构建容器服...

K8s数据持久化

K8s数据持久化

一、为什么需要持久化为了解决pod里面的容器被删除后数据不丢失,则引入了存储类型,类似于docker中的数据卷。在kubernetes集群中,其是支持多种存储类型,包括但不限于emptyDir,Hos...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。