热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hive(一)简单介绍功能优缺点

1.Hive概述Hive是基于Hadoop的开源的数据仓库框架,提供了一种类SQL的语言HQL来处理数据,使熟悉SQL的用户能查询数据。其原理是将Hiv

1.Hive概述

Hive是基于Hadoop的开源的数据仓库框架,提供了一种类SQL的语言HQL来处理数据,使熟悉SQL的用户能查询数据。其原理是将HiveQL转换为MapReduce任务,从而完成海量数据的查询和分析。Hive适合于数据仓库应用程序,使用该应用程序进行相关的静态数据分析,不需要快速响应给出结果,而且数据本身不会频繁变化。HiveQL能通过实现用户自定义函数(UDF)、用户自定义聚合函数(UDAF)、用户自定义表函数(UDTF)进行扩展。
基于Hadoop,Hive具有以下特点:
  • 易于进行数据抽取、转换和加载(ETL)
  • 支持多样的数据存储格式
  • 能直接访问存储在HDFS上或者其他的数据存储系统(如HBase)上的文件
  • 多种使用方式,支持shell交互式命令、JDBC、WebUI等

2.Hive的优点和缺点

优点:
  • 支持海量数据的分析
  • 有良好的可扩展性
  • 有很好的容错性
  • 使用HiveQL就能实现复杂的MapReduce程序,减少了开发难度
缺点:
  • 延迟高,不能支持实时查询(MapReduce任务启动过程需要消耗较长的时间)
  • 不支持记录级别的更新、插入或者删除操作(联机事务处理OLTP)
  • 不支持事务

3.应用场景

Hive常用于以下方面:
  • 大量数据的非实时分析(日志的统计分析)
  • 数据挖掘(用户行为分析、关注点推荐)
  • 数据汇总(统计用户每天、每周的点击数)

4.架构

(1)用户接口
shell/CLI,jdbc/odbc,web UI
  • shell/CLI:终端命令行,采用交互式使用Hive命令行与Hive进行交互,常用
  • jbc/odbc:是Hive的基于JDBC操作提供的客户端
  • Web UI:游览器访问
(2)Driver
所有的命令和查询都会进入到Driver(驱动模块),通过该模块对输入进行解析编译,对需求的计算进行优化,然后按照指定的步骤执行(通常是启动多个MapReduce任务来执行)
Hive 的核心是驱动引擎, 驱动引擎由四部分组成:
  • 解释器:解释器的作用是将 HiveSQL 语句转换为抽象语法树(AST)
  • 编译器:编译器是将语法树编译为逻辑执行计划
  • 优化器:优化器是对逻辑执行计划进行优化
  • 执行器:执行器是调用底层的运行框架执行逻辑执行计划
(3)Metastore(元数据存储)
是一个独立的关系型数据库(通常是一个Mysql实例)
元数据:存储在 Hive 中的数据的描述信息
Hive 中的元数据通常包括:表的名字,表的列和分区及其属性,表的属性(内部表和 外部表),表的数据所在目录


推荐阅读
  • sqlserver触发器写法_技术书籍荐读不可错过的SQL Server数据库书单来袭!
    朱熹读书之法,在循序渐进,熟读而精思。2019年转眼就要过去了,这一年,你读了哪些书,得到了哪些收获ÿ ... [详细]
  • Hadoop——Hive简介和环境配置
    一、Hive的简介和配置1.简介Hive是构建在Hadoop之上的数据操作平台lHive是一个SQL解析引擎,它将SQL转译成MapReduce作业,并 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 伸缩性|发生_分布式文件系统设计,该从哪些方面考虑?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了分布式文件系统设计,该从哪些方面考虑?相关的知识,希望对你有一定的参考价值。点击上方关注“ ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 当计算任务越来越多,作业提交越来越多,企业普通的做法是,在原有的系统架构上,不停地往上堆积硬件或者加服务器。的确,hadoop设计上的优秀和可扩展性可以方便的 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
author-avatar
亲个小亲爱剖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有