`
landyer
  • 浏览: 138722 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache Hive入门1

阅读更多

作者: H.E. | 您可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 
网址: http://www.javabloger.com/article/apache-hive-jdbc-mapreduce.html

 

   Hive是Hadoop项目中的一个子项目,由FaceBook向Apache基金会贡献,其中TaoBao也是其中一位使用者+贡献者,Hive被视为一个仓库工具,可以将结构化的数据文件映射为一张数据库表,并可以将sql语句转换为 MapReduce 任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 
  
Hive主要分为以下几个部分:
    1.用户接口 
       用户接口主要有三个:命令行(CLI),客户端(Client) 和 Web界面(WUI)。其中最常用的是 CLI,启动的时候,会同时启动一个 Hive 服务。Client 是 Hive 的客户端,用户连接至 Hive Server。在启动 Client 模式的时候,需要指出 Hive Server 所在节点,并且在该节点启动 Hive Server。 WUI 是通过浏览器访问 Hive的Web工具。
   2.元数据存储 
       Hive 将元数据存储在数据库中,如 MySQL或者Derby嵌入式数据库。若将元数据存储在MySQL中,在TBLS中可以看见你建立的所有表信息,Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
   3. 执行
    解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。
   4. HDFS存储
    Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from tbl 不会生成 MapRedcue 任务)。
如图所示:
Hive 架构

Hive 元数据存储
    Hive 将元数据存储在 RDBMS 中,有三种模式可以连接到数据库:

    Single User Mode: 此模式连接到一个 In-memory 的数据库 Derby,一般用于 Unit Test,如图1
                             Hive
   Multi User Mode:通过网络连接到一个数据库中,是最经常使用到的组合模式,如图2
                             
   Remote Server Mode:用于非 Java 客户端访问元数据库,在服务器端启动一个 MetaStoreServer,客户端利用 Thrift 这个东东 通过 MetaStoreServer 访问元数据库。如图3
                            

Hive 的启动方式
    hive  命令行模式,直接输入/hive/bin/hive的执行程序,或者输入 hive –service cli
    hive  web界面的启动方式,hive –service hwi  
    hive  远程服务 (端口号10000) 启动方式,nohup hive –service hiveserver  &

Hive的SQL
建表
    CREATE TABLE javabloger (foo INT, bar STRING);  
插入
    LOAD DATA LOCAL INPATH '/work/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE javabloger;
查询
    SELECT a.* FROM javabloger a;

Hive使用MySQL存放元数据
    可以参考一下这篇文章
    http://www.mazsoft.com/blog/post/2010/02/01/Setting-up-HadoopHive-to-use-MySQL-as-metastore.aspx  
    别忘了下载 MySQL 的JDBC驱动,推荐下载 mysql-connector-java-5.1.11.tar.gz 
   
Hive 与 JDBC 

导入hive\lib下的所有jar包到IDE的classpath里面,还有hadoop中的 hadoop-0.20.2-core.jar包,即可运行下列代码:

package com.javabloger.hive;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class HiveTestCase {

    public static void main(String[] args) throws  Exception {
        Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
        
        String dropSQL="drop table javabloger";
        String createSQL="create table javabloger (key int, value string)";
        String insterSQL="LOAD DATA LOCAL INPATH '/work/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE javabloger";
        String querySQL="SELECT a.* FROM javabloger a";
        
        Connection con = DriverManager.getConnection("jdbc:hive://192.168.20.213:10000/default", "", "");
        Statement stmt = con.createStatement();
        stmt.executeQuery(dropSQL);  // 执行删除语句
        stmt.executeQuery(createSQL);  // 执行建表语句
        stmt.executeQuery(insterSQL);  // 执行插入语句
        ResultSet res = stmt.executeQuery(querySQL);   // 执行查询语句
        
          while (res.next()) {
            System.out.println("Result: key:"+res.getString(1) +"  –>  value:" +res.getString(2));
        }

    }

}

Hadoop学习之旅正在进行中,正在走向Hive的路上,目前只对Hive一些简单的操作和整体结构有所了解,更深入的知识正在学习ing。。。。

 

相关文章:
Hive入门3–Hive与HBase的整合 
Apache Hive入门2 
Apache Hive入门1

 

–end–

分享到:
评论

相关推荐

    第1章 数据仓库基础与Apache Hive入门1

    第1章数据仓库基础与Apache Hive入门课程计划目录 一、 课程计划 2 二、 数据仓库 5 1. 数据仓库概念 5 2. 场景案例:数据仓库为何而来?6

    Hive 入门教程-Apache Hive入门介绍与HQL语法解析

    Hive入门经典教程 Apache Hive 淘宝团队验证

    Hive编程指南+HIVE从入门到精通+Hive高级编程+Apache Oozie

    Hive编程指南+HIVE从入门到精通+Hive高级编程+Apache Oozie

    apache-hive-1.2.1-bin.tar.gz.zip

    Hive入门配套软件

    大数据开发Spar、Hive入门

    通过讲解大数据概述、技术栈、数据处理与分析、开发工具、开发流程等内容,结合示例,帮助王子入门大数据开发。 本示例展示了如何使用Apache Spark进行数据处理和机器学习。通过读取CSV文件,对数据进行清洗和特征...

    Hive 口袋手册

    《Hive 口袋手册》是笔者根据自己对 Apache Hive 的知识点的理解汇总而成的小册子。这本小册子的撰写宗旨就两点 1. 常用;2. 概要。 这就注定了这本小册子并不是一本 “全面”、“详尽” 的书籍,它是一个对常用知识...

    hive-quick-start:Hive快速入门指南

    export HIVE_HOME=/usr/local/apache/hive/current export PATH= $PATH : $HIVE_HOME /bin 对于开发实例来说,这应该足够了,但是在某些情况下,我们将希望同时运行hive CLI,元存储甚至hiveserver2,为了做到这...

    Apache Flink入门

    目前开源大数据计算引擎有很多选择,流计算如 Storm、Samza、Flink、Kafka Stream 等,批处 理如Spark、Hive、Pig、Flink 等。而同时支持流处理和批处理的计算引擎,只有两种选择:一个 是Apache Spark,一个是Apache ...

    Apache Hadoop---Crunch.docx

    Apache Crunch 是基于 FlumeJava 实现的,...与 Pig 和 Hive 一样,Crunch 是为了降低 MapReduce 的入门成本。它们的区别是:Pig 是一个基于管道的框架,而 Crunch 则是一个 Java 库,它提供比 Pig 更高级别的灵活性。

    ApacheBeam实战指南之基础入门

    另外,近年来涌现出诸多大数据应用组件,如HBase、Hive、Kafka、Spark、Flink等。开发者经常要用到不同的技术、框架、API、开发语言和SDK来应对复杂应用的开发。这大大增加了选择合适工具和框架的难度,开发者想要将...

    sparkhivewebapp:一个使用 spark-hive 的非常简单的 webapp

    一个使用 apache spark hive 的非常简单的 spring web 应用程序作者###入门首先,应将 spark 组件 jar(在安装 spark lib 文件夹中提供)添加到 maven 本地 repo。 该命令在下面关于 spark 依赖项的注释部分中给...

    大数据基础知识入门.pdf

    支 持 大 多 数 Hadoop 组 件 , 包 括 HDFS 、 MapReduce 、 Spark 、 Hive 、 Pig 、 Hbase 、 Zookeper、Sqoop等 大数据集群管理方式 分 为 手 工 方 式 ( Apache hadoop)和工具方式(Ambari + hdp 和 ...

    大数据必看经典书籍:大数据从入门到深入书籍推荐.pdf

    《Hive编程指南》 《Hive编程指南》是⼀本Apache Hive的编程指南,对Hive的SQL⽅法HiveQL来汇总、查询和分析存储在Hadoop分布式⽂件系统上的⼤ 数据集合做了详细的介绍。 第三阶段,是针对分布式计算框架的学习,...

    Apache Kylin 权威指南

    清晰的文字,是快速入门OLAP,学习使用kylin的入门神器 ps:让我填所属分类,好bt,要么你就整个全一点的数据库,分类多点,找了半天没有找到OLAP,KYLIN;让我没得选,只能选择大数据->hive了,比较相近了

    vagrant-jilla-hadoop:流浪者设置来启动vm hadoop集群

    带Spark 1.4.1和Hive,Pig客户端的vagrant-hadoop-2.6.0介绍Vagrant项目通过数据节点中的Hadoop v2.6.0,Spark 1.4.1以及apache hive和pig客户端启动了由5个虚拟机组成的集群node1:HDFS名称节点+ Spark Master node...

    Spark入门实战系列 超清自解压 PDF文件

    spark入门级资料推荐,开始是介绍简装 编译运行等基础介绍,从第五章开始 Hive介绍及部署 Hive实战 SparkSQL介绍 实战 深入了解运行计划及调优 SparkStreaming原理介绍 实战 SparkMLlib机器学习及SparkMLlib简介 ...

    jms-activemq-example:使用Apache ActiveMQ的Belajar JMS

    Apache ActiveMQ入门 如何运行应用程序: 提炼 跑步 bin/activemq start 启动 JMS术语 提供者,即面向消息的中间件或充当代理的应用程序,示例之一是Apache ActiveMQ,RabitMQ,Hive MQTT,IBM MQ,JBoss ...

    Flume总结 全.pdf

    对于Flume学习上的总结,包含: 1.Linux环境Flume安装配置及...2.Apache Flume 入门教程。 3.flume的部署和avro source测试;netcast source测试。 4.Flume部署及使用。 5.Flume监听本地Linux-hive日志文件采集到HDFS。

    Spark 2.0.2 Spark 2.2 中文文档 本资源为网页,不是PDF

    兼容 Apache Hive 参考 数据类型 NaN 语义 Structured Streaming MLlib(机器学习) 机器学习库(MLlib)指南 ML Pipelines(ML管道) Extracting, transforming and selecting features(特征的提取,转换...

Global site tag (gtag.js) - Google Analytics