首页 > 其他分享 >hive3.1.2概述和基本操作

hive3.1.2概述和基本操作

时间:2024-05-15 16:21:52浏览次数:17  
标签:数据库 hive3.1 Hive MapReduce 概述 hive SQL 基本操作 数据

1.hive基本概念

hive简介

hive的本质:Hive本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据存储,说白了hive可以理解为一个将SQL转换为MapReduce的任务的工具,甚至更近一步说hive就是一个MapReduce客户端。

经常有面试问什么时hive
我们可以从两点来回答:
1.hive时数据仓库的建模工具之一。
2.可以向hive传入一条交互式的sql,在海量数据中查询分析得到结果的平台

hive的优缺点:

优点:
1、操作接口采用类sql语法,提供快速开发的能力(简单、容易上手)
​ 2、避免了去写MapReduce,减少开发人员的学习成本
​ 3、Hive的延迟性比较高,因此Hive常用于数据分析,适用于对实时性要求不高的场合
​ 4、Hive 优势在于处理大数据,对于处理小数据没有优势,因为 Hive 的执行延迟比较高。(不断地开关JVM虚拟机)
​ 5、Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
​ 6、集群可自由扩展并且具有良好的容错性,节点出现问题SQL仍可以完成执行
缺点:
​> 1、Hive的HQL表达能力有限
​ (1)迭代式算法无法表达 (反复调用,mr之间独立,只有一个map一个reduce,反复开关)
​ (2)数据挖掘方面不擅长
​ 2、Hive 的效率比较低
​ (1)Hive 自动生成的 MapReduce 作业,通常情况下不够智能化
​ (2)Hive 调优比较困难,粒度较粗 (hql根据模板转成mapreduce,不能像自己编写mapreduce一样精细,无法控制在map处理数据还是在reduce处理数据)

hive和传统数据库对比

hive和mysql上面区别?

 数据存储位置    数据格式    数据更新                    索引            执行    执行延迟    可扩展性  数据规模

hive:HDFS       用户自定义    不支持(1.x以后版本支持)  新版本有但弱    MAPReduce| 高           高         大
sql  :本地FS      系统决定      支持                      有            Executor 低           低         小
  
     

hive应用场景

日志分析:大部分互联网公司使用hive进行日志分析,如百度、淘宝等。
​ 统计一个网站一个时间段内的pv,uv,SKU,SPU,SKC
​ 多维度数据分析(数据仓库
海量结构化数据离线分析

1.2 hive架构

1.2.1 Client

Hive允许client连接的方式有三个CLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问 hive)。JDBC访问时中间件Thrift软件框架,跨语言服务开发。DDL DQL DML,整体仿写一套SQL语句。

​ 1)client–需要下载安装包

​ 2)JDBC/ODBC 也可以连接到Hive
​ 现在主流都在倡导第二种 HiveServer2/beeline
​ 做基于用户名和密码安全的一个校验

​ 3)Web Gui
​ hive给我们提供了一套简单的web页面
​ 我们可以通过这套web页面访问hive 做的太简陋了

1.2.2 Metastore

元数据包括表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是 外部表)、表的数据所在目录等。

​ 一般需要借助于其他的数据载体(数据库)

​ 主要用于存放数据库的建表语句等信息

​ 推荐使用Mysql数据库存放数据

​ 连接数据库需要提供:uri username password driver

1.2.3 Driver(面试题:sql语句是如何转化成MR任务的?)

元数据存储在数据库中,默认存在自带的derby数据库(单用户局限性)中,推荐使用Mysql进行存储。

​ 1) 解析器(SQL Parser):将SQL字符串转换成抽象语法树AST(从3.x版本之后,转换成一些的stage),这一步一般都用第三方工具库完 成,比如ANTLR;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。

​ 2) 编译器(Physical Plan):将AST编译(从3.x版本之后,转换成一些的stage)生成逻辑执行计划。

​ 3) 优化器(Query Optimizer):对逻辑执行计划进行优化。

​ 4) 执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是 MR/Spark/flink。

1.2.4 数据处理

Hive的数据存储在HDFS中,计算由MapReduce完成。HDFS和MapReduce是源码级别上的整合,两者结合最佳。解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。

hive的三种交互方式

1) hive
2) 第二种交互方式
Hive作为一个启动器,对外提供服务

服务端启动hiveserver2服务:
nohup hive --service metastore >/dev/null &
nohup hiveserver2 &

需要稍等一下,启动服务需要时间:
进入命令:1)先执行: beeline ,再执行: !connect jdbc:hive2://master:10000 
        2)或者直接执行:  beeline -u jdbc:hive2://master:10000 -n root
退出命令行:!exit

3) 第三种交互方式
使用参数 -e来执行hql语句

bin/hive -e "show databases;"

标签:数据库,hive3.1,Hive,MapReduce,概述,hive,SQL,基本操作,数据
From: https://www.cnblogs.com/T3h4t5-Blog90/p/18193864

相关文章

  • 基于UltraScale架构的XCVU3P-3FFVC1517E XCVU3P-2FFVC1517I XCVU3P-1FFVC1517E高性能
    概述VirtexUltraScale+器件是基于14nm/16nmFinFET节点的高性能FPGA,支持3DIC技术和多种计算密集型应用。AMD第三代3DIC使用堆叠硅片互联(SSI)技术打破了摩尔定律的限制,并且实现了最高信号处理和串行I/O带宽,以满足最严格的设计要求。它还提供了一个虚拟的单片设......
  • openGauss 逻辑解码概述
    逻辑解码概述功能描述openGauss对数据复制能力的支持情况为:支持通过数据迁移工具定期向异构数据库(如Oracle等)进行数据同步,不具备实时数据复制能力。不足以支撑与异构数据库间并网运行实时数据同步的诉求。openGauss提供了逻辑解码功能,通过反解xlog的方式生成逻辑日志。目标数......
  • Jekins - [01] 概述
    “持续集成并不能消除Bug,而是让它们非常容易发现和改正。”——Martin Fowler 一、概述1.1、持续集成(CI)  持续集成(Continuousintegration)指的是频繁地(一天多次)将代码集成到主干。  它的好处主要有两个:快速发现错误。每完成一点更新,就集成到主干,可以快速发现错......
  • 数据结构概述
    数据结构定义我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法数据结构=个体+个体的关系算法=对存储数据的......
  • openGauss 逻辑解码概述
    逻辑解码概述功能描述openGauss对数据复制能力的支持情况为:支持通过数据迁移工具定期向异构数据库(如Oracle等)进行数据同步,不具备实时数据复制能力。不足以支撑与异构数据库间并网运行实时数据同步的诉求。openGauss提供了逻辑解码功能,通过反解xlog的方式生成逻辑日志。目标数......
  • openGauss 概述
    概述数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全,openGauss数据库支持三种备份恢复类型、多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。备份与恢复类型可分为逻辑备份与恢复、闪回恢复。逻辑备份与恢复:通过逻辑导出对数据进行备份,逻辑备份只......
  • Spark - [03] RDD概述
    RDD,分布式数据集,是Spark中最基本的数据抽象。 一、什么是RDDRDD(ResilientDistributedDataset)叫做分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。  二、RDD的属性①一组分区(Partition),即数据......
  • 云服务器基本操作指南
    目录CentOS7.9服务器操作CentOS7.9服务器操作查看防火墙运行状态firewall-cmd--state开启防火墙sudosystemctlstartfirewalld开机自启动防火墙sudosystemctlenablefirewalld查看防火墙开放端口sudofirewall-cmd--list-ports添加防火墙开放端口firewal......
  • Sqlite3数据库初接触基本操作
    前言笔者接触到一个全新的数据库,知道该数据库的类型是 Sqlite3,但不知道该数据的具体组成比如具体由哪些表或者数据内容。对数据概况探索1.经过查阅“https://blog.csdn.net/luoshabugui/article/details/108327936”参考该博客(感谢作者:丸子叮咚响),知道数据有以下基本内容:每......
  • 1-分库分表概述_工作过程_分片规则_目录结构_配置文件
    1.分库分表概述工作过程分片规则目录结构配置文件分库分表概述 工作过程 分片规则 目录结构 配置文件分库分表应用注意1.在数据库设计时考虑垂直分库和垂直分表2.数据量增加时,不要马上做水平分割,而是先考虑缓存处理、读写分离、使用索引等方式。如果以上方式不能解决,......