1. impala(官网

  • 实时交互SQL大数据查询工具
  • 它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。
  • Impala的最大特点也是最大卖点就是它的快速。
  • Impala完全抛弃了Hive+MapReduce这个不太适合做SQL查询的缓慢范式
  • 通过使用与商用并行关系数据库中类似的分布式查询引擎,可以直接从HDFS或HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟

2. Hive 与 impala

  • Impala与Hive都是构建在Hadoop之上的数据查询工具各有不同的侧重适应面
  • 但从客户端使用来看Impala与Hive有很多的共同之处,如数据表元数据、ODBC/JDBC驱动、SQL语法、灵活的文件格式、存储资源池、用户界面(Hue Beeswax)等
  • Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询

可以先使用hive进行数据转换处理,之后使用Impala在Hive处理后的结果数据集上进行快速的数据分析。

官方文档

3. impala 和hive 语法和数据基本相通

1)invalidate metadata;

可以把hive元数据(数据)刷新同步过来

2)更多sql不同参考

3)impala的jdbc接口

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class UpdateMeta
{
static String JDBC_DRIVER = "com.cloudera.impala.jdbc41.Driver";
static String CONNECTION_URL = "jdbc:impala://192.168.0.22:21050/db_1"; ### jdbc:impala://域名/数据库 public static void main(String[] args)
{
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null; try
{
Class.forName(JDBC_DRIVER);
con = DriverManager.getConnection(CONNECTION_URL);
ps = con.prepareStatement("select max(dtime),count(dtime) from achi");
rs = ps.executeQuery();
while (rs.next())
{
System.out.println(rs.getString(1) + '\t' + rs.getLong(2));
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
//关闭rs、ps和con
}
}
}

  

4 CDH

hadoop是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera对hadoop做了相应的改变

Cloudera公司的发行版,我们将该版本称为CDH(Cloudera Distribution Hadoop)

5. kudu

6. parquet 表

1)面向分析型业务的列式存储格式;既可以支持关系型数据,也可以支持嵌套的数据类型

2)列式存储的优点

  1. 可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量
  2. 压缩编码 可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码(例如Run Length Encoding和Delta Encoding)进一步节约存储空间。
  3. 只读取需要的列,支持向量运算,能够获取更好的扫描性能

3)parquet表的insert之前要设置 set hive.merge.mapfiles=false;
  如果它的输入包含不止一个mapreduce,比如join/group by/distinct,要建一个RCF的中转表,然后再select into

6. hive的三种常用存储格式

Hive的三种文件格式:TEXTFILE、SEQUENCEFILE、RCFILE

  • TEXTFILE和SEQUENCEFILE的存储格式都是基于行存储的
  • RCFILE是基于行列混合的思想,先按行把数据划分成N个row group,在row group中对每个列分别进行存储。
  • 详细查看

impala 和 kudu 小记的更多相关文章

  1. 通过java代码进行impala和kudu的对接

    对于impala而言,开发人员是可以通过JDBC连接impala的,有了JDBC,开发人员可以通过impala来间接操作kudu: maven导包: <!-- https://mvnreposi ...

  2. 使用impala对kudu进行DML操作

    将数据插入 Kudu 表 impala 允许使用标准 SQL 语句将数据插入 Kudu 插入单个值 创建表: CREATE TABLE my_first_table ( id BIGINT, name ...

  3. 使用impala操作kudu之创建kudu表(内部表和外部表)

    依次启动HDFS.mysql.hive.kudu.impala 登录impala的shell控制端: Impala-shell 1:使用该impala-shell命令启动Impala Shell .默 ...

  4. Java实现impala操作kudu

    推荐阅读: 论主数据的重要性(正确理解元数据.数据元) CDC+ETL实现数据集成方案 Java实现impala操作kudu 实战kudu集成impala 对于impala而言,开发人员是可以通过JD ...

  5. impala和kudu使用的小细节

    七堇年:我们要有最朴素的生活与最遥远的梦想 . 即使明日天寒地冻,路远马亡.   加油! 之前入门的小错误总结,建表都会出错,真的好尴尬 还是要做好笔记 第一个错误: error:AnalysisEx ...

  6. 通过impala更改Kudu表属性

    开发人员可以通过更改表的属性来更改 Impala 与给定 Kudu 表相关的元数据.这些属性包括表名, Kudu 主地址列表,以及表是否由 Impala (内部)或外部管理. Rename an Im ...

  7. Impala SQL 使用小记

    1.  impala端创建的表,DROP. hive会自动同步到. 但是通过hive DROP时,数据还会在,只是表的元数据没有了. 所以完全DROP表,需要impala端的DROP 2. impal ...

  8. kudu集成impala

    Kudu 与 Apache Impala (孵化)紧密集成,允许开发人员使用 Impala 使用 Impala 的 SQL 语法从 Kudu tablets 插入,查询,更新和删除数据: 安装impa ...

  9. Kudu+Impala介绍

    Kudu+Impala介绍 概述 Kudu和Impala均是Cloudera贡献给Apache基金会的顶级项目.Kudu作为底层存储,在支持高并发低延迟kv查询的同时,还保持良好的Scan性能,该特性 ...

随机推荐

  1. locaton.href传参数

    location.href = location.href.substring(0,location.href.lastIndexOf('?'))+'?typeId=' + fid + '&p ...

  2. ghost之后仍然中病毒----与病毒的斗争

    ghost之后仍然中病毒----与病毒的斗争我的电脑系统是XP,从来都没有安装任何杀毒软件,所有的软件都是安装在C盘的,感觉系统卡顿就用Windows一键还原(基于DOS下的ghost)还原一下,一直 ...

  3. Qt QListWidget实现图片缩略图列表

    转载:v_xchen_v 目标: 将本机中的多张图片以缩略图的形式显示在列表中 环境: 我们已经做好了菜单栏和文件选择对话框.参考:http://blog.csdn.net/v_xchen_v/art ...

  4. 即用了 测试脚本里面的 类的值,又继承了 unittest类 使用他的断言方法 (接口自动化 数据分离 变量相互调用 看这里)

  5. DevOps利器- Hygieia平台开发部署

    前言碎语 Hygieia是什么? Capitalone(全美十大银行之一)开源的DevOps利器.使用Hygieia后,在整个软件开发周期中,用户可以选择VersionOne或Jira进行用户故事的追 ...

  6. 解决wordpress文章归档和分类目录小工具标题重复问题

    最近更新了wordpress,发现更新后小工具中的文章归档和分类目录出现了标题重复,经检查,是部分主题下,主题的代码已经输出了标题,而wordpress的代码又再次输出了一次.于是我们需要删除word ...

  7. BrowserSync前端同步测试工具

    安装教程

  8. [UE4]扔枪

    1.把枪Detach掉:DetachFromActor 3个都选择“Keep World” 2.模拟物理 3.给一个向前的速度 4.切枪,到上一个武器,或者捡起脚底下的武器 注意Get Compone ...

  9. Java常用的线程池

    Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...

  10. orcale 函数wm_concat不存咋lob值使用zh_concat 替换

    create or replace TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECT ( CURR_STR VARCHAR2(32767), STATIC ...