大数据学习(5)-hive文件格式

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门

💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博>主哦🤞


在Hive中,常见的文件存储格式包括TestFile、SequenceFile、RcFile、ORC、Parquet和AVRO。默认的文件存储格式是TestFile,如果在建表时不指定存储格式,则导入数据时会直接把数据文件拷贝到HDFS上不进行处理。除TestFile外的其他格式的表不能直接从本地文件导入数据,数据要先导入到TestFile格式的表中,然后再从表中用insert导入到其他格式的表中。

  1. TestFile格式:这是Hive的默认文件格式,文件存储方式为正常的文本格式。以TestFile文件格式存储的表,在HDFS上可直接查看到数据。可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但是使用这种方式,Hive不会对数据进行切分,无法对数据进行并行操作。存储方式为行存储,优势在于可使用任意的分割符进行分割,在HDFS上可查可标记,加载速度较快。劣势在于不会对数据进行压缩处理,存储空间较大、磁盘开销大、数据解析开销大。
  2. SequenceFile格式:需在建表时指定stored as sequencefile。文件存储方式为二进制文件,以键值对的形式序列化到文件中。以SequenceFile文件格式存储的表会对数据进行压缩处理,在HDFS上的数据为二进制格式,不可直接查看。可与record、none、block(块级别压缩)配合使用,默认为record,但record的压缩率低,一般建议使用block压缩。存储方式为行存储,优势在于存储时候会对数据进行压缩处理,存储空间小,支持文件切割分片,查询速度比TestFile速度快。劣势在于无法可视化展示数据,不可以直接使用load命令对数据进行加载,自身的压缩算法占用一定的空间。
  3. RcFile格式:需在建表时指定stored as rcfile。文件存储方式为二进制文件。以RcFile文件格式存储的表也会对数据进行压缩处理,在HDFS上以二进制格式存储,不可直接查看。RCFILE是一种行列存储相结合的存储方式,该存储结构遵循的是"先水平划分,再垂直划分"的设计原则。
  4. ORC格式:这是一种高效的存储格式,相比传统的行存储或者列存储,它能够在读取、写入和处理数据等多个方面提供更高的效率。
  5. Parquet格式:这也是一种高效的存储格式,适合在Hadoop、Hive等大数据处理框架中使用。

总的来说,Hive支持多种文件存储格式,具体选择哪种格式取决于具体的使用场景和需求。

需要注意的是Hive数据倾斜是指在Hive执行Map/Reduce程序时 ,某些Reduce节点的执行时间明显长于其他节点,导致整个程序的执行时间增加。这通常发生在某些key值的数据量比其他key值大很多的情况下,因为这些key值会被分发到同一个Reduce节点进行处理,从而导致该节点处理的数据量过大。

数据倾斜通常出现在Hive执行的SQL语句中包含join、group by、count distinct等操作时。为了避免数据倾斜,可以采取一些处理方式,例如设置hive.map.aggr=true(默认开启)进行部分聚合操作,或者设置hive.groupby.skewindata=true(默认关闭)进行负载均衡等。

下一期具体分析负载均衡。一起加油!!!

相关推荐
Ace'1 小时前
每日一题&&学习笔记
笔记·学习
IM_DALLA1 小时前
【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL25
学习·fpga开发·verilog学习
狼头长啸李树身1 小时前
眼儿媚·秋雨绵绵窗暗暗
大数据·网络·服务发现·媒体
丶Darling.1 小时前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树
Json_181790144802 小时前
商品详情接口使用方法和对接流程如下
大数据·json
Data 3172 小时前
Hive数仓操作(十七)
大数据·数据库·数据仓库·hive·hadoop
z樾3 小时前
Github界面学习
学习
道爷我悟了4 小时前
Vue入门-指令学习-v-html
vue.js·学习·html
计算机学姐5 小时前
基于SpringBoot+Vue的在线投票系统
java·vue.js·spring boot·后端·学习·intellij-idea·mybatis
彤银浦5 小时前
python学习记录7
python·学习