
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习大数据技术,而今天我们就通过案例分析来了解一下,大数据表性能优化常用方法。
Hadoop数据格式
在创建Hive表时,好提供像zlib这样的表压缩属性和orc这样的格式。在摄入的过程中,这些数据将以这些格式写入。如果你的应用程序是写入普通的Hadoop文件系统,那么建议提供这种格式。大多数摄入框架(如Spark或Nifi)都有指定格式的方法。指定数据格式有助于以压缩格式组织数据,从而节省集群空间。
合并作业
合并作业在提高Hadoop数据总体读取性能方面发挥着至关重要的作用。有多个部分与合并技术有关。默认情况下,写入HDFS目录的文件都是比较小的part文件,当part文件太多时,读取数据就会出现性能问题。合并并不是Hive特有的特性——它是一种用于将小文件合并为大文件的技术。合并技术也不涉及任何在线的地方,因此,这项特定的技术非常重要,特别是批处理应用程序读取数据时。
什么是合并作业?
默认情况下,摄入/流作业写入到Hive,目录写入比较小的part文件,对于高容量应用程序,一天的文件数将超过10万个。当我们试图读取数据时,真正的问题来了,终返回结果需要花费很多时间,有时是几个小时,或者作业可能会失败。例如,假设你有一个按天分区的目录,你需要处理大约100万个小文件。
合并作业有什么好处?
文件合并不仅是为了性能,也是为了集群的健康。根据Hadoop平台的指南,节点中不应该有这么多文件。过多的文件会导致读取过多的节点,进而导致高延迟。记住,当读取Hive数据时,它会扫描所有的数据节点。如果你的文件太多,读取时间会相应地增加。因此,有必要将所有小文件合并成大文件。此外,如果数据在某天之后不再需要,就有必要运行清除程序。
合并作业的工作机制
有几种方法可以合并文件。这主要取决于数据写入的位置。下面我将讨论两种不同的常见的用例。
使用Spark或Nifi向日分区目录下的Hive表写入数据
使用Spark或Nifi向Hadoop文件系统(HDFS)写入数据
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。