关于kudu使用的一些问题及解决办法

2024-06-09 19:58

本文主要是介绍关于kudu使用的一些问题及解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 在client 1.5之前,由于kudu客户端链接的token有效时间是7天,当时间大于7天的时候token失效,客户端不会主动去刷新token,导致写入数据报错;

 解决办法:kudu-client 版本使用1.5以上的版本

  •  kudu数据flush的模式问题

 AUTO_FLUSH_BACKGROUND:异步刷新可能会导致写入的时候乱序,因此有严格的顺序的写入操作可能要使用AUTO_FLUSH_SYNC模式

具体说明如下:

/**

 * Each {@link KuduSession#apply KuduSession.apply()} call will return only after being* flushed to the server automatically. No batching will occur.** <p>In this mode, the {@link KuduSession#flush} call never has any effect, since each* {@link KuduSession#apply KuduSession.apply()} has already flushed the buffer before* returning.*  * <p><strong>This is the default flush mode.</strong>
 * 使用该模式的时候调用apply以后就直接flush,不回有批量flush的情况,该模式为默认模式*/
AUTO_FLUSH_SYNC,/*** {@link KuduSession#apply KuduSession.apply()} calls will return immediately, but the writes* will be sent in the background, potentially batched together with other writes from* the same session. If there is not sufficient buffer space, then* {@link KuduSession#apply KuduSession.apply()} may block for buffer space to be available.** <p>Because writes are applied in the background, any errors will be stored* in a session-local buffer. Call {@link #countPendingErrors() countPendingErrors()} or* {@link #getPendingErrors() getPendingErrors()} to retrieve them.** <p><strong>Note:</strong> The {@code AUTO_FLUSH_BACKGROUND} mode may result in* out-of-order writes to Kudu. This is because in this mode multiple write* operations may be sent to the server in parallel.* See <a href="https://issues.apache.org/jira/browse/KUDU-1767">KUDU-1767</a> for more* information.** <p>The {@link KuduSession#flush()} call can be used to block until the buffer is empty.
 * 1. 在该模式下,调用apply以后自动返回,写入是在后台异步进行。有可能会和同一个session里面其他的写入操作一起批量提交,如果buffer的
 * 空间不够用的话apply会被阻塞直到有可用空间。
 * 2.由于写入是后台异步操作,可以使用countPendingErrors()或者getPendingErrors()来检索错误。* 3. AUTO_FLUSH_BACKGROUND可能会导致写入的结果是乱序的,因为这个模式可能会并行写入服务器中。*/
AUTO_FLUSH_BACKGROUND,/*** {@link KuduSession#apply KuduSession.apply()} calls will return immediately, but the writes* will not be sent until the user calls {@link KuduSession#flush()}. If the buffer runs past* the configured space limit, then {@link KuduSession#apply KuduSession.apply()} will return* an error.
 * apply以后会立即返回,写操作会在flush以后执行。如果缓冲超过了配置的大小,apply则会
报错 */
MANUAL_FLUSH

这篇关于关于kudu使用的一些问题及解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046157

相关文章

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa