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. #ifdef __cplusplus extern "C" { #endif 含义

    转载! 1.在好多程序中我们会遇到下面代码段 #ifdef __cplusplus         extern "C" {         #endif //c语法代码段 #if ...

  2. Web Services and C# Enums

    Web Service Transparency .NET support for web services is excellent in creating illusion of transpar ...

  3. QT使用SQLite

    在QT的widget中用tableview显示sqlite数据库表中的内容. 用QTcreator创建一个基于Widget类的窗口,再拖一个tableview到widget中,保存. 1.在widge ...

  4. 黄聪:jquery.bootgrid表格插件有的属性(visibleInSelection、cssClass、headerCssClass、headerAlign)不能识别的解决办法

    主要是属性大小写问题,修改jquery.bootgrid.js文件,在function loadColumns()方法里面添加下面的语句就好了 data.headerAlign = data.head ...

  5. 黄聪:如何使用钩子定制WordPress添加媒体界面,去除不需要的元素

    原文:http://www.solagirl.net/customize-wordpress-media-upload-ui.html WordPress编写文章界面的添加媒体按钮允许用户上传多媒体文 ...

  6. RTB业务知识之2-Impression概念和关键属性

    一.定义-impression This object describes an ad placement or impression being auctioned. A single bid re ...

  7. Mongo查询分组

    db.test.aggregate( {'$match':{"url":/http:\/\/www.baidu.cn\/member\/T107581\//}}, {'$group ...

  8. 廖雪峰Java4反射与泛型-3范型-6super通配符

    1.super通配符 1.1super通配符第一种用法 泛型的继承关系 Pair<Integer>不是Pair<Number>的子类,如 static void set(Pai ...

  9. Zabbix agentd 命令

    #zabbix_agentd -p 查看zabbix所有的内置监控项 [root@nod01 zabbix_agentd.d]# zabbix_agentd -pagent.hostname [s|Z ...

  10. go语言学习--channel的关闭

    在使用Go channel的时候,一个适用的原则是不要从接收端关闭channel,也不要在多个并发发送端中关闭channel.换句话说,如果sender(发送者)只是唯一的sender或者是chann ...