千家信息网

hive是什么意思

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍hive是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!hive是hadoop整个项目使用中最常用的辅助项目之一。hadoop基础的组件有hdfs和ma
千家信息网最后更新 2025年12月02日hive是什么意思

这篇文章主要介绍hive是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

hive是hadoop整个项目使用中最常用的辅助项目之一。

hadoop基础的组件有hdfs和mapreduce。hdfs完成整个hadoop集群中数据的存储,采用google的bigTable架构,其实我觉得就是将数据平分为多份,然后平分给分布式中的各机器上,存储在上面的数据就像一个隐藏文件,你在本地硬盘上找不到它们,但却可以通过hadoop中hdfs指令显示和操作它们,像hadoop dfs -ls 路径。而mapreduce则是将存储在集群中的数据进行分布式计算,由原来1台电脑的工作放到集群中所有电脑上,因此它的运算效率会有显著的提高。

说完了hdfs和mapreduce,你应该对hadoop有个基本的了解了,咱们再说下hive。

hive是通过解析你所写的HiveQL语句,来进行mapreduce计算,实现数据仓库中分析数据的作用。hive其实就是针对mapreduce写了一系列的方法和类,咱们可以通过写HIVEQL的形式执行mapreduce.用hiveQL能实现的功能你都能在mapReduce中写出来,如果你不闲麻烦的话。。。

说下hive的主要功能:数据ETL(抽取、转换、加载)工具、数据存储和大型数据集的查询和分析能力。

hive包含了四种数据模型:表(Table)、外部表(External Table)、分区(Partition)、桶(bucket)。

表和外部表个人感觉用起来没什么区别, 有区别的地方只不过是外部表在创建的时候数据没有移动到数据仓库目录中,也就是说外部表不是由它自己来管理。而删除外部表的时候,只会删除元数据,外部表内的数据不会被删除。

而分区和桶。。。就用分区。。不过分区和桶应该都是为了优化hive的分析效率而做的架构,我原来放10号到20号的数据都放个一个文件中,现在,我通过分区,将10号到20号的每日数据存储在以天为单位的存储文件中,这样,我查询某一天的数据时只是查询这一天的文件,而不是查询未分区前的整个文件,这样,效率就上来了,当然,这只是我的理解,可能还有其它作用。。。

我理解的hive的基本工作是:将metadata存到hive自建的表中,然后通过操作和分析hive表中的数据,得到你想要的分析结果。

hive的元数据存储有三种方式:

一、Single User Mode.其实就是将metadata存储在一个内存数据库(derby)中。内存才多大啊,所以日常中基本不用。

二、Multi User Mode. 通过是连接本机的MySql,来获取元数据。这是日常和工作中最常用的一种方式。。貌似是工作中。。

三、Remote Server Mode .其实就是通过本机的thrift协议访问另一个服务器上的metaStoreServcer,metadata不在本地。

关于hive配置,不多说了,网上一堆。。。

关于hive中表的操作,我说下容易让人误会的地方:

hive虽然有表的概念,但它是一个离线数据分析工具,建表只是为了分析服务的,而分析的数据你不可能一条一条插入进去,或者删几条。。而它的正常使用方式是将metadata导入到hive表中,再通过hiveQL分析hive表中的数据。所以hive中不提供手动插入一条或几条数据。有手动就得有自动,自动我举个例子:insert overwrite table abc select * from bbc;这就是我认为的自动。。。。不能手动增加数据了,只能导入数据或自动添加数据。那么删除和修改呢,妥妥的也不能。

关于hive语句的介绍也不多说了,网上也一堆,说的都挺清楚明白的。不过,这里我还得举个例子,关于我今天写的一个,烦了我一天的mapjoin...

mapjoin 有两个好处:1.关联的两张表中有一个表非常小时,mapjoin可以将小表中的数据加载到内存中,然后在map阶段会自动大表中的数据,效率还不错。like :select /*+ mapjoin*/ a.id,a,username from a join b on (a.id=b.id)。这是在对等的情况下,效率相当不错。

2.还有一个好处就是它可以实现不对等连接。。 join ..on () ,on 后面会跟对等的条件,像a.id=b.id ,你如果跟个like 会报错。而mapjoin可以实现不对等条件,就是在join后面不用on了,直接用where,不过这个效率,试了下,个人感觉效率不高。。like :select /*+ mapjoin*/ a.id,a,username from a join b where a.username like 'error')。

关于hive其它的方面我还没有看。。等以后看完了,再谈下感受吧。。

PS: 关于mapjoin()的非等值测试:

两张表:pv_temp_test1(大表) ,title_keyword_test(小表)

pv_temp_test1: 530180 条

title_keyword_test 5646 条

测试语句 :

hive> insert overwrite table hbase_test_keyword select /*+ mapjoin(a)*/ a.keyword,b.dt,b.pid,b.area,count(*),count(distinct clientid) from title_keyword_test a join (select dt,pid,area,wd,clientid from pv_temp_test1 where wd!='' and wd != 'None') b where b.wd like concat('%',a.keyword,'%') group by  a.keyword,b.dt,b.area,b.pid;

花费时间:4927秒......

以上是"hive是什么意思"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

数据 分析 存储 就是 效率 文件 对等 工作 查询 内存 只是 手动 方式 语句 集群 意思 不错 不用 个人 仓库 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全应急演练分组职责 后台的服务器怎么连接 维姆网络服务器文件 公务员数据库建设情况 暨南大学网络安全复试名单 服务器c000021a蓝屏 怎么获取国家地理数据库 开州区税务局网络安全工作 科技互联网最新信息 软件开发中常用的开发方法 自考计算机网络安全重点考点 软件开发造价应由哪些机构来做 互联网大会中国黑科技 巨大网络技术有限公司 塔塔数据库 我的世界服务器必备指令积分榜 网络安全模式下连不上网 台湾dns服务器 网络安全审查办法治一年 云顶之巅手游国际服服务器选哪个 数据库中怎么让数据自增 小学生网络安全法测试题答案 服务器芯片级维修所需工具 怎么传文件到服务器 关于关键基础设施网络安全法 省政府网络安全培训班 迪庆网络安全知识竞赛 广东浪潮服务器虚拟化哪家好 重庆城口蔬菜配送软件开发 php数据库读写分离概念
0