我是Hive的新手。我毫不怀疑。

  • 我想知道Hive如何将查询转换为MapReduce作业?
  • 我看了说明命令,它给了我一个阶段计划,
    依赖性。我想知道阶段的细节。这些阶段如何
    被定义?
  • 如何控制MapReduce的执行。假设我想改变
    减少联接到 map 侧联接。
  • 最佳答案

    在抽象级别上,当您在配置单元中执行查询时,会发生以下情况

  • 解析查询并创建抽象语法树
  • 然后将
  • AST转换为MapReduce任务的DAG
  • 然后为每个MapReduce任务创建一个Runnable。
  • 然后将MapReduce任务序列化为xml文件(存储在/tmp/hive-${user.name}/中)
  • 执行引擎将反序列化此xml文件并执行
  • 任务

    希望这能回答您的问题1和2。您可以从here阅读更多内容

    对于问题3,我相信配置单元将在可能的情况下自动进行 map 侧连接。检查HIVE-3784
    在此之前,您必须在 hive 查询中给出提示以进行mapside联接。看到这个link

    要了解有关联接如何在 hive 中工作的更多信息,请参见此link

    关于hadoop - hive 阶段mapreduce,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25761032/

    10-17 01:25