Impala交互式查询工具

概述

是什么

开源的、针对HDFS和HBASE的PB级别数据的交互式实时查询工具

Impala与Hive对比优势

总结:在一定数据量下,查询速度快。避免了MR引擎的弊端,采用MMP数据库技术
1、避免数据落磁盘
2、处理进程无需每次启动
3、Impala默认不会对数据排序

缺点

数据量不能过大
资源不能通过YARN统一资源管理调度

适用场景

Hive:复杂的批处理查询任务,离线分析
Impala:实时数据分析,它不能取代Hive,它可以与Hive配合使用

安装

安装Hadoop、Hive

HDFS:Impala数据直接存储在hdfs
Hive:Impala直接使用Hive的元数据管理数据

准备Impala所有依赖包

linux121机器安装httpd服务器,所有节点修改/etc/yum.repos.d配置指定访问的yum源

  • yum install httpd -y
  • systemctl start httpd
  • 下载并解压clouderaa提供的rpm包
  • 创建软链接到/var/www/html
  • 修改yum源配置文件
cd  /etc/yum.repos.d
vim  local.repo

[local]

name=local

baseurl=http://linux121/cdh57/

gpgcheck=0

enabled=1
  • 配置文件对其他节点进行分发

安装Impala

集群规划

  • linux121:impala-server
  • linux123:impala-server
  • linux123:impala-catalog、impala-statestored、impala-server

yum下载

  • linux121:yum install impala-server -y
  • linux122:yum install impala-server -y
  • linux123: yum install impala -y yum install impala-server -y yum
    install impala-state-store -y yum install impala-catalog-y yum
    install impala-shell-y

配置Impala

配置hive-site.xml并分发

  • hive.metastore.uris
  • hive.metastore.client.socket.timeout

创建短路读取本地中转站

  • mkdir -p /var/lib/hadoop-hdfs
  • 修改权限:chown -R root:root /var/lib/hadoop-hdfs

配置hdfs.xml并分发

  • dfs.client.read.shortcircuit
  • dfs.domain.socket.path
  • dfs.datanode.hdfs-blocks-metadata.enabled
  • dfs.client.file-block-storage-locations.timeout
  • dfs.permissionsenabled

启动Hadpop集群

引入HDFS、Hive配置

  • ln -s /自己的路径/hadoop-2.9.2/etc/hadoop/core-site.xml
    /etc/impala/conf/core-site.xml
  • ln -s /自己的路径/hadoop-2.9.2/etc/hadoop/hdfs-site.xml
    /etc/impala/conf/hdfs-site.xml
  • ln -s /自己的路径/hive-2.3.7/conf/hive-site.xml
    /etc/impala/conf/hive-site.xml

impala自身配置

  1. vim /etc/default/impala

    IMPALA_CATALOG_SERVICE_HOST=linux123
    IMPALA_STATE_STORE_HOST=linux123

  2. 所有节点创建mysql驱动包

  • mkdir -p /usr/share/java

  • ln -s /自己路径/hive-2.3.7/lib/mysql-connector-java-5.1.46.jar /usr/share/java/mysql-connector-java.jar

修改bigtop的java_home路径

vim /etc/default/bigtop-utils

消除影响

  • rm -rf /usr/bin/hadoop
  • rm -rf /usr/bin/hdfs
  • rm -rf /usr/bin/hive
  • rm -rf /usr/bin/beeline
  • rm -rf /usr/bin/hiveserver2

source /etc/profile

启动Impala

linux123

  • service impala-state-store start
  • service impala-catalog start
  • service impala-server start

其他节点

  • service impala-server start

架构原理

组件

impalad

负责读取数据,接受来自impala-shell、JDBC等查询请求,与其他impalad完成分布式并行查询任务,并把结果返回中心协调者

statestored

监控集群中Impalad的健康状况,并将集群健康信息同步给Impalad

catalogd

负责把元数据同步给其他Impalad

查询流程

1、Client提交任务
2、生成单机和分布式执行计划
单机SQl优化
Join顺序改变、谓词下推
分布式
大表之间 Hash join
大表与校表之间 Broadcast join
3、任务调度和分发
4、Fragment之间的数据依赖
5、结果汇总
6、获取结果

优化

负载均衡

  1. 安装haproxy
  2. 配置文件 vim /etc/haproxy/haproxy.cfg

listen impalashell

  bind 0.0.0.0:25003#haproxyIP
  mode tcp#4
  option tcplog
  balance roundrobin

  server impalashell_1 linux121:21000 check

  server impalashell_2 linux122:21000 check

  server impalashell_3 linux123:21000 check

listen impalajdbc

  bind 0.0.0.0:25004#haproxyIP
  mode tcp#4
  option tcplog
  balance roundrobin

  server impalajdbc_1 linux121:21050 check

  server impalajdbc_2 linux122:21050 check

  server impalajdbc_3 linux122:21050 check
  • 开启:service haproxy start

基本优化策略

  • 文件格式:Parquet
  • 避免小文件
  • 合理分区粒度,分区类型最好是整数类型
  • 减少传输客户端数据
  • explain,分析执行计划
  • impala join 自动优化
  • 获取表的统计指标

java开发

jar包

hadoop-common
hive-common
hive-metastore
hive-service
hive-jdbc
hive-exec

使用

impala-shell

  • 刷新元数据:impala-shell -r
  • 指定SQL查询文件:impala-shell -f
  • 连接impalad主机:impala-shell -i
  • 保存执行结果到文件中:impala-shell -o

查看执行计划

expalin:可以不真正执行任务,只展示任务的执行计划
profile:需要任务执行完成后调用,更偏重底层、更详细

impala-sql

impala导入数据

  • insert into values
  • insert into select
  • create table as select
  • load data 方式不建议使用,可以先把数据加载到hive
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值