Impala 组件介绍


Impala Daemon

Impala 核心组件之一就是 Impala Daemon,它可以运行集群的每个Datanode节点上,进程名 impalad。

Impala Daemon 通过 impala-shell 命令行,Hue,JDBC 或者 ODBC 接受查询请求并分发任务,然后并行查询,最后将中间查询结果返回到中央协调器,由中央协调器返回最后的结果。

我们可以提交查询到任何一个 impala daemon节点,然后该节点的 impala daemon 就会作为中央协调器(coordinator node )。如果每次查询都使用同一节点作为 coordinator 那么会对节点造成很大的负载,因此建议以轮询的方式提交查询任务。

Impala daemon 与 statestore 不断通信,监控daemon 的健康状况,并确定哪些节点可以接收新工作。当任何节点做 create,alter,drop,insert,load data操作时,Impala daemon 从 catalogd 接受广播消息,这样可以减少 REFRESH 和 INVALIDATE METADATA 的调用。

Impala Statestore

Impala statestore 用来检测 Impala daemon 的健康状况,集群中只能有一个 statestoe,物理表现为 statestored,当 daemon 状态异常时,statestore 会通知其他 daemon 不再发送查询到此 daemon 。

Statestore 并不是必须的服务,它只监控 daemon 服务,即使 statestore 异常或未启动 Impala daemon 照样可以执行查询,只不过 daemon 异常时,无法通知其他 daemon 服务。Statestore 服务并不需要 HA,如果服务异常或者主机损坏可以直接重新添加一个 statestore 服务即可。

Impala Catalog Service

      Catalog 服务可以把 Impala SQL 对元数据的修改广播到所有节点。物理进程是 catalogd,同statestore 一样不需要做HA,且建议与 statestore 部署到同一节点,因为转播请求需通过 statestore 进行。Catalog 服务避免了 REFRESH 和 INVALIDATE METADATA 语句的执行。当通过 Hive 创建表、加载数据时,需要在 Impala 上手动 执行 REFRESH 或 INVALIDATE METADATA 。

使用 Impala 创建表,插入数据或者其他表修改或者表数据修改的操作时,不需要执行 REFRESH INVALIDATE METADATA 语句。如果是在 Hive操作则需要执行,但也仅需要在一台节点上执行。

默认,元数据的加载与缓存是异步的,这样 Impala 可以更及时的处理客户端请求。修改 catalogd 配置 load_catalog_in_background=false ,则会等待元数据加载完成再处理客户端请求


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值