从 Hive 或 Webhdfs 运行 Impala Refresh

Posted

技术标签:

【中文标题】从 Hive 或 Webhdfs 运行 Impala Refresh【英文标题】:Run Impala Refresh from Hive or Webhdfs 【发布时间】:2018-08-29 19:16:37 【问题描述】:

我正在使用 Imapala 上的一些表并使用 jdbc HIVE 驱动程序查询这些表。在提取数据之前,我需要在某些表上运行 Refresh(或将 Impala 配置为自动运行)。当我尝试通过 jdbc 驱动程序运行 refresh tablename 时,我不能(因为在 HIVE 中,此命令不存在 - 我认为)。我尝试编写一个简单的 impala-shell 脚本 (refresh tablename) 并使用 curl 像这样运行 curl -i -L "http://<server>:50070/webhdfs/v1/<path to sh file>?op=OPEN" 它也不起作用。有人能帮我吗? 谢谢!

【问题讨论】:

【参考方案1】:

请尝试

INVALIDATE METADATA databsename.tablename

【讨论】:

这是做什么的?一个快速的解释会让这个答案更有说服力【参考方案2】:

@Andisu :如果您想通过 Impala-Shell 进行刷新,请运行以下命令:

impala-shell -d db_NAME -q "REFRESH tablename"; 

-q:impala-shell 解释器在处理完双引号内的语句后立即退出。 如果你做了REFRESH,那意味着new data files被你添加到表的HDFS位置,所以这些文件的块位置元数据必须加载到Impala Daemon Coordinator强>。

【讨论】:

以上是关于从 Hive 或 Webhdfs 运行 Impala Refresh的主要内容,如果未能解决你的问题,请参考以下文章

webhdfs上传与读取文件

使用 hadoop 时出现错误“无法从 /webhdfs/v1/?op=LISTSTATUS:服务器错误检索数据”

如何使配置单元查询中的 max 函数忽略 _HIVE_DEFAULT_PARTITION__

WebHDFS 的 Hadoop 名称节点 URL

Oozie sqoop 任务错误:无法运行程序“hive”:错误=2 没有这样的文件或目录

jdbc连接impala