Impala为存储在Apache Hadoop中的数据,提供了高性能和低延迟的SQL查询。 使用Impala,您可以实时查询数据。

背景信息

Impala使用与Apache Hive相同的元数据、SQL语法(Hive SQL)和ODBC驱动程序等,为面向批处理或实时查询提供了一个熟悉且统一的平台。

Impala架构

为了避免延迟,Impala没有使用MapReduce,而是使用分布式查询引擎直接访问数据,该引擎与RDBMS中的查询引擎相似,其性能比Hive快了几个数量级,具体取决于查询和配置的类型。其架构图如下图所示:Impala

Impala的详细信息,请参见Apache Impala

Impala组件

Impala组件如下:
  • Impala Daemon

    Impala的核心组件是运行在各个节点上的Impala Daemon,进程名为Impalad,负责读取和写入数据文件,接收从impala-shell、Hue、JDBC和ODBC等接口发送的查询语句,并行查询语句和分发工作任务到集群的各个Impala节点上,同时负责将本地计算好的查询结果发送回协调器节点(Coordinator Node)。

  • StateStore Daemon

    Statestore服务对应的进程名为Statestored,负责管理集群中所有Impalad进程的健康状态,并将状况结果转发到所有Impalad进程。当某一个Impalad进程由于节点异常、网络异常或软件问题等导致节点不可用时,StateStore确保将状况结果通知其他Impalad进程,当有新的查询请求时,Impalad进程将不会发送查询请求到该不可用的节点。

  • Catalog Daemon

    Catalog服务对应的进程名为Catalogd,负责将每个Impalad进程上的元数据变动同步到集群内其他Impalad进程。由于所有的请求都是通过StateStore进程传递的,所以建议StateStore和Catalog运行在同一个节点上。

入门指导