在Hadoop大数据系统当中,大数据量的查询,往往涉及到两个功能组件,Hive和Impala,这两者都基于Hadoop系统,在数据查询任务上各有不同的侧重面,根据实际的业务需求可以分别使用或结合使用。下面我们就来了解一下大数据量查询Hadoop功能组件的相关介绍。
总的来说,Impala与Hive之间,有共同之处,也有不同之处,但是总体来说都是为数据查询任务服务。
Impala与Hive,都具有数据表元数据、ODBC/JDBC驱动、SQL语法、灵活的文件格式、存储资源池等,但是两者支持的数据查询任务是有不同偏向的,Hive适合于长时间的批处理查询分析,对于数据查询的即时性要求是不能满足的,而Impala适合于实时交互式SQL查询,主要就是快速查询验证数据。
在数据存储上,两者都使用相同的数据池,将数据存储与HDFS或HBase,不同之处在于,Hive需要依赖于MapReduce执行操作,因此数据查询操作需要更多的时间,Impala则是把查询任务分给各个Impalad执行查询,因此有更好的并发性。
在数据流上,Hive采用推的方式,每一个计算节点计算完成后将数据主动推给后续节点,因此需要调动一连串的操作行为。而Impala采用拉的方式,后续节点通过getNext主动向前面节点要数据,且只要一条数据处理完,就能展现出来,有更高的即时交互性能。
在内存使用上,Hive在执行过程中如果内存放不下所有数据,则会使用外存,以保证Query能顺序执行完。而Impala:在遇到内存放不下数据时,会直接返回错误,目前来说在数据查询处理上有一定的限制。
在任务调度上,Hive任务调度依赖于Hadoop的调度策略。而Impala的任务调度由自己完成,主要依靠simple-schedule调度器,目前还比较局限。
关于大数据量查询Hadoop系统的查询功能组件,Hive和Impala都是不可或缺的,需要根据实际的数据查询任务来综合运用,这也是作为大数据开发工程师,在平台开发当中需要考虑的重要问题之一。成都加米谷大数据,大数据技术分享,专业大数据培训,更多课程详情可联系客服了解!