Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging HDFS中使用的不同日志文件大小背后的原理是什么_Logging_Hadoop_Hdfs - Fatal编程技术网

Logging HDFS中使用的不同日志文件大小背后的原理是什么

Logging HDFS中使用的不同日志文件大小背后的原理是什么,logging,hadoop,hdfs,Logging,Hadoop,Hdfs,我目前正在为我安装的新Hadoop集群实现一个日志系统。在过去,我一直看到这些设置是以天为单位进行日志分割,每个文件以大约10倍HDFS块大小进行分割。当我需要使用这种方法时,我没有遇到任何问题,但在与一位希望将日志存储在一个长文件中的同事讨论后,我意识到我不太确定为什么要使用我提到的10倍方法。我能想到的原因是: 当我们只对几天感兴趣时,mapreduce作业将运行得更快 文件可以压缩/压缩/压缩以节省空间 还有其他的吗?我真的搞不懂为什么人们一天就把文件分成10倍HDFS大小的块。我认为,就

我目前正在为我安装的新Hadoop集群实现一个日志系统。在过去,我一直看到这些设置是以天为单位进行日志分割,每个文件以大约10倍HDFS块大小进行分割。当我需要使用这种方法时,我没有遇到任何问题,但在与一位希望将日志存储在一个长文件中的同事讨论后,我意识到我不太确定为什么要使用我提到的10倍方法。我能想到的原因是:

  • 当我们只对几天感兴趣时,mapreduce作业将运行得更快
  • 文件可以压缩/压缩/压缩以节省空间

  • 还有其他的吗?我真的搞不懂为什么人们一天就把文件分成10倍HDFS大小的块。我认为,就我的理论知识而言,了解更多关于日志为何以不同大小存储的原理将是非常酷的。

    文件越大,JobTracker安排作业的效果越好。超小型文件将意味着大量任务,这将导致性能下降。然而,拥有超大文件并不能让您只查询数据集的一部分。您需要在每天生成的数据量和文件大小之间找到平衡。如果您每天可以生成10倍于块大小的文件,那么每天就有一个文件——这样您就很容易只查询5天的值。否则,考虑创建一个ETL作业来将文件连接在一起。那么根本就没有理由在一天内分割文件?我过去看到的情况是,即使在一天之内,日志文件的大小也会在720mb或附近被切断(例如,如果一天有7gb的日志,它们将被记录为9个720mb的文件和1个略小于720mb的文件)。我能理解按天分割,但不能比那更小。