【问题标题】:Hadoop tmp directory gets hugeHadoop tmp 目录变得巨大
【发布时间】:2015-01-29 17:18:12
【问题描述】:

我的问题是我有一个 5 节点的 Hadoop 集群,集群上的文件需要 350 GB。我正在运行一个 Pig 脚本,它连接三个不同的文件并加入它们。 该作业每次运行不到 30 分钟即可完成所有 map 任务,然后 6 小时完成 reduce 任务,所有这些 reduce 任务在最好的情况下最终都会失败。在最坏的情况下,我的 hadoop 卡住了,这是由于进入安全模式的名称节点导致它没有足够的空间(超出配额)。

tmp 目录占用大厅可用空间(7TB!!)引起的问题。 我的脚本如下所示:

info_file = LOAD '$info' as (name, size, type,generation,streamId);
chunks_file = LOAD '$chunk' as (fp, size);
relation_file = LOAD '$relation' as (fp, filename);

chunks_relation = JOIN chunks_file BY fp, relation_file BY fp;
 chunks_files= JOIN chunks_relation BY $3, info_file BY $0;

result = FOREACH chunks_files  GENERATE  $0,$1,$3,$5,$6,$7,$8;
STORE  result INTO '$out';

有什么想法吗??

【问题讨论】:

    标签: hadoop hdfs quota tmp exceed


    【解决方案1】:

    您的脚本看起来不错。您要加入的文件有多大?

    Join 在任何地方都是一个代价高昂的运算符。您可以使用 Pig 中的复制、倾斜、合并连接来优化连接。浏览这些连接文档一次,然后根据您的文件大小和要求进行申请。

    https://bluewatersql.wordpress.com/category/Pig/

    【讨论】:

    • 3个文件加起来20GB,每次join占用7TB以上是正常的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多