如何在 Java 中对 Hive 进行异步调用?

2024-03-03

我想以异步方式在服务器上执行 Hive 查询。 Hive 查询可能需要很长时间才能完成,因此我不想阻止调用。我目前正在使用 Thirft 进行阻塞调用(在 client.execute() 上阻塞),但我还没有看到如何进行非阻塞调用的示例。这是阻止代码:

        TSocket transport = new TSocket("hive.example.com", 10000);
        transport.setTimeout(999999999);
        TBinaryProtocol protocol = new TBinaryProtocol(transport);
        Client client = new ThriftHive.Client(protocol);
        transport.open();
        client.execute(hql);  // Omitted HQL

        List<String> rows;
        while ((rows = client.fetchN(1000)) != null) {
            for (String row : rows) {
                // Do stuff with row
            }
        }

        transport.close();

上面的代码缺少 try/catch 块以保持简短。

有谁知道如何进行异步调用? Hive/Thrift 可以支持吗?有没有更好的办法?

Thanks!


AFAIK,在撰写本文时 Thrift 不会生成异步客户端。原因如此链接中所解释here http://jnb.ociweb.com/jnb/jnbJun2009.html(“异步”的搜索文本)是 Thrift 是为假设延迟较低的数据中心而设计的。

不幸的是,正如您所知,调用和结果之间经历的延迟并不总是由网络引起的,而是由正在执行的逻辑引起的!我们从 Java 应用程序服务器调用 Cassandra 数据库时遇到这个问题,我们希望限制总线程数。

摘要:现在您所能做的就是确保您有足够的资源来处理所需数量的阻塞并发线程,并等待更有效的实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Java 中对 Hive 进行异步调用? 的相关文章

  • 将键与多个值对象关联的有效集合[重复]

    这个问题在这里已经有答案了 有任何有效的集合可以将键与多个值关联起来 例如 new HashMap
  • selenium 2.0 中的 isElementPresent

    大家好 我正在使用 webdriver 所以如果我想使用 selenium s rc 函数 isElementPresent 我必须模拟 selenium rc 所以我会执行以下操作 import org openqa selenium B
  • Eclipse 与 IntelliJ 热部署

    我的应用程序配置 Tomcat 8 Spring Spring MVC Hibernate 在 Eclipse 中 我创建了 Tomcat 服务器 并将我的应用程序添加到资源中 JSP JS CSS 和 JAVA 类热部署的工作原理就是这样
  • Java中如何对对象数组进行排序?

    我的数组不包含任何字符串 但它包含对象引用 每个对象引用都通过 toString 方法返回名称 id 作者和发布者 public String toString return name n id n author n publisher n
  • 在 Spring Webflux 中执行阻塞 JDBC 调用

    我使用 Spring Webflux 和 Spring data jpa 使用 PostgreSql 作为后端数据库 我不想在进行数据库调用时阻塞主线程 例如find and save 为了实现同样的目标 我有一个主调度程序Controll
  • Java:将二维字符串数组打印为右对齐表格

    是什么best打印a的单元格的方法String 数组作为右对齐表 例如 输入 x xxx yyy y zz zz 应该产生输出 x xxx yyy y zz zz 这似乎是一个should能够完成使用java util Formatter
  • 如何对 jar 文件资源使用 File.separator?

    我正在尝试读取位于 jar 文件中的属性文件 我想使用 File separator 因为应用程序将在多个平台上运行 我正在构建路径如下 jarFilePath jar file jarFile getAbsolutePath jarPro
  • 使用 SSL 和代理设置的 Rest 客户端获取连接超时

    我正在使用带有忽略 ssl 的 Rest 客户端 它工作正常 但在将来我尝试使用客户端证书进行的生产中将无法工作 我有 ca 证书和客户端证书 我用它创建了一个客户端 但我收到错误 Exception in thread main com
  • Android Studio:如果设置项目的背景颜色,ListView OnClick 动画将不起作用

    在我的项目中 我在 ListView 内设置了项目 由插入 ConstraintLayout 中的多个元素组成 的背景颜色 但如果背景颜色不是至少一点透明 则单击和长按的默认动画会消失 事实上 随着透明度的降低 点击元素的效果越来越不明显
  • Mockito mockStatic 无法解析符号

    我正在使用 Spring Boot 并在单元测试中 我试图模拟Files delete myFile toPath method 为此 我尝试使用Mockito mockStatic 方法 但是当我尝试使用它时 我的 IDE Intelli
  • 如何在 PuTTY 中保存并运行 Java 文件?

    我是 AWS 亚马逊网络服务 的新手 所以这可能是一个基本问题 我在 AWS 上创建了一个 EC2 实例 我有一台 Windows 计算机 因此我使用 PUTTY 来连接 Linux 实例 连接到我的 EC2 实例后 我使用以下命令编写 J
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • 从侦听器中修改 JFrame [重复]

    这个问题在这里已经有答案了 可能的重复 如何在框架可见后调用 setUndecorated https stackoverflow com questions 875132 how to call setundecorated after
  • Xamarin 无法从异步获取实例

    我编写了一个通过蓝牙连接到 ESP32 的 Xamarin Forms 应用程序 现在我想从 MainPage xaml 页面的 CustomControl JoystickControl 获取值 我已经这样尝试过了 MainPage xa
  • 尝试通过 Java 8 中的 JDBC-ODBC 连接到 .accdb 文件时出现 ClassNotFoundException

    我正在 Eclipse EE IDE 中的 Java 项目中工作 我必须在其中查询 accdb文件 问题是当我尝试加载驱动程序然后连接到数据库时 它给了我一个异常错误 My code try String filePath myfilepa
  • 可空日期列合并问题

    我在 Geronimo 应用程序服务器上使用 JPA 和下面的 openjpa 实现 我也在使用MySQL数据库 我在更新具有可为空 Date 属性的对象时遇到问题 当我尝试合并 Date 属性设置为 null 的实体时 不会生成 sql
  • Zookeeper 未启动,nohup 错误

    我已经下载了zookeeper 3 4 5 tar gz 解压后我将conf zoo cfg写为 tickTime 2000 dataDir var zookeeper clientPort 2181 现在我尝试通过 bin zkServe
  • Spring Data MongoDB 和批量更新

    我正在使用 Spring Data MongoDB 并且想要执行批量更新 就像此处描述的那样 http docs mongodb org manual reference method Bulk find update Bulk find
  • “mvn”不被识别为内部或外部命令、可操作程序或批处理文件

    可能是之前问过问题 但我发现了非常奇怪的错误 当我跑步时mvn versionbin 中的命令给出了版本和其他信息 但是 当我跑到垃圾箱外面时 它会出现异常 下面提到的结果 C Program Files apache maven 3 0
  • Hive - 线程安全的自动递增序列号生成

    我遇到一种情况 需要将记录插入到特定的 Hive 表中 其中一列需要是自动递增的序列号 即在任何时间点都必须严格遵循 max value 1 规则 记录从许多并行的 Hive 作业插入到这个特定的表中 这些作业每天 每周 每月批量运行 现在

随机推荐

  • 从 C DLL 到 .NET 的接口

    我有一个用 C 编写的遗留 DLL 我想从 C NET 应用程序调用它 问题是 C DLL 的 DLL 接口相当复杂 是这样的 declspec dllexport void stdcall ProcessChunk void p proc
  • 如何在 Mac OS X Snow Leopard 中运行 XUL 应用程序?

    我正在尝试在 Mac OS X 中创建 XUL Hello World 应用程序 我从以下位置下载 XULRunnerhere http releases mozilla org pub mozilla org xulrunner rele
  • 从使用 (WHERE) 条件选择的行中获取上一行和下一行

    例如我有这样的说法 my name is Joseph and my father s name is Brian 该语句按单词拆分 如下表 ID word 1 my 2 name 3 is 4 Joseph 5 and 6 my
  • JAX-RS 中必需的 @QueryParam(以及在缺少 @QueryParam 时该怎么做)

    我部署了一个网络服务组件JBoss 应用服务器 7使用RETEasy JAX RS执行 是否有注释可以声明必需的 强制的 查询参数参数在JAX RS 如果没有 处理缺少此类参数的情况的 标准 方法是什么 当使用所有强制参数正确调用时 我的
  • 亚马逊 EC2 延迟

    同一区域中一对 Amazon EC2 实例之间的简单连接的预期延迟是多少 Thanks 延迟应类似于同一 LAN 中两台计算机的延迟 只需确保在连接两个映像时使用的是私有 IP 而不是公共 IP
  • Java ProcessBuilder:引号内有空格

    我正在使用 ProcessBuilder 运行 FFMPEG 来转换和标记我的一些 MP3 文件 在 bat 文件中手动使用以下内容可以按预期工作 E Dokumente workspace MusicBot ffmpeg bin ffmp
  • 使用scrapyd部署项目出错

    我的项目文件夹中有多个蜘蛛 并且希望立即运行所有蜘蛛 因此我决定使用 scrapyd 服务运行它们 我开始这样做是因为看到here http scrapy readthedocs org en 0 7 topics scrapyd html
  • Django - URL 模式正则表达式不匹配带重音的字符串参数

    我在将带重音符号的字符串参数传递到 Django 应用程序时遇到一些问题 我有以下网址模式 url r galeria P
  • openpyxl - 覆盖数据表并保留数据透视表

    我已经看到了这个问题的一些答案 但没有一个有效 例如 如何使用 openpyxl 写入现有 Excel 文件而不破坏公式 https stackoverflow com questions 20262448 how to write to
  • 如何关闭selenium运行时弹出的窗口?

    我想关闭弹出窗口 已知窗口名称 然后返回到原始窗口 我该怎么办 如果我无法获得窗口中关闭按钮的常量 那么有什么一般行为可以达到目标吗 使用WebDriver 用Java显示 你可以做这样的事情 instantiate your driver
  • .NET 中“托管”资源与“非托管”资源是什么意思?

    NET 中术语托管资源和非托管资源是什么意思 他们是如何出现的 术语 非托管资源 通常用于描述某些事物不直接受垃圾收集器控制 例如 如果您打开到数据库服务器的连接 这将使用服务器上的资源 用于维护连接 以及客户端计算机上可能的其他非 net
  • Integer.Parse 与 CInt

    基本上这两个我都用过Integer Parse and CInt https msdn microsoft com en us library s2dy91zy aspx在我的大多数日常编程任务中 但我对两者之间的区别有点困惑 有什么区别I
  • 跨子域的 ASP.NET 身份 Cookie

    对于表单身份验证 我在 web config 中使用了它 注意域属性
  • 使用 golang.org/x/oauth2 进行 golang Facebook 身份验证

    我正在尝试使用以下方法编写一个简单的程序golang org x oauth2包裹 但我似乎无法用代码交换访问令牌 以下错误有点误导 因为它表示授权代码已被使用 但每次调用登录对话框时我都会看到一个新代码 我是 golang 新手 我可能会
  • 诊断“请求超时”HttpExceptions 有进展吗?

    我遇到了与这篇文章中描述的相同的问题 诊断 请求超时 HttpException https stackoverflow com questions 441792 diagnosing request timed out httpexcep
  • 如何在 jqGrid 处理之前更改从服务器接收的数据

    我想要实现的场景 我从服务器检索一些数据 我循环数据并添加 更改某些字段的值 数据显示在网格中 用户在本地编辑数据 完成后 用户将整个网格数据提交到服务器 我如何尝试实现它 我做了一个 jqGridloadonce true editurl
  • 按优先级和组值对结果进行排序,然后过滤结果

    这是我的 DynamoDB 当前数据 我的目标是创建一个查询 该查询过滤组集中的结果 类似于 默认 然后按优先级排序 然后将结果过滤到loggedIn true和status idle的结果 在 SQL 中它会是这样的 SELECT FRO
  • 如何使用 JavaScript 防止屏幕休眠

    我有一个用例 我们不希望正在进行测试的用户在测试时睡眠超时 即 3 小时 我正在查看 nosleep js 但我遇到了 cpu 过度使用问题 因为它在 Windows 中无法工作 我想知道考试应用程序是如何做到这一点的 以及 YouTube
  • 如何在詹金斯中替换摩卡UTF8复选标记符号

    当我在詹金斯中运行摩卡测试时 在控制台输出上我可以看到 而不是 检查标记 utf 8 字符 如何将这些符号替换为人类可读的格式 修改默认报告者 最简单的方法 修改默认报告者 https github com mochajs mocha bl
  • 如何在 Java 中对 Hive 进行异步调用?

    我想以异步方式在服务器上执行 Hive 查询 Hive 查询可能需要很长时间才能完成 因此我不想阻止调用 我目前正在使用 Thirft 进行阻塞调用 在 client execute 上阻塞 但我还没有看到如何进行非阻塞调用的示例 这是阻止