从 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的主要内容,如果未能解决你的问题,请参考以下文章
使用 hadoop 时出现错误“无法从 /webhdfs/v1/?op=LISTSTATUS:服务器错误检索数据”
如何使配置单元查询中的 max 函数忽略 _HIVE_DEFAULT_PARTITION__