我正在使用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"
它也不起作用。有人能帮我吗?谢谢!
请试试
INVALIDATE METADATA databsename.tablename
@Andisu:如果你想通过Impala-Shell进行刷新,那么运行以下命令:
impala-shell -d db_NAME -q "REFRESH tablename";
-q:在双引号内处理语句后,impala-shell解释器立即退出。如果您执行REFRESH,这意味着您将new data files
添加到表的HDFS位置,因此必须将这些文件的块位置元数据加载到Impala Daemon Coordinator。