
Hive
文章平均质量分 61
大小说家-
这个作者很懒,什么都没留下…
展开
-
Hive中partition by和distribute by区别
通常查询时会对整个数据库查询,而这带来了大量的开销,因此引入了partition的概念,在建表的时候通过设置partition的字段, 会根据该字段对数据分区存放,更具体的说是存放在不同的文件夹,这样通过指定设置Partition的字段条件查询时可以减少大量的开销。1)partition by [key..] order by [key..]只能在窗口函数中使用,而distribute by [key...] sort by [key...]在窗口函数和select中都可以使用。原创 2023-06-05 10:17:11 · 2202 阅读 · 2 评论 -
Hive总结
如果一个任务有很多小文件(远远小于块大小128m),则每个小文件也会被当做一个块,用一个map任务来完成,而一个map任务启动和初始化的时间远远大于逻辑处理的时间,就会造成很大的资源浪费。比如有一个127m的文件,正常会用一个map去完成,但这个文件只有一个或者两个小字段,却有几千万的记录,如果map处理的逻辑比较复杂,用一个map任务去做,肯定也比较耗时。(2)另外,有多少个Reduce,就会有多少个输出文件,如果生成了很多个小文件,那么如果这些小文件作为下一个任务的输入,则也会出现小文件过多的问题;原创 2023-05-10 20:53:08 · 108 阅读 · 1 评论 -
Hive Metastore 理解
本地元存储和远程元存储都采用外部数据库来存储元数据。本地元存储和远程元存储的区别是:本地元存储不需要单独起 metastore 服务,用的是跟 Hive 在同一个进程里的 metastore 服务。Hive 的元数据,默认是存储在 derby 中的,但是我们一般会修改其存储在关系型数据库比如 MYSQL 中(其可以在 hive 配置中修改),在关系型数据库中会有一个 hive 库,存放相应的表。元数据是描述数据的数据,例如数据表的大小是 100KB, 数据表是数据,表大小是数据的数据。原创 2023-05-10 19:11:55 · 749 阅读 · 1 评论