impala

在CDH5.5.0上安装Kudu6.0

家住魔仙堡 提交于 2020-02-11 03:49:50
1. 下载安装文件: a. CSD文件:KUDU-0.6.0.jar b. kudu parcel:KUDU-0.6.0-1.kudu0.6.0.p0.334-el6.parcel和manifest.json文件 c. impala-kudu:IMPALA_KUDU-2.3.0-1.cdh5.5.0.p0.15-el6.parcel + manifest.json文件 2.将CSD文件KUDU-0.6.0.jar移到/opt/cloudera/csd下面并重启服务器 3.将KUDU-0.6.0-1.kudu0.6.0.p0.334-el6.parcel和manifest.json拷贝到私有的http服务器上的/var/www/html/kudu0.6/kudu目录下 4.进入CM编辑parcels地址,将kudu的parcels地址加进去,并点击Check New Parcels就能看到刚才的kudu的安装包,点击下载并激活 5.添加Kudu服务 6.将IMPALA_KUDU-2.3.0-1.cdh5.5.0.p0.15-el6.parcel拷贝到/opt/cloudera/parcel-repo/下面 7.生成.sha文件: sha1sum IMPALA_KUDU-2.3.0-1.cdh5.5.0.p0.15-el6.parcel | awk {'print $1'} >

Impala性能优化

折月煮酒 提交于 2020-02-10 17:47:44
  不多说,直接上干货! • 执行计划   – 查询sql执行之前,先对该sql做一个分析,列出需要完成这一项查询的详细方案   – 命令:explain sql、profile      要点:   • 1、SQL优化,使用之前调用执行计划   • 2、选择合适的文件格式进行存储   • 3、避免产生很多小文件(如果有其他程序产生的小文件,可以使用中间表)   • 4、使用合适的分区技术,根据分区粒度测算   • 5、使用compute stats进行表信息搜集   • 6、网络io的优化:     – a.避免把整个数据发送到客户端     – b.尽可能的做条件过滤     – c.使用limit字句     – d.输出文件时,避免使用美化输出   • 7、使用profile输出底层信息计划,在做相应环境优化   • 8、如果是刷新表的新增元数据要使用refresh 表名 来刷新,不要使用impala-shell -r 或 invalidate metadata   • 9、如果执行SQL的结果内容较多的话可以使用 impala-shell -B 将一些不必要的样式输出去掉 来源: https://www.cnblogs.com/zlslch/p/6785767.html

Impala 5、Impala 性能优化

亡梦爱人 提交于 2020-02-10 14:23:51
• 执行计划   – 查询sql执行之前,先对该sql做一个分析,列出需要完成这一项查询的详细方案   – 命令:explain sql、profile      要点:   • 1、SQL优化,使用之前调用执行计划   • 2、选择合适的文件格式进行存储   • 3、避免产生很多小文件(如果有其他程序产生的小文件,可以使用中间表)   • 4、使用合适的分区技术,根据分区粒度测算   • 5、使用compute stats进行表信息搜集   • 6、网络io的优化:     – a.避免把整个数据发送到客户端     – b.尽可能的做条件过滤     – c.使用limit字句     – d.输出文件时,避免使用美化输出   • 7、使用profile输出底层信息计划,在做相应环境优化   • 8、如果是刷新表的新增元数据要使用refresh 表名 来刷新,不要使用impala-shell -r 或 invalidate metadata   • 9、如果执行SQL的结果内容较多的话可以使用 impala-shell -B 将一些不必要的样式输出去掉 来源: https://www.cnblogs.com/raphael5200/p/5313494.html

Hadoop-Impala学习笔记之入门

怎甘沉沦 提交于 2020-02-10 12:49:38
CDH quickstart vm包含了单节点的全套hadoop服务生态,可从https://www.cloudera.com/downloads/quickstart_vms/5-13.html下载。如下: 对应的节点如下(不包含Cloudera Navigator): 要学习完整的hadoop生态,最好是使用8C/32GB以上的服务器,4C/16GB勉强能跑、但是很勉强(最好使用2个以上节点)。 impala 使用c++编写(Spark使用Scala编写),采用MPP架构(类似于MariaDB Columnstore,也就是之前的infinidb),由下列组件组成: Hue是一个Web智能查询分析器,能够进行语法提示,查询Impala、HDFS、HBase。如下: 其中impala服务器由Impala Daemon(执行SQL)、Impala Statestore(监控Daemon状态)、Impala Catalog(将DDL变更传输给Daemon节点,避免了DDL通过Impala执行时运行REFRESH/INVALIDATE METADATA的必要,通过Hive时,仍然需要)组成。impala-shell和mysql客户端类似,执行SQL。 Impala使用和Hive一样的元数据,其可以存储在mysql或postgresql中,称为metastore。

Is there any way to run impala shell with sql script with parameters?

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-03 08:59:27
问题 Is there any way to run impala shell with SQL script with parameters? For example: impala-shell -f /home/john/sql/load.sql /dir1/dir2/dir3/data_file I got errors: Error, could not parse arguments "-f /home/john/sql/load.sql /dir1/dir2/dir3/data_file” 回答1: No, you can specify a file of sql statements with -f , but it does not take a file of parameters. See the impala-shell documentation for more details: http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/impala_impala

Impala SQL: Merging rows with overlapping dates. WHERE EXISTS and recursive CTE not supported

徘徊边缘 提交于 2020-02-01 05:50:24
问题 I am trying to merge rows with overlapping date intervals in a table in Impala SQL. However the solutions I have found to solve this are not supported by Impala eg. WHERE EXISTS and recursive CTEs. How would I write a query for this in Impala? Table: @T ID StartDate EndDate 1 20170101 20170201 2 20170101 20170401 3 20170505 20170531 4 20170530 20170531 5 20170530 20170831 6 20171001 20171005 7 20171101 20171225 8 20171105 20171110 Required Output: StartDate EndDate 20170101 20170401 20170505

Scala版SpringBoot + Impala

こ雲淡風輕ζ 提交于 2020-01-27 04:03:13
工作需要做查询并导出数据的接口,考虑了SpringBoot + Spark 和 Impala,Spark只测试了本地模式,时间有限暂时没有测试yarn模式,但是Spark更适合做数据分析,查询Impala 是比较高效的,选择了以 Impala 做查询引擎。这里整合下 Impala 做个记录。不过因为项目有其他处理模块,所以只把Impala部分拆分出来,是完整的独立模块。 目录 @SpringBootApplication @Controller @Service Impala查询模块 @configuration Result请求结果类 Constants常量类 con.properties application.properties pom.xml 层级关系 @SpringBootApplication package com.sm import org.springframework.boot.SpringApplication import org.springframework.boot.autoconfigure.{EnableAutoConfiguration, SpringBootApplication} import org.springframework.context.annotation.ComponentScan /** * SpringBoot 入口 *

kudu :impala 和 kuduClient 的选择

一笑奈何 提交于 2020-01-25 11:00:12
1.美图 2.概述 kudu 原生对impala 做了很好的兼容,用impala可以很方便的使用sql对kudu进行操作,我们在项目中是使用了 impala 和原生 kuduClient 相结合的方式进行。 就查询来说,在我的使用过程中 impala 的查询速度要快于 kuduClient 的 scan。建议使用impala insert 的速度都很快 upsert/update/delete 如果用主键的话也都很快,但 impala 的并发性能比较差,所以这种操作尽量用 kuduClient 的原生 api 进行操作 原生 api update、delete、upsert 只能根据主键操作,如果需要其他条件则需要查询一下,拿到主键再进行操作,所以不如 impala 写 sql 方便,看具体情况吧,只要 impala 吼得住并发,或做好资源隔离。 原生 api 在操作上有些不方便,有人封装了一个简单的 spring starter ,还在完善,当然也可以把核心代码拿出来自己封装。链接:https://gitee.com/git-of-Jason/kudu-spring-boot-starter 来源: CSDN 作者: 九师兄 链接: https://blog.csdn.net/qq_21383435/article/details/103868496

Write a While loop in Impala SQL?

自作多情 提交于 2020-01-22 02:50:13
问题 What is the syntax for writing a while loop in Impala? Is it even possible to write a loop? I cant seem to declare variables and it doesn't recognize "while" as a keyword. 回答1: Impala doesn't support WHILE loops in it's syntax. References: Impala Reserved Words 来源: https://stackoverflow.com/questions/49523380/write-a-while-loop-in-impala-sql

Kudu优化

可紊 提交于 2020-01-21 19:30:35
导入数据 全量导入kudu 先用sqoop把关系数据库数据导入临时表,再用impala从临时表导入kudu目标表 注意:由于sqoop从关系型数据直接以parquet格式导入hive会有问题,这里默认hive的表都是text格式;每次导完到临时表,需要做invalidate metadata 表操作,不然后面直接导入kudu的时候会查不到数据 客户端 除了查询,建议所有impala操作都在impala-shell而不在hue上面执行 参数 memory_limit_hard_bytes :impala并发写入kudu的时候,数据量比较大的时候,kudu配置参数 memory_limit_hard_bytes能大点就大点,因为kudu写入首先保存再内存里面,到一定阀值才溢写到磁盘,这个是直接最能提高写的方法; maintenance_manager_num_threads :当然不是所有机器都有那么多资源,可以把maintenance_manager_num_threads 这个参数稍微调大,需要调试,提高数据从内存写入磁盘的效率 impala查询kudu 首先所有表做完全量的ETL操作,必须得执行compute stats 表名,不然impala执行sql生成的计划执行数评估的内存不准确,容易评估错误导致实际执行不了 kudu表最好不要做任何压缩,保证原始扫描性能发挥最好