Impala小复习

Apache Impala

  • Impala是个实时的查询工具,与hive相比,减少了YARN资源申请时间和MR计算过程的Shuffle
  • Hive计算,SQL语句解析编译成MR程序,提交到YARN上运行
    Impala,SQL语句不再转化成MR程序执行,而是编译成执行计划树
  • Hive和Impala拥有相同的一套元数据,也可以理解成Impala直接使用Hive的元数据库
  • Impala适用于实时查询的场景、hive适用于离线批处理场景
  • 数据流方面,hive中前一个计算节点计算完成后将数据主动退给后一个节点。impala中,后续节点通过getNext主动向前面一个节点要数据。
  • 内存方面,数据在内存中存不下的时候,hive会把数据shuff到寸。而impala会直接返回错误,不会存储到外存

Impala架构

写SQL、查询数据的软件
Impala 由Impalad、State Store、Catalogd、CLI四部分组成
在这里插入图片描述

Impala集群部署

Impalad(Impalad Server)可以部署多个不同机器Node上,通常与DataNode部署在同一个节点,方便数据本地计算(目的是减少网络传输),负责具体执行本次查询SQL的Impalad称之为Coordinator协调者,每个Impalad都可以对外提供服务

State Store保存Impalad的状态信息,监视健康状态

Catalogd:元数据维护的网关,负责跟hive的元数据进行交互,同步hive的元数据到impala自己的元数据中

CLI:用户操作Impala的方式(impala shell、jdbc、api)

Impala查询处理流程

  • Impalad分为java前端(接收解析sql编译成执行计划树),c++后端(负责具体的执行计划树操作)
  • CLI SQL
    → Impalad(Coordinator解析者)
    →java前端解析SQL编译成执行计划树
    →以Thrift数据格式返回给C++后端
    →根据执行计划树、数据所在路径(libhdfs和hdfs交互)、impalad状态分配执行计划查询
    →汇总查询结构
    →返回给CLI

impala

  • impala的启动
    service impala-state-store start
    service impala-catalog start
    service impala-server start

  • impala的日志默认目录:var/log/impala

  • 关闭impala服务,把命令中的start改成stop即可。

  • 判断进程启动状态ps -ef|grep impala

  • 如果关闭之后进程依然驻留,可以采取:rm -rf /tmp/hsperfdata_impala/jps_进程号

  • impalad的管理界面:2500端口

  • state-store的管理界面:25010端口

  • impala外部命令
    不需要打开交互命令行,需要impala-shell 加参数启动
    impala-shell -h 打开帮助手册
    impala-shell -r 连接hive做元数据的更新
    impala-shell -i yangjjhost03 指定连接
    impala-shell -f 文件路径, 执行文件中的SQ语句L
    impala-shell -q " 要执行的SQL语句"
    impala-shell -o 保存执行结果到文件中

  • impala内部命令
    impala-shell

connect yangjjhost03;
refresh dbname.tablename 增量刷新,主要用于刷新hive当中数据表里面的数据改变的情况
invalidate metadata 全量数显,主要用于hive当中新建数据库或者数据库表的时候进行刷新
impala元数据发生变化时,会自动更新hive元数据,hive元数据发生变化时,不能主动同步到impala元数据库

  • Impala Sql 语法

drop database dbname cascade;
级联删除,不为空的数据库也会被删除
insert into table;
insert overwrite into table; 会清掉表中原有数据,新插入一条记录
describe tablename;desc formatted tablename;
truncate table删除表数据,保留表结构
order by 子句根据一个或多个列以升序或降序对数据进行排序。默认情况下,一些数据库按升序对查询结果进行排序。如果我们使用NULL FIRST,表中的所有空值都排列在顶行;如果我们使用NULL LAST,包含空值的行将最后排列
select查询的result中的行从0开始
在这里插入图片描述
insert into table tablename () values();
insert into table tablename select…from…;
create table tablename as select…from …;

. impala api编程

  • 下载需要的jar包https://www.cloudera.com/downloads/connectors/impala/jdbc/2-6-20.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值