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. python基本知识点

    1.基本数据类型 1.1int 字符串转换为数字,比如 a = “123” print(type(a) , a) b = int(a) print(type(b),b) num = “b” v = i ...

  2. 【springBoot】之定制Banner

    springboot启动时控制台打印图案如下: 1.假如我们不想看到这个图案 public static void main(String[] args) { SpringApplication ap ...

  3. C++进阶--编译器自动生成的类函数

    //############################################################################ /* 在C++ 03标准下 在没有显式定义 ...

  4. 使用R语言-计算均值,方差等

    R语言对于数值计算很方便,最近用到了计算方差,标准差的功能,特记录. 数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [ ...

  5. 无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案

    我的编程环境是vs2008-MFC,电脑系统是win7(64位) 解决方法:“工具”—>“选项”—>“项目和解决方案”—>“VC++目录”,在可执行文件栏中加上如下路径: $(Sys ...

  6. 在docker宿主机上查找指定容器内运行的所有进程的PID

    转载 https://www.cnblogs.com/keithtt/p/7591097.html 找到指定容器的所有进程的PID可以更方便的对容器进程进行管理,特别是在某些容器卡住无法连接的场景. ...

  7. openstack热添加磁盘

    假定在虚拟机当中添加了磁盘,但是虚拟机没有识别出来:如何识别出来 可以使用命令 echo '- - -' >/sys/class/scsi_host/host0/scan 使用后就可以识别出来了 ...

  8. 动态材质实例(Dynamic Material Instance)

    转自:http://blog.csdn.net/panda1234lee/article/details/62041775 本例将通过 “靠近影响椅子的颜色” 来展示什么是 动态材质实例(Dynami ...

  9. CRM 2016 一个IFrame_A 刷新另一个 IFrame_B

    思路是 : 1 创建一个字段“new_xxx”. 2 注册字段 OnChange 事件. 3 OnChange 事件 刷新 IFrame_B子页面. CRM父页面JS: /// <summary ...

  10. CRM 插件导出

    CRM插件注册一般有三种方式, 1  database 2 disk 3  GAC 如果注册到disk 应该在会在 C:\Program Files\Microsoft Dynamics CRM\Se ...