&&大数据学习&&
🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博>主哦🤞
在Hive中,常见的文件存储格式包括TestFile、SequenceFile、RcFile、ORC、Parquet和AVRO。默认的文件存储格式是TestFile,如果在建表时不指定存储格式,则导入数据时会直接把数据文件拷贝到HDFS上不进行处理。除TestFile外的其他格式的表不能直接从本地文件导入数据,数据要先导入到TestFile格式的表中,然后再从表中用insert导入到其他格式的表中。
- TestFile格式:这是Hive的默认文件格式,文件存储方式为正常的文本格式。以TestFile文件格式存储的表,在HDFS上可直接查看到数据。可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但是使用这种方式,Hive不会对数据进行切分,无法对数据进行并行操作。存储方式为行存储,优势在于可使用任意的分割符进行分割,在HDFS上可查可标记,加载速度较快。劣势在于不会对数据进行压缩处理,存储空间较大、磁盘开销大、数据解析开销大。
- SequenceFile格式:需在建表时指定stored as sequencefile。文件存储方式为二进制文件,以键值对的形式序列化到文件中。以SequenceFile文件格式存储的表会对数据进行压缩处理,在HDFS上的数据为二进制格式,不可直接查看。可与record、none、block(块级别压缩)配合使用,默认为record,但record的压缩率低,一般建议使用block压缩。存储方式为行存储,优势在于存储时候会对数据进行压缩处理,存储空间小,支持文件切割分片,查询速度比TestFile速度快。劣势在于无法可视化展示数据,不可以直接使用load命令对数据进行加载,自身的压缩算法占用一定的空间。
- RcFile格式:需在建表时指定stored as rcfile。文件存储方式为二进制文件。以RcFile文件格式存储的表也会对数据进行压缩处理,在HDFS上以二进制格式存储,不可直接查看。RCFILE是一种行列存储相结合的存储方式,该存储结构遵循的是“先水平划分,再垂直划分”的设计原则。
- ORC格式:这是一种高效的存储格式,相比传统的行存储或者列存储,它能够在读取、写入和处理数据等多个方面提供更高的效率。
- 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(默认关闭)进行负载均衡等。文章来源:https://www.toymoban.com/news/detail-726374.html
下一期具体分析负载均衡。一起加油!!!文章来源地址https://www.toymoban.com/news/detail-726374.html
到了这里,关于大数据学习(5)-hive文件格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!