zoukankan      html  css  js  c++  java
  • impala 和 kudu 小记

    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) + '	' + 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中对每个列分别进行存储。
    • 详细查看
  • 相关阅读:
    Office Live for Small Business开启您创业的大门
    把时间管理培养成习惯
    面向对象主要概念
    《程序员羊皮卷》中的职场江湖
    时间管理——如何应对外界的干扰
    时间管理——珍惜时间碎片
    对于Office Live平台的思考
    Office Live第一步搭建网络工作环境
    时间管理——专注与放下
    时间管理——寻找精力与效率的平衡点
  • 原文地址:https://www.cnblogs.com/skyEva/p/6604177.html
Copyright © 2011-2022 走看看