Hive简介

Hive最初是应Facebook每天产生的海量新兴社会网络数据进行管理和机器学习的需求而产生和发展的

是建立在Hadoop上的数据仓库基础架构

作为Hadoop的一个数据仓库工具,Hive可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能

Hive作为数据仓库,可用来进行数据提取转化加载(ETL)

Hive构建在基于静态批处理的Hadoop之上,Hadoop通常都有较高的延迟并且在作业提交和调度时需要大量的开销

Hive不适合那些需要低延迟的应用,如联机事务处理(OLTP)

Hive并不提供实时的查询和基于行级的数据更新操作

Hive的最佳使用场合是大数据集的批处理作业

Hive将用户的HQL语句通过解释器转为MapReduce作业提交到Hadoop集群上,Hadoop监控作业执行过程,然后返回作业执行结果给用户。


用户访问接口,用户用来访问Hive数据仓库所使用的工具接口。

CLI (command line interface) 命令行接口

Thrift Server是Facebook开发的一个软件框架,它用来开发可扩展且跨语言的服务,Hive集成了该服务,能让不同编程语言调用Hive的接口

Hive客户端提供了通过网页的方式访问Hive提供的服务,这个接口需要启动HWI(Hive web interface)服务。


Metastore是Hive中的元数据存储

主要存储Hive中表的名称,列和分区及其属性、表的属性(外表?)、表的数据所在目录等。

Metastore和Hive Driver驱动的互联有两种方式,一种是集成模式,一种是远程模式(通过Thrift Interface连接)


驱动编译组件包括编译器、优化器和执行引擎

分别完成HQL的词法分析、语法分析、编译、优化以及查询计划的生成

生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行


Hive的数据模型

tinyint1 byte
smallint2 byte
int4 byte
bigint8 byte
float4 byte 单精度
double8 byte 双精度
decimal任意精度数字
timestampyyyy-mm-dd hh:mm:ss
date yyyy-mm-dd
string 
varchar1~65535
char1~255
boolean 
binary 

此外还有:

ARRAY<data_type>

MAP<key_type, value_type>

STRUCT<col_name1:data_type1, ..., col_namen:data_typen>

UNIONTYPE<data_type1, ..., data_typen>


Hive中没有专门的数据存储格式,也没有为数据建立索引

用户可以非常自由的组织Hive中的表,只需明确列分隔符和行分隔符,Hive就可以解析数据


HIve中的数据存储在HDFS中,有以下数据模型:

表(Table):

    存储录由hive-site.xml配置文件中的hive.metastore.warehouse.dir属性配置,默认为/user/hive/warehouse

外部表(External Table):

分区(Partition):每个分区就是表目录下的一个目录

桶(Bucket):根据哈希值对数据进行切分



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可用于 线性判别、聚类分析 的R语言函数总结

一、判别分析 判别分析是一种分类技术&#xff0c;其通过一个已知类别的“训练样本”来建立判别准则&#xff0c;并通过预测变量来为未知类别的数据进行分类。根据判别的模型分为线性判别和非线性判别&#xff0c;线性判别中根据判别准则又分为Fisher判别&#xff0c;Bayes判别…

Linux 环境下搭建 Jenkins(Hudson)平台

安装jenkins&#xff1a;安装 jenkins 有两种方式&#xff1a;安装方式一&#xff1a; [java] view plaincopysudo java -jar jenkins.war –httpPort18080 –ajp13Port18009 但是很多时候我们是使用SSH方式到目标机器上的&#xff0c;放我们关闭SSH连接时&#xff0c;这个命…

Android APK 打包过程 MD

Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.comAndroid APK 打包流程 MD 目录 目录APK 的打包流程整体流程资源的编译和打包资源ID资源索引概况具体打包过程aapt阶段aidl阶段Java Compiler阶段dex阶段a…

可用于 主成分分析、R型因子分析、简单相应分析 的R语言函数总结

一、主成分分析 主成分分析是多元统计分析的一种常用的降维方法&#xff0c;它以尽量少的信息损失&#xff0c;最大程度将变量个数减少&#xff0c;且彼此间互不相关。提取出来的新变量成为主成分&#xff0c;主成分是原始变量的线性组合。 1.1 KMO检验和Bartlett球形检验 在…

[国家集训队]墨墨的等式

Description 墨墨突然对等式很感兴趣&#xff0c;他正在研究a1x1a2y2…anxnB存在非负整数解的条件&#xff0c;他要求你编写一个程序&#xff0c;给定N、{an}、以及B的取值范围&#xff0c;求出有多少B可以使等式存在非负整数解。 Input 输入的第一行包含3个正整数&#xff0c;…

Storm简介

Storm是实时流式数据处理框架&#xff0c;支持多种编程语言 应用案例&#xff1a; realtime analytics online machine learning continuous computation distributed RPC ETL 性能&#xff1a;a million tuples per second per node 可扩展、高容错 结合消息队列和数据库…

持续集成之Jenkins安装部署

安装JDKJenkins是Java编写的&#xff0c;所以需要先安装JDK&#xff0c;这里采用yum安装&#xff0c;如果对版本有需求&#xff0c;可以直接在Oracle官网下载JDK。 [rootlinux-node1 ~]# yum install -y java-1.8.0 安装Jekins [rootlinux-node1 ~]# cd /etc/yum.repos.d/ […

2019/2/18 Python今日收获

Python day15——032&#xff0c;033异常处理&#xff1a;你不可能总是对的 1. Python标准异常总结AssertionError断言语句&#xff08;assert&#xff09;失败AttributeError尝试访问未知的对象属性EOFError用户输入文件末尾标志EOF&#xff08;Ctrld&#xff09;FloatingPoin…

Shell01

shell是一个命令解释器&#xff0c;是操作系统的最外层。 把用户的输入解释给操作系统&#xff0c;将操作系统的输入结果返回给用户。 硬件-->kernel-->shell-->外围应用程序 shell脚本&#xff1a;将命令或语句写入文件&#xff0c;进行操作系统管理。 shell脚本…

jenkins svn tomcat ant自动部署

Jenkins Jenkins是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;功能包括&#xff1a; 1、持续的软件版本发布/测试项目。 2、监控外部调用执行的工作。 跟其他持续集成相比&#xff0c;它的主要优点有&#xff1a; 开源&#xff0c;即免…

Shell02

局部变量 1、普通字符串变量 变量名value 变量名value #单引号中不进行变量解析&#xff0c;原样输出&#xff0c;应用不多 变量名"value" #双引号会解析变量 例&#xff1a; a1123 a2234 a3"345" echo "a1$a1" echo "a2$a2&quo…

553 mail from must equal authorized user解决方法

在配置发送邮件通知&#xff0c;验证其正确性时&#xff0c;出现"553 mail from must equal authorized user"提示的错误&#xff1b; 原因在于没有在"系统管理&#xff08;Manage Jenkins&#xff09;"的"系统设置&#xff08;Configure system&…

3.1 读入一个参数

已知正方形的边长&#xff0c;求出其面积。 输入样例&#xff1a; 1 2 3 4 输出样例&#xff1a; 1 4 9 16 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交时&#xff0c;注释此句i…

[Apple开发者帐户帮助]八、管理档案(2)创建临时配置文件(iOS,tvOS,watchOS)...

创建临时配置文件以在设备上运行您的应用程序而无需Xcode。在开始之前&#xff0c;您需要一个App ID&#xff0c;一个分发证书和多个注册设备。 有关完整的临时配置文件工作流程&#xff0c;请转到Xcode帮助中的分发到已注册设备&#xff08;iOS&#xff0c;tvOS&#xff0c;wa…

Ant Build.xml

题记&#xff1a;用 Eclipse 3 &#xff0b;Tomcat 5 做东东&#xff0c;用起来还是比较爽。但是调试时每次手动Deploy到Tomcat中&#xff0c;比较麻烦。今用Ant来完成之。 1。打开Eclipse&#xff0c;在项目的根路径下建立builds.xml文件。 这个是Ant配置的关键。其内容如下&…

3.2 读入两个参数

计算两个整数的差。 输入样例&#xff1a; 1 3 5 7 输出样例&#xff1a; -2 -2 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交时&#xff0c;注释此句int num1, num2;while (cin &g…

解决做好一个机器学习项目的3个问题

机器学习是目前人工智能最令人激动的研究方向之一。我们可能更关注机器学习算法的实现细节&#xff0c;沉浸于机器学习所需要的数学功底&#xff0c;但对于机器学习从业者来说&#xff0c;如何更好更快速的实现一个机器学习项目更值得关注。 正如吴恩达在《机器学习》这门课中所…

数据挖掘的相关知识例子

一、贝叶斯 贝叶斯定理由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展&#xff0c;用来描述两个条件概率之间的关系&#xff0c;比如 P(A|B) 和 P(B|A)。按照乘法法则&#xff0c;可以立刻导出&#xff1a;P(A∩B) P(A)*P(B|A)P(B)*P(A|B)。如上公式也可变形为&#xf…

3.3 1!到n!的和

求1! 2! ... n! 的结果。 输入样例&#xff1a; 3 6 输出样例 9 873 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交时&#xff0c;注释此句int num;while (cin >> num){int…

[币严区块链]以太坊(ETH)Dapp开发入门教程之宠物商店领养游戏

阅读本文前&#xff0c;你应该对以太坊、智能合约有所了解&#xff0c;如果你还不了解&#xff0c;建议你先看以太坊是什么 除此之外&#xff0c;你最好还了解一些HTML及JavaScript知识。 本文通过实例教大家来开发去中心化应用&#xff0c;应用效果如图: 项目背景 Pete有一个…