『壹』 impala可以获取hdfs目录下的数据吗
如果和数据block不在同一个host上,那么就是使用HDFSDataTransaferProtocol(不是正式的命名,意会即可)来读,也就是一个二进制协议走TCP链接。
如果是在同一个host上,那么是利用了HDFS中"short-circuit local reads"技术。简单来说,从DataNode那边获取到所需数据的Meta信息,然后直接通过系统调用open/read来读取。
『贰』 impala 理论
impala介绍
Cloudera Imapala是一款开源的MPP架构的SQL查询引擎,它提供在hadoop环境上的低延迟、高并发的BI/数据分析,是一款开源、与Hadoop高度集成,灵活可扩展的查询分析引擎,目标是基于SQL提供高并发的即席查询。
与其他的查询引擎系统(如presto、spark sql、hive sql)不同,Impala基于 C++ 和Java编写,支持Hadoop生态下的多种组件集成(如HDFS、HBase、Metastore、YARN、Sentry等),支持多种文件格式的读写(如Parqeut、Avro、RCFile等)。
标准的mpp架构,massively-parallel query execution engine,支持在上百台机器的Hadoop集群上执行快速查询,对底层的存储系统解耦,不像数据库要求那么严格,不同的底层存储可以联合查询。
impala在大数据应用处于什么环节及作用
impala在大数据应用领域中处于数据分析环节,利用mpp架构实现高效数据查询,下游应用系统使用impala也比较多,尤其在应用集市查询数据仓库的时候使用的较多。
impala架构体系
impala由statestore、catalog、impala daemon(impalad)组成。
impala任务执行流程
impala支持的文件格式
Impala可以对Hadoop中大多数格式的文件进行查询,通过create table和insert的方式将一部分格式的数据加载到table中,但值得注意的是,有一些格式的数据它是无法写入的(write to),对于Impala无法写入的数据格式,通常是通过Hive建表,使用Hive进行数据的写入,然后使用Impala来对这些保存好的数据执行查询操作。
impala与hive对比
impala数据类型
海汼部落原创文章,原文链接:(http://hainiubl.com/topics/75548)