impala的基本介绍
impala是 cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具。
impala是基于hive并使用内存进行计算,兼顾数据仓库,具有实时,批处理,多并发等优点。
impala与hive的关系
impala是基于hive的大数据分析查询引擎,直接使用hive的源数据库metadata,意味着impala元数据都存储在hive的metastore当中,并且impala兼容hive的绝大多数sql语法。所以安装impala,先安装hive,并且要启动hive的metastore服务。
hive元数据包含hive创建的database、table等元信息。元数存储在关系型数据库中,如Derby、MySQL等。
客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。
Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询。可以先使用hive进行数据转换处理,之后使用Impala在Hive处理后的结果数据集上进行快速的数据分析。
impala与hive的异同
impala与hive都是建构在Hadoop之上的数据查询工具各有不同的侧重适用面,但从客户端使用来看impala和hive有很多共同之处,如数据表元数据、ODBC/JDBC驱动、SQL语法、灵活的文件格式、存储资源池等。
但是impala与hive最大的区别是:没有使用MapReduce进行并行计算。impala把整个查询分成执行计划树,而不是一连串的MapRed