【问题标题】:Does msck repair table require hadoop/map-reduce?msck 修复表是否需要 hadoop/map-reduce?
【发布时间】:2019-10-22 07:46:46
【问题描述】:

我希望运行 Hive 而无需运行 hadoop/map-reduce。

我希望用户仅将 hive 用于元数据,并使用 spark、presto 等进行查询/执行。

我认为这通常会起作用,但我担心一些管理命令。具体来说,我需要知道msck repair table 是如何工作的。

此命令是否需要 map-reduce 才能运行,或者 hive 是否在 metastore/etc 中处理它?

【问题讨论】:

    标签: hive bigdata partition


    【解决方案1】:

    Map Reduce 二进制文件不需要

    msck 修复表。

    Map Reduce (MR) 是用于大规模并行计算的概念。

    如果您不使用 Impala 或其他执行引擎(如 Spark)进行处理,Hive 将使用 Map Reduce。

    https://www.cloudera.com/documentation/enterprise/5-13-x/topics/cdh_ig_hive_troubleshooting.html#hive_msck_repair_table_best_practices

    在任何情况下,使用 HDFS 等都意味着安装 Hadoop,并且无论如何您都会获得所有 MR 好东西。

    您当然可以在没有 Hadoop 的情况下运行 Spark。也就是说,它的一些功能依赖于 Hadoop 二进制文件——例如镶木地板。

    编辑 - 在接受的同时从 cmets 中提取它,因为它非常有用:

    这个链接的答案深入探讨了 msck repair 如何在幕后工作,并清楚地表明 map-reduce 不是由它触发的。

    What does MSCK REPAIR TABLE do behind the scenes and why it's so slow?

    【讨论】:

    • 我非常了解map reduce和spark等。我只是不明白 hive 是否会使用执行引擎来爬取命令的目录。仍然不是 100% 确定;该链接说该命令非常昂贵,但没有提及它是由元存储还是执行引擎完成的。你会留下它不需要执行引擎,对吧?
    • JH,以您的评分,我确实希望如此!但为什么会呢? Quote : " 考虑具有多个分区键的表(2-3个分区键在实践中很常见)。msck修复将必须对表目录下的所有子目录进行全树遍历,解析文件名,确保检查文件名是否有效,检查分区是否已存在于元存储中,然后添加元存储中不存在的唯一分区。...“来自stackoverflow.com/questions/53667639/…
    • 我希望你能说服。
    • 您是否找到了我可能不知道的新见解?如果不是,请考虑接受答案。
    • 别担心,我最终会回来回答的,不必追逐 :) 。刚刚工作了一个漫长的一周。您的回答是正确的,但您没有解释 msck 修复表的工作原理(以及为什么需要或不需要 MR),您只是谈到了执行引擎。您在评论中提供的链接非常有用,并且很好地回答了我的问题,因此我将其纳入您的答案并接受了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2011-07-21
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多