Apache Hive 使用详解

目录:

  为什么需要Hive ?

  Hive 的基本架构与运行流程

  Hive 的基本语法

 为什么需要 Hive ?

   MapReduce 提供了基本的计算框架,但 MapReduce 的开发过程太啰嗦,很难适用于日常业务中的数据分析场景,对于数据分析,最常用,也是最方便的方式是采用 SQL 语句,大部分数据分析业务都可以通过 SQL 语句解决。为此,Yahoo公司开发了 Pig ,Pig 采用类 SQL 的语法,使用者编写完 Pig 脚本后,Pig 会将其编译成 MapReduce 任务,然后提交给Hadoop 集群运行,Pig 的开发难度比 MapReduce 要少的多,但 Pig 的局限在于其语法还不够简洁。于是,Facebook 开发了 Hive ,Hive 的语法比 Pig 更加简洁,对于熟悉 MySQL等关系型数据库的开发人员可以很快上手 Hive ,Hive 大大降低了 Hadoop 的使用门槛,能解决大部分数据分析的业务场景,极大的推动了大数据技术的发展。

 Hive 的基本架构与运行流程

  Hive 基本架构:

  Hive 的基本组成可以分为三个模块:用户接口(User Interface)、元数据存储模块(MetaStore)、驱动模块(Drivers)。用户接口包括命令行工具CLI,Thrift Server  和 HWI。Thrift Server 可以通过 JDBC 等驱动连接 Hive ,HWI 用于通过 Hue 等 web 的形式连接 Hive。元数据模块主要用来存储 Hive 需要用到的元数据,一般用 MySQL 进行存储。驱动模块是 Hive 的核心模块,用户通过用户接口提交的任务都会提交给驱动模块。

   Hive 的运行流程:

  首先,用户通过 Hive 的用户接口模块将 SQL 语句提交给驱动模块,驱动模块将 SQL 语句进行解析,解析过程中,驱动模块需要去元数据中查询相关的表信息,如表名、字段、分区、数据存储路径等,驱动模块解析完成后,将生成一系列的 MapReduce 任务,然后将 MapReduce 任务提交给 Hadoop 集群执行,最后,等待 Hadoop 集群将结果返回,Hive 再通过用户接口将结果返回给用户。

 Hive 基本语法

  建库建表与数据导入

  Hive 中有一个默认的库,名称就叫 default 。新建库的语句为:create database mydata; 这样我们就新建了一个名称为 mydata 的数据库。

  Hive 中的表分为内部表和外部表两种,二者最大的区别是,在删除内部表时,数据也会被删除;而删除外部表仅仅是删除表元数据的信息,而数据并不会被删除,

CREATE EXTERNAL TABLE IF NOT EXISTS TMP.DD
(
        ID            STRING,
        NAME          STRING,      
        PHONE         BIGINT,
        AGE           INT
) PARTITIONED BY (ds)
ROW FORMATE DELIMITED FIELDS TERMINATED BY ''
STORED AS TEXTFILE
LOCATION 'hdfs://192.168.1.1'

 

  

转载于:https://www.cnblogs.com/beautycode/p/9808462.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache Hive是一个基于Hadoop的数据仓库基础设施,它提供了一个类似于SQL的查询语言(HQL)来查询和分析大规模的数据集。Hive的体系结构主要包括用户接口、元数据存储和解释器、编译器、优化器、执行器等几个部分。用户接口包括CLI、Client和WUI,用于用户与Hive进行交互。元数据存储使用数据库(如MySQL、Derby)来存储Hive的元数据信息,包括表的结构、属性和数据所在目录等。解释器、编译器、优化器、执行器负责将HQL查询语句进行词法分析、语法分析、编译、优化和生成查询计划,查询计划存储在HDFS,并由MapReduce调用执行。Hive的数据存储在HDFS,大部分查询由MapReduce完成。\[1\] 需要注意的是,Hive并不会自动创建数据库,而是通过配置文件hive-site.xml来指定数据库的连接URL。在配置文件,可以设置连接URL为MySQL的地址和端口,并指定是否在数据库不存在时创建数据库。\[2\] 总结来说,Apache Hive是一个基于Hadoop的数据仓库基础设施,它提供了SQL类似的查询语言,通过用户接口、元数据存储和解释器、编译器、优化器、执行器等组件来实现数据查询和分析。 #### 引用[.reference_title] - *1* *2* [Apache Hive详解](https://blog.csdn.net/wudidahuanggua/article/details/126928083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Apache Hive 概述](https://blog.csdn.net/weixin_53570636/article/details/126856108)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值