Impala 与 Hive 的比较

打印 上一主题 下一主题

主题 541|帖子 541|积分 1623

Impala 与 Hive 的关系

impala是基于hive的大数据分析查询引擎,直接利用hive的元数据库metadata,意味着impala元数据都存储在hive的metastore当中,并且impala兼容hive的绝大多数sql语法。以是须要安装impala的话,必须先安装hive,保证hive安装成功,并且还须要启动hive的metastore服务。
Hive元数据包含用Hive创建的database、table等元信息。元数据存储在关系型数据库中,如Derby、MySQL等。
客户端毗连metastore服务,metastore再去毗连MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时毗连,而且这些客户端不须要知道MySQL数据库的用户名和密码,只须要毗连metastore 服务即可。
nohup hive --service metastore >> ~/metastore.log 2>&1 &



功能和hive类似
由于hive特性,数据查询慢,Impala查询结果和查询效率比HIve更高
类似于MySQL等关系型数据库,可以实现实时查询
Impala是依托于HIve的,此中Hive举行数据预处理,Impala实现实时查询(Impala的元数据用的是HIve的元数据)
Impala 与 Hive 的异同

          雷同点

    数据存储:利用雷同的存储数据池都支持把数据存储于HDFS, HBase。
    元数据:两者利用雷同的元数据。
    SQL表明处理:比较相似都是通过词法分析生成执行计划。
    差别点

    执行计划:
    Hive: 依靠于MapReduce执行框架,执行计分别成 map->shuffle->reduce->map->shuffle->reduce的模型。
    (如果一个Query会 被编译成多轮MapReduce,则会有更多的写中央结果。由于MapReduce执行框架本身的特点,过多的中央过程会增加整个Query的执行时间。)
    Impala: 把执行计划表现为一棵完备的执行计划树,可以更自然地分发执行计划到各个Impalad执行查询
    数据流:
    Hive: 接纳推的方式,每一个计算节点计算完成后将数据主动推给后续节点。
    Impala: 接纳拉的方式,后续节点通过getNext主动向前面节点要数据,数据可以流式的返回给客户端
    容错:
    Hive:依靠Hadoop的容错本事,时间长
    Impala:在查询过程中,没有容错逻辑,如果在执行过程中发生故障,则直接返回错误(这与Impala的设计有关,由于Impala定位于实时查询,一次查询失败, 再查一次就好了,再查一次的成本很低)。
    适用面:
    Hive:复杂的批处理查询使命,数据转换使命
    Impala:实时数据分析
    函数用法:
    Hive:全面,符合SQL标准
    Impala:Hive中某些函数不支持,比如count(distinct)不能超过一个
    排序:
    特殊留意排序在Hive 和 Impala中的差异,null在Hive里是最大,在Impala是最小,故举行排序前,最好对空值举行预先处理
      

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表