您的位置:

impala的java开发(java开发IM)

本文目录一览:

impala为什么比hive快

Impala自称数据查询效率比Hive快几倍甚至数十倍,它之所以这么快的原因大致有以下几点:

真正的MPP查询引擎。

使用C++开发而不是Java,降低运行负荷。

运行时代码生成(LLVM IR),提高效率。

全新的执行引擎(不是Mapreduce)。

在执行SQL语句的时候,Impala不会把中间数据写入到磁盘,而是在内存中完成了所有的处理。

使用Impala的时候,查询任务会马上执行而不是生产Mapreduce任务,这会节约大量的初始化时间。

Impala查询计划解析器使用更智能的算法在多节点上分布式执行各个查询步骤,同时避免了sorting和shuffle这两个非常耗时的阶段,这两个阶段往往是不需要的。

Impala拥有HDFS上面各个data block的信息,当它处理查询的时候能够在各个datanode上面更均衡的分发查询。

另外一个关键原因是,Impala为每个查询产生汇编级的代码,当Impala在本地内存中运行的时候,这些汇编代码执行效率比其它任何代码框架都更快,因为代码框架会增加额外的延迟。

为什么Impala要使用C++语言,而不是Java

Impala的最大特点也是最大卖点就是它的快速

因为c++直接编译成机器指令的,执行效率相对java要高一些,java是在jvm虚拟机里运行的,效率相对c++要低一些。

就好比苹果手机和android手机一样,android用java开发的app体验总的来说流畅度还是没有objective-c、swift编写的app(objective-c、swift也是编译成机器指令的)好

为什么Impala要使用C++语言,而不是Java?

Impala的最大特点也是最大卖点就是它的快速

因为c++直接编译成机器指令的,执行效率相对java要高一些,java是在jvm虚拟机里运行的,效率相对c++要低一些。

就好比苹果手机和android手机一样,android用java开发的app体验总的来说流畅度还是没有objective-c、swift编写的app(objective-c、swift也是编译成机器指令的)好