gpt4 book ai didi

hadoop - 使元数据无效/从 spark 代码刷新 imapala

转载 作者:可可西里 更新时间:2023-11-01 14:20:55 25 4
gpt4 key购买 nike

我正在开发一个 NRT 解决方案,它要求我经常更新 Impala 表上的元数据。

目前,此失效是在我的 spark 代码运行后完成的。我想通过直接从我的 Spark 代码执行此刷新/无效来加快速度。

什么是最有效的方法?

  • Oozie 太慢了(30 秒开销?不,谢谢)
  • 对(边缘)节点的 SSH 操作似乎是一个有效的解决方案,但感觉“hackish”
  • 我也没有看到从 Spark 中的 Hive 上下文执行此操作的方法。

最佳答案

REFRESHINVALIDATE METADATA 命令特定于 Impala。
您必须连接到 Impala 守护进程才能运行它们——这会触发 Impala 特定元数据缓存的刷新 (在您的情况下,您可能只需要列表的 REFRESH每个分区中的文件,而不是批发 INVALIDATE 从头开始​​重建所有分区及其所有文件的列表)

您可以使用 Spark SqlContext 通过 JDBC 连接到 Impala 并读取 数据——但不能运行 任意命令。该死。所以你回到了基础:

  • 下载最新Cloudera JDBC driver for Impala
  • 将其安装在运行 Spark 作业的服务器上
  • 列出您的 *.*.extraClassPath 属性中的所有 JAR
  • 开发一些 Scala 代码以针对 Impala 守护进程打开 JDBC session 并运行任意命令(例如 REFRESH somedb.sometable)——困难的方法

希望 Google 能找到一些 JDBC/Scala 代码示例,例如 this one

关于hadoop - 使元数据无效/从 spark 代码刷新 imapala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38220623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com