Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果无效元数据可以做同样的事情,为什么需要在Impala中刷新_Impala - Fatal编程技术网

如果无效元数据可以做同样的事情,为什么需要在Impala中刷新

如果无效元数据可以做同样的事情,为什么需要在Impala中刷新,impala,Impala,使用配置单元如果我创建一个表,在其中插入记录,并在Impala中反映同一个表,首先我必须运行InvalidateMetadata,它反映执行器上的元数据,还显示新添加的记录。 那么我的问题仍然是为什么我们需要刷新表?使元数据无效和刷新是对应的: 使元数据无效是一种异步操作,它 从目录和协调器缓存中丢弃加载的元数据。 在该操作之后,目录和所有Impala协调员 只知道数据库和表的存在,什么都不知道 更多表的元数据加载由任何后续操作触发 查询 刷新同步重新加载元数据刷新更多 轻量级,而不是在创建表

使用配置单元如果我创建一个表,在其中插入记录,并在Impala中反映同一个表,首先我必须运行InvalidateMetadata,它反映执行器上的元数据,还显示新添加的记录。
那么我的问题仍然是为什么我们需要刷新表?

使元数据无效
刷新
是对应的:

  • 使元数据无效
    是一种异步操作,它 从目录和协调器缓存中丢弃加载的元数据。 在该操作之后,目录和所有Impala协调员 只知道数据库和表的存在,什么都不知道 更多表的元数据加载由任何后续操作触发 查询
  • 刷新
    同步重新加载元数据<代码>刷新更多 轻量级,而不是在创建表后进行完全元数据加载 无效<代码>刷新无法检测由诸如HDFS平衡器之类的操作触发的块位置更改(如
    使元数据无效
    所做的),因此导致远程 在查询执行期间进行读取,但会对性能产生负面影响

    在使特定表无效后使用
    刷新
    ,以分隔 从针对该表运行的第一个查询加载元数据

====


在Impala之外、配置单元和其他配置单元客户端(如SparkSQL)中进行以下更改时,需要使用
使元数据无效

  • 现有表的元数据将发生更改
  • 添加了新表,黑斑羚将使用这些表
  • 服务器或数据库级别的Sentry权限从 在黑斑羚之外
  • 阻止元数据更改,但文件保持不变(HDFS 再平衡)。UDF罐子改变了
  • 某些表不再查询,您希望删除它们的 目录和协调器缓存中的元数据以减少内存 要求
impalad进行更改时不需要
使元数据无效

有关更多详细信息,请阅读