alluxio短路读

恩慈1年前技术文章1020

原理

当Client和Worker在同一节点时,客户端对本地缓存数据的读写请求可以绕过RPC接口,使本地文件系统可以直接访问Worker所管理的数据,这种情况被称为短路写,速度比较快,如果该节点没有Worker在运行,则Client的读写需要通过网络访问其他节点上的Worker,速度受网络宽带的限制。

当应用程序需要读取的数据已经被缓存在本地Alluxio worker上时,即为本地缓存命中。应用程序通过Alluxio client请求数据访问后,Alluxio client会向 Alluxio master检索储存该数据的Alluxio worker位置。如果本地Alluxio worker存有该数据,Alluxio client将使用”短路读”绕过Alluxio worker,直接通过本地文件系统读取文件。短路读可避免通过TCP socket传输数据,并能提供内存级别的数据访问速度。短路读是从Alluxio读取数据最快的方式。
在默认情况下,短路读需要获得相应的本地文件系统操作权限。当Alluxio worker和client是在容器化的环境中运行时,可能会由于不正确的资源信息统计而无法实现短路读。在基于文件系统的短路读不可行的情况下,Alluxio可以基于domain socket的方式实现短路读,这时,Alluxio worker将通过预先指定的domain socket路径将数据传输到client

image.png

配置

  • 写参数: alluxio.user.file.writetype.default

  1. CACHE_THROUGH:数据被同步写入AlluxioWorker和底层存储

  2. MUST_CACHE:数据被同步写入AlluxioWorker,不写底层存储

  3. THROUGH:数据只写底层存储,不写入AlluxioWorker

  4. ASYNC_THROUGH:数据同步写入AlluxioWorker并异步写底层存储(速度快)

  • 读参数: alluxio.user.file.readtype.default

    1. CACHE_PROMOTE:数据在Worker上,则被移动到Worker的最高层,否则创建副本到本地Worker

    2. CACHE:数据不在本地Worker中时直接创建副本到本地Worker

    3. NO_CACHE:仅读数据,不写副本到Worker

    相关文章

    数据湖技术之iceberg(八)Spark与Iceberg整合DDL操作

    数据湖技术之iceberg(八)Spark与Iceberg整合DDL操作

    1.CREATE TABLE 创建表Create table 创建Iceberg表,创建表不仅可以创建普通表还可以创建分区表,再向分区表中插入一批数据时,必须对数据中分区列进行排序,否则会出现文件关闭...

    CDP实操--配置HBase的Ranger策略验证(三)

    CDP实操--配置HBase的Ranger策略验证(三)

    1.1HBase的Ranger策略验证确保HBase的配置页面里已经勾选了“Ranger Service”在terminal中,kerberos登录到hbase,用如下命令登录hbase shellc...

    SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(2)

    SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(2)

            3.0 在云服务器进行环境配置        将项目放到云服务器上运行,那么离不开项目所依赖的环境,比如...

    zabbix监控华为存储设备

    zabbix监控华为存储设备

    确认监控方式开始监控之前首先思考确认好要监控的方式。提出疑问:zabbix 监控华为存储设备推荐使用snmptrap还是snmptt呢?回答:在 Zabbix 监控华为存储设备时,您可以选择使用 SN...

    PostgreSQL 命令行工具介绍

    前言psql 是 PostgreSQL 自带的命令行交互客户端工具,类似于 MySQL 的 mysql -u -p 不过相当于 MySQL 的命令行工具 psql 功能更丰富些,例如单击 tab 自动...

    Flink 状态管理

    Flink 状态管理

    一、  Flink 中的状态1、由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态 2、可以认为状态就是一个本地变量,可以被任务的业务逻辑访问 3、Flink 会进行状态管理,包括状...

    发表评论    

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