分享
分销 收藏 举报 申诉 / 31
播放页_导航下方通栏广告

类型impala学习笔记.pdf

  • 上传人:精****
  • 文档编号:1980708
  • 上传时间:2024-05-13
  • 格式:PDF
  • 页数:31
  • 大小:5.90MB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    impala 学习 笔记 编辑 修改 word
    资源描述:
    1 概述概述1.Impala 是参照谷歌新三篇论文 Dremel 的开源实现,和 Shark、Drill 功能相似。Impala是 Cloudera 公司主导开发并开源。基于 Hive 并使用内存进行计算,兼顾数据仓库,具有实时、批处理、多并发等优点。是使用 CDH 的首选 PB 级大数据实时查询分析引擎。2.Impala 是基于 Hive 的大数据实时分析查询引擎,直接使用 Hive 的元数据库 Metadata,意味着 impala 元数据都存储在 Hive 的 metastore 中。并且 impala 兼容 Hive 的 sql 解析,实现了 Hive 的 SQL 语义的子集,功能还在不断的完善中。1.11.1 特点特点1.基于内存进行计算,能够对 PB 级数据进行交互式实时查询、分析2.摒弃了 MR 计算改用 C+编写,有针对性的硬件优化,例如使用 SSE 指令3.兼容 HiveSQL,无缝迁移4.通过使用 LLVM 来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。5.支持 sql92 标准,并具有自己的解析器和优化器。6.具有数据仓库的特性,对 hive 原有数据做数据分析。7.使用了支持 Data locality 的 I/O 调度机制。8.支持列式存储。9.支持 jdbc/odbc 远程访问。1.21.2 缺点缺点1.基于内存进行计算,对内存依赖性较大2.改用 C+编写,意味着对 C+普通用户不可见。3.基于 Hive,与 Hive 共存亡4.实践中 impala 的分区数超过一万,性能严重下降,容易出现问题。5.稳定性不如 Hive。2 配置配置共分为三种角色:Impala Catalog Server、Impala Daemon、Impala StateStore:注:Impala 没有主节点,Impala Catalog Server 和 Impala StateStore 具有主节点的功能,可当作主节点,Impala Daemon 可理解为从节点配置 impala 的内存,impala 需要内存的是 Impala Daemon,Impala 提供查询实例的是 Impala Daemon,Impala 的总内存就是 Impala Daemon 的内存总和,如果要在某台机器做汇总操作,该台机器内存需要大一些Impala 的客户端可以连 Impala Daemon 的任意一台机器,但做汇总操作可以连内存大的 Impala Daemon 的机器如果每台机器的内存大小相差不大时,可以轮询 Impala Daemon 的机器,或随机进行切换(获取机器的资源,如果某台机器的资源多,就使用这台机器发请求),可解决线程的问题和返回数据内存的问题,也可解决高并发问题。配置 State Store 的工作线程数,一般会给的高一些,给高后会快一些3 Impala 三大核心主件三大核心主件1.Statestore daemon:服务名 StateStore 1)负责收集分布在集群中各个 impalad 进程的资源信息,各节点健康状况、同步节点信息。检查 Daemon 是否活着2)负责 query 的调度.3)对于一个正常运转的集群,并不是一个关键进程.2.Catalog daemon:服务名 Catalog:1)把 impala 表的 metadata(也是 hive 的源数据表)分发到各个 impalad 中2)接收来自 statestore 的所有请求3.Impala daemon:服务名 impalad:1)接收 client、hue、jdbc 或者 odbc 请求、query 执行并返回给中心协调节点2)子节点上的守护进程,负责向 statestore 保持通信,汇报工作注:插入数据在 Daemon 上操作,操作后汇报给 StateStore 说明节点的数据变了,StateStore 发请求给 Catalog,Catalog 去同步源数据表,StateStore 进程和 Catalog 进程经常放到一台机器上。建议不要在 StateStore 进程和 Catalog 进程的机器上安装 Daemon。4 Impala 架构架构1 client 发出请求到 impalad 上(impalad 可以是随机的),impalad 可以相互通信2 catalog 与 hive 的 Metastore 进行通信,随时拿源数据,拿到的源数据再分发到各个impalad 上3 impalad 搭建在 datanode 上,因为数据就在这上面,可直接进行操作,实现数据操作本地化4 impalad 包括三个主键:Query Planner:执行计划的生成,把 sql 解析成执行计划Query Coordinator:中心协调节点,根据执行计划,将执行的任务分发到每一台机器,Query Executor:具体来执行任务5 impalad 执行完后,返回给 client5 impala shell 外部命令外部命令5.15.1 impala-shellimpala-shell -h-h 万能帮助万能帮助5.25.2 impala-shellimpala-shell -r-r 刷新整个元数据刷新整个元数据 *说明:不光刷新表结构,表内的数据也会刷新出来(包括增删改的数据),不建议使用这个命令定时刷新,如果表较多时,这个刷新需要很长时间,不得以的时候可以做整体刷新1)在 hive 中创建表 test2)在 impala 中查看表,看不到 hive 内创建的表3)刷新 impala 源数据4)查看 impala 内的表5)删除 impala 内的 test 表6)查看 hive 内的表,发现 hive 内的表也被删除了5.35.3 impala-shellimpala-shell -B-B 去格式化去格式化说明:查询大数据量时可以提高性能子命令:impala-shell-B-print_header 去格式化时显示列名impala-shell-B-output_delimiter 指定分隔符1)查看 impala 内的表,发现表外面有框,这就是被格式化的2)去格式化3)去格式化时显示列名在 hive 内查询数据在 impala 内查询5.45.4 impala-shellimpala-shell -v-v 查看版本查看版本查看 impala shell 的版本注:如果在 impala 升级时,发现 impala 和 impala shell 的版本不一致时说明升级有问题。5.55.5 impala-shellimpala-shell -f-f 执行查询文件执行查询文件 *子命令:-query_file 指定查询文件1.执行查询文件$vi testselect*from test limit 5;$impala-shell-f test2.使用子命令查询文件3.使用子命令查询结果去格式化注:测试些处用 impala-shell-B-print_header-f test.sss 命令是否能执行成功5.65.6 impala-shellimpala-shell -i-i 连接到对应的连接到对应的 impaladimpalad说明:如果在某台服务器上未安装 impalad 服务,可以连接其他服务器的 impalad 服务子命令:-impalad 指定 impalad 去执行任务-fe_port 指定备用端口5.75.7 impala-shellimpala-shell -o-o 保存执行结果到文件保存执行结果到文件 *子命令:-output_file 指定输出文件名 1.保存执行结果到文件注:测试些处用 impala-shell o result.txt-f test.sss 命令是否能执行成功2.查询结果去格式化,执行 test.sss 文件,结果保存在 result.ex 内注:测试些处用 impala-shell-B-print_header o result.txt-f test.sss 命令是否能执行成功3.查询结果去格式化,不显示列名,执行 test.sss 文件,结果保存在 result.ex 内5.85.8 impala-shellimpala-shell -u-u 指定某一用户运行指定某一用户运行 impala-shellimpala-shell子命令:-user 指定用户执行 shell 命令-ssl 通过 ssl 验证方式方式执行-ca_cert 指定第三方用户证书-config_file 临时指定配置文件注:上面未配置 kerberos,因此没有用户权限控制5.95.9 impala-shellimpala-shell -p-p 显示执行计划显示执行计划子命令:-quiet 不显示多余信息以上先显示执行结果,再显示执行计划如果执行计划显示的结果较多,可以写到文件中5.105.10 impala-shellimpala-shell -d-d 指定进入某一个数据库指定进入某一个数据库子命令:-database 指定数据库名称5.115.11其他命令其他命令q 不进入 impala-shell 执行查询-k 使用 kerberos 安全加密方式运行 impala-shell-c 忽略错误语句继续执行-l 使用 LDAP 协议进行访问6 Impala shell 内部命令内部命令6.16.1 helphelp 帮助选项帮助选项6.26.2 versionversion 查看查看 impalaimpala 版本版本6.36.3 connectconnect 连接到某个连接到某个 impaladimpalad 实例实例connect 在没在安装 impalad 的服务器上执行:6.46.4 refreshrefresh 刷新某个表元数据刷新某个表元数据 *refresh /增量刷新1.在 impala 内新建表,插入数据2.在 hive 内可查看到在 imaplaq 内新建的表,插入数据3.在 imapla 中查询,发现 hive 内新增的记录查询不到4.在 imapla 中刷新该表6.56.5 invalidateinvalidate metadatametadata 全量刷新,性能消耗较大全量刷新,性能消耗较大 *1.外部命令 impala-shell-r 就是调用内部命令 invalidate metadata2.在 hive 内创建表3.此时在 impala 内查不到该表4.在 impala 内全量刷新5.此时在 show tables;可以查看在 hive 内创建的表6.66.6 explainexplain 显示一个查询的执行计划及各步骤信息显示一个查询的执行计划及各步骤信息 *explain /该 sql 语句不会真正执行,会打出一个简单的执行计划,1.使用执行计划files 表示读取几个文件,size 表示读取多大的文件2.设置执行计划的级别,set explain_level,共四个级别,分别是 0、1、2、31)设置 3 级,最高级别2)设置 0 级,最低级别6.76.7 shellshell 不退出不退出 impala-shellimpala-shell 执行操作系统命令执行操作系统命令shell 6.86.8 profileprofile 显示查询底层信息(底层执行计划,用于性能优显示查询底层信息(底层执行计划,用于性能优化)化)*profile /在查询完成之后执行外部命令 impala-shell-p 就是调用内部命令 profile可以查看那台机器使用的内存7 Impala 的管理的管理 Impala StateStore Web UI(hadoop01):StateStore 的 web 界面StateStore:用于统计集群的健康信息、同步节点信息Catalog:用于和集群的原数据信息进行同步显示有那些数据库,那些表8 Impala 存储存储Hive 能支持的数据类型,impala 都能支持Parquet:impala 支持特别的格式,Parquet 格式是列工存储推荐用 snappy 压缩9 Impala 分区分区添加分区方式:添加分区方式:1、partitioned by:创建表时,添加该字段指定分区列表 2、使用 alter table 进行分区的添加和删除操作 create table tab_p0(id int,name string,age int)partitioned by(year int);向分区内插入数据:向分区内插入数据:insert into tab_p0 partition(year=2014)values(1,zhangsan,18),(2,lisi,23)insert into tab_p0 partition(year=2015)values(3,wangwu,22),(4,zhaoliu,28),(5,tianqi,24)注:只有 Parquet、Text 可以使用 impala 加载数据,其他格式需要在 hive 中加载数据查询指定分区数据:查询指定分区数据:select name from tab_p0 where year=2015;10Impala sql内部表删除后会把数据都删了,外部表删除后不会删除数据1.创建表创建表(内部表内部表)Impala 创建的内部表源数据也会写到 hive 内,hdfs 目录为/user/hive/warehouse如何区分 hive 和 impala 创建的表,前面用户是 impala 就是 impala 创建的表,其他用户创建的是 hive 的表 默认方式创建表:默认方式创建表:create table tab_1(id int,value string )指定存储方式:指定存储方式:1)create table tab_2(id int,value string )row format delimited fields terminated by 0 (impala1.3.1 版本以上支持0)stored as textfile;2)create table parquet_table_name(x INT,y STRING)STORED AS PARQUET;其他方式创建内部表其他方式创建内部表 使用现有表结构:create table tab_3 like tab_1;指定文本表字段分隔符:alter table tab_3 set serdeproperties (serialization.format=,field.delim=,);插入数据插入数据 直接插入值方式:insert into tab_2 values(1,hex(hello world);从其他表插入数据:insert(overwrite)into tab_3 select*form tab_2;批量导入文件方式方式:load data local inpath/xxx/xxx into table tab_1;2.创建表创建表(外部表外部表)默认方式创建表:默认方式创建表:create external table tab_p1(id int,value string )location/user/xxx.txt 指定存储方式:指定存储方式:create external table tab_p2 like parquet_tab /user/xxx/xxx/1.dat partition(year int,month tinyint,day tinyint)location/user/xxx/xxx stored as parquet;3.视图视图 创建视图:创建视图:create view v1 as select count(id)as total from tab_3;查询视图:查询视图:select*from v1;查看视图定义:查看视图定义:describe formatted v1 注意:注意:1)不能向 impala 的视图进行插入操作 2)insert 表可以来自视图(从视图查询出数据 insert 到一张表里)11数据文件处理数据文件处理 加载数据:加载数据:1、insert 语句:插入数据时每条数据产生一个数据文件,不建议用此方式加载批量数据 2、load data 方式:再进行批量插入时使用这种方式比较合适(在 hive 中 load data完,在 impala 中进行插入)(parquet 在 hive 中不能创建,在 impala 中创建 parquet 格式的表,在 hive 的一个表插入数据,在 impala 中刷新出来就有两张表了,一张是 impala 创建的 parguet 表,一张是从 hive 中刷新出来的业务数据,从有数据的 hive 表查询出来插入到impala 的 parguet 表)3、来自中间表:此种方式使用于从一个小文件较多的大表中读取文件并写入新的表生产少量的数据文件。也可以通过此种方式进行格式转换。空值处理:空值处理:impala 将“n”表示为 NULL,在结合 sqoop 使用是注意做相应的空字段过滤,也可以使用以下方式进行处理:alter table name set tblproperties(“serialization.null.format”=“null”)12impala 与与 hbase 整合整合Impala 可以通过可以通过 Hive 外部表方式和外部表方式和 HBase 进行整合,步骤如下:进行整合,步骤如下:步骤 1:创建 hbase 表,向表中添加数据create test_info,infoput test_info,1,info:name,zhangsanput test_info,2,info:name,lisi步骤 2:创建 hive 表CREATE EXTERNAL TABLE test_info(key string,name string)STORED by org.apache.hadoop.hive.hbase.HBaseStorageHandlerWITH SERDEPROPERTIES(hbase.columns.mapping=:key,info:name)TBLPROPERTIES(hbase.table.name=test_info);步骤 3:刷新 Impala 表invalidate metadata(注:hbase 里在增加数据,impala 不能刷新,直接就能查出来)13impala 与与 jdbc 整合整合package cn.crxy.impala;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;/*Created by xd on 2015/8/19.*/public class TestJDBC public static void main(String args)throws Exception Class.forName(org.apache.hive.jdbc.HiveDriver);Connection conn=DriverManager.getConnection(jdbc:hive2:/119.90.51.195:21050/;auth=noSasl,);PreparedStatement pstm=conn.prepareStatement(select count(*)from impala.bigdata limit 1);ResultSet rs=pstm.executeQuery();while(rs.next()System.out.println(rs.getString(1);rs.close();pstm.close();conn.close();注:119.90.51.195 可以是任意一台 impalad 服务器的 ip14性能优化性能优化1.执行计划 所谓执行计划,即在查询 sql 执行之前,先对该 sql 做一个分析,列出需要完成这一项查询的详细方案:命令:exlpain sql 和 profile2.性能优化要点1)SQL 优化,使用之前调用执行计划2)选择合适的文件格式进行存储3)避免产生很多小文件(如果有其他程序产生的小文件,可以使用中间表)4)使用合适的分区技术,根据分区粒度测算5)使用 compute stats 进行表信息搜集6)网络 io 的优化:a.避免把整个数据发送到客户端 b.尽可能的做条件过滤 c.使用 limit 字句 d.输出文件时,避免使用美化输出 7)使用 profile 输出底层信息计划,在做相应环境优化
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:impala学习笔记.pdf
    链接地址:https://www.zixin.com.cn/doc/1980708.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork