数据分析系统Hive

Posted yunpiao123456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析系统Hive相关的知识,希望对你有一定的参考价值。

Hive概述

       Hive是由facebook开源,最初用于解决海量结构化的日志数据统计问题。其是构建在Hadoop之上的数据仓库。数据计算使用MR,数据存储使用HDFS。Hive 定义了一种类 SQL 查询语言——HQL。类似SQL,但不完全相同。通常用于进行离线数据处理(采用MapReduce)。可认为Hive是一个HQL-MR的语言翻译器。 


      上述代码是mapreduce实现的wordcount。但是,利用Hive实现上述功能只需要一行命令。SELECT word, COUNT(*) FROM doc LATERAL VIEW explode(split(text, ' ')) lTable as word GROUP BY word。

Hive典型应用场景 

       日志分析统计网站一个时间段内的pv、uv多维度数据分析。 大部分互联网公司使用Hive进行日志分析,包括百度 、淘宝等。其他场景如:海量结构化数据离线分析和低成本进行数据分析(不直接编写MR)。

       Hive简单,容易上手提供了类SQL查询语言HQL。为超大数据集设计了计算/扩展能力。MR作为计算引擎,HDFS作为存储系统。其具有统一的元数据管理(HCalalog)。并且可与Pig、Presto等共享 。 

Hive基本架构 


      用户接口包括 CLI,JDBC/ODBC,WebUI 。元数据存储(metastore)是默认存储在自带的数据库derby中,线上使用时一般换为mysql 。驱动器(Driver)包括:解释器、编译器、优化器以及执行器 。负责将HQL语句翻译为Map/Reduce Job。Hive与Hadoop交互。 用 MapReduce 进行计算,用 HDFS 进行存储。

 


       如图所示为Hive的生成环境。将HIve部署在一个节点上。元数据存储在安装有Mysql的节点上。另一个Mysql节点作为热备。然后,可以和hadoop集群进行交互。

Hive部署架构-metastore服务 



        第一种部署方案是将driver,元数据存储以及Mysql放在一个节点上。这样不利于多个driver同时操作。第二种方案将Mysql放在一个单独节点上。这样可以有多个driver同时工作。最后一种方案将三者都分离。这样可以更加灵活的操作Hive。

Hive使用方式

CLI(Command Line Interface)  

       $HIVE_HOME/bin/hive --help 可以查询Hive相关的命令。

       外部资源:HQL运行时需要的jar包、二进 制文件、文本文件、压缩文件等 。外部资源需分发到集群的各个节点上使用。三种外部资源: 

        FILE:普通文件,Hadoop不会进行任何处理。

       JAR:jar包,Hadoop自动将其加入CLASSPATH中。 

       ARCHIVE:归档文件,Hadoop可识别“.tgz”、“.tar.gz”、 “.zip”等结尾的文件,并自动解压。 

     三种操作: 

       ADD FILE[S] | JAR[S] | ARCHIVE[S] <filepath1> [<filepath2>]* 

       LIST FILE[S] | JAR[S] | ARCHIVE[S] [<filepath1> <filepath2> ..]  

       DELETE FILE[S] | JAR[S] | ARCHIVE[S] [<filepath1> <filepath2> ..]

  



Hive Web UI 


Hive客户端程序 

        方法1:提供JDBC/ODBC访问方式; 

        方法2:采用开源软件Thrift实现C/S模型,支持任何语言编写客户端程序。

 

        如上为采用php实现Hive的操作。

HQL查询语句 

数据模型 


        Hive最上层是Database,下面是数据表。数据表可以分成不同的partition分区。Partition又可以切割成很多bucket桶。


   

           以上是Hive的介绍,接下来介绍pig。


以上是关于数据分析系统Hive的主要内容,如果未能解决你的问题,请参考以下文章

Hive sql大数据有道之Hive sql去重

hive窗口函数应用

Hive入门概述

Hive的优缺点

1.2 Hive的优缺点

Apache Presto单机部署及简单上手