大数据之数据仓库Hive原理分析(数据仓库hive的使用实验报告)
wxin55 2024-11-16 01:39 7 浏览 0 评论
Hive 介绍
hive 是就hadoop 的一个数据仓库工具,可以将结构化数据映射成一张表,并且提供类sql 查询功能。设计的目的就是让熟悉sql 语法的开发人员能够不通过写M/R 作业任务就可以完成对存储在hdfs中的数据进行查询计算。
hive 可以将sql 转换成计算引擎所支持的task作业执行,可以以M/R/Spark/Tez 作为计算引擎,执行下效率取决于计算引擎
hive 只是适合做批量离线数据分析处理
Hive 处理数据流程
hive 利用hdfs 存储数据,通过M/R 进行数据计算分析流程
Hive 组件结构(引用别人的图,哈哈)
通过上图中hive 的组件架构分析可知,hive通过以下几部分组成:
- 元数据服务组件 Hive MetaStore Server
hive 的元数据信息保存通过独立的服务组件 Hive Metastore Server 存储在关系型数据库中,其支持的数据有derby(默认支持)、mysql等。
Hive 的运行模式:根据Hive服务和Metastore Server 是否运行在同一个进程分为内嵌模式、本地模式和远程模式
注意:
此处提到的Thrift是一种描述性语言和通信协议,被用来定义跨语言服务(java/c++/go等),被facebook为支持大规模的跨语言服务而开发的RPC框架使用。
- Hive CLI 从hive-0.11 开始, Beeline 被引入作为新的命令行客户端工具,是基于SqlLine 的jdbc 客户端。
- HS2远程jdbc/odbc客户端
官方解释:
HiveServer2 (HS2) is a server interface that enables remote clients to execute queries against Hive and retrieve the results (a more detailed intro here).
The current implementation, based on Thrift RPC, is an improved version of HiveServer and supports multi-client concurrency and authentication.
从官方解释可以看出,HS2 是一个服务接口,可以是远程客户端执行对hive的查询并且获取到对应的返回结果。此外Hive Server 的升级版本,并且支持多客户端并发和身份认证。
Hive Server2(HS2) 可以通过http(hive-0.13版本以上)和tcp(即binary,默认)进行传输Thrift Rpc 消息,可以通过 hive.server2.transport.mode 设置的值(http或binary) 执行数据传输模式,不能同时使用这两种模式。
从配置上可以看出,HS2 支持多种身份认证的方式,none 表示不需要身份验证。
HS2的执行核心是Thrift Rpc 服务。Hive Server 在tcp 传输模式下使用的是ThreadPoolServer,而http 传输模式下使用的是Jetty Server, Server 会为每一个tcp 连接分配一个线程去执行业务处理。例如,cdh 中的HS2 配置:
HS2 是怎么在Jdbc和Hive 之间完成工作协调的呢?(HS2的原理还待研究。。。)
从hive的组件架构图中我们可以看出,driver 包含compiler/optimizer/executor,hive 通过antlr3 定义HiveSql 语言。
ANTLR(ANother Tool for Language Recognition) 是一款强大的语言构建工具,提供词法分析、语法分析等功能。用户编写语言的词法规则和语法规则,然后通过ANTLR 提供的运行时库将语言转换成抽象语法树,支持语法树重写,import、语法预测等功能。
compiler:
- 词法解析器ParseDriver:将查询的字段转换成AST抽象语法树
- 语法分析器SemanticAnalyzer:将AST转换成基于语句块的内部查询表达式
- 逻辑计划生成器 logic plan generator:将内部查询表达式转换成逻辑计划
- 查询计划生成器 query plan generator:将逻辑计划转换成物理计划 M/R Task,形成一个DAG图(task链)
optimizer:
优化处理,如谓词下推
executor:
执行器顺序执行DAG中的task,如果task 链不存在依赖关系(spark中的宽依赖)则会并执行task
参考文档:
https://www.xuebuyuan.com/2181078.html
https://www.cnblogs.com/zhangshihai1232/articles/6075124.html
相关推荐
- 黑客工具sqlmap,带你了解什么师sql注入
-
1、sqlmap介绍sqlmap是一款支持MySQL,Oracle,PostgreSQL,MicrosoftSQLServer,MicrosoftAccess,IBMDB2,SQL...
- Web网络安全漏洞分析,SQL注入原理详解
-
本文主要为大家介绍了Web网络安全漏洞分析SQL注入的原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪一、SQL注入的基础1.1介绍SQL注入SQL注入就是指We...
- sql注入、文件上传、文件包含(sql注入数据提交的类型)
-
在owasp年度top10安全问题中,注入高居榜首。SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要...
- 比较常见类型漏洞讲解(三):SQL注入(一)
-
比较常见类型漏洞讲解(一)比较常见类型漏洞讲解(二):文件上传这里继续介绍比较容易找到的不同类型的漏洞。演示准备目标主机:Metasploitable2攻击目标:目标主机的dvwa系统攻击机:Kali...
- 警惕SQL注入:检测与防御的实战指南
-
在当今数字化的时代,软件系统的安全性至关重要。SQL注入作为一种常见且危害巨大的安全漏洞,给企业和用户带来了潜在的风险。对于测试人员来说,掌握发现和解决SQL注入漏洞的方法是保障软件质量和安全的...
- SQL注入的原理和危害(sql注入的原理及危害)
-
什么是SQL注入SQL注入是发生在web端的安全漏洞,实现非法操作,欺骗服务器执行非法查询,他的危害有会恶意获取,甚至篡改数据库信息,绕过登录验证,原理是针对程序员编写时的疏忽,通过执行SQL语句,实...
- 科普基础 | 最全的SQL注入总结(sql注入是干嘛的)
-
0x01SQL注入原理当客户端提交的数据未作处理或转义直接带入数据库,就造成了sql注入。攻击者通过构造不同的sql语句来实现对数据库的任意操作。0x02SQL注入的分类按变量类型分:数字型和字符...
- 产品经理必备IT技术知识之“什么是SQL注入攻击?
-
不少优秀的产品经理都会写一些简单的SQL语句进行数据查询的操作,但是会写SQL语句不代表能写好SQL语句。SQL语句写得不好,就会引发SQL注入攻击。SQL注入攻击是Web开发中最常见的一种安全问题,...
- 通过sql注入获取用户名和密码(联通光猫超级用户名超级密码获取)
-
1.啥是sql注入sql注入是一种通过操作输入来修改后台sql语句以达到利用代码进行攻击目的的技术2.生成sql注入漏洞的原因总结一句话:对前台传过来的参数没有进行有效的过滤,太相信前端传过来的参数...
- 什么是SQL注入攻击(SQL Injection)
-
1,定义:在构建数据库SQL语句时,攻击者在参数请求中注入恶意的SQL代码,并在在数据库中执行,操控数据库执行意图之外的操作。2,目的:窃取数据、修改数据、删除数据、绕过身份验证、权限提升,执...
- 浅谈SQL注入(sql注入的理解)
-
在关于SQL注入,百度的解释是这样的:SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知...
- sql注入(sql注入攻击是什么意思)
-
SQL注入分类1.数字型注入当输入的参数为整型时,则有可能存在数字型注入漏洞。假设存在一条URL为:HTTP://www.aaa.com/test.php?id=1可以对后台的SQL语句猜...
- SQL注入详解(sql注入总结)
-
现在大多数系统都使用B/S架构,出于安全考虑需要过滤从页面传递过来的字符。通常,用户可以通过以下接口调用数据库的内容:URL地址栏、登陆界面、留言板、搜索框等。这往往会出现安全隐患,为了更好的保护数据...
- 什么是sql注入,这些坑得避开(什么是sql注入,编程时如何避免)
-
1、sql注入是什么sql注入就是用户通过输入的参数,拼接到原先的sql中,成为sql的一部分,从而影响sql的功能和执行结果2、sql注入破坏力-小兵破坏力比如原先sql如下s...
- 金母鸡量化教学场:pandas—数据挖掘的Python库
-
如果你想充分发挥Python的强大作用,如果你想成为一名好的Python量化师,你应该先学好Pandas。今天就来了解什么是Pandas。与numpy易于处理同种类型数据不同,pandas更加的适合...