gpt4 book ai didi

hadoop - 将Hadoop作业的结果添加到Hive Table

转载 作者:行者123 更新时间:2023-12-02 21:05:22 28 4
gpt4 key购买 nike

我有一个仅处理 map 的作业,可处理大型文本文件。每条线都经过分析和分类。 MultipleOutputs用于将每个类别输出到单独的文件中。最终,所有数据都会添加到每个类别专用的Hive表中。我当前的工作流程可以完成工作,但是有点麻烦。我将添加几个类别,并认为我可能可以简化流程。我有几个想法,正在寻找一些建议。

当前工作流程:

  • 仅 map 作业将大文件分为几类。输出看起来像这样:

  • categ1-m-00000
    categ1-m-00001
    categ1-m-00002
    categ2-m-00000
    categ2-m-00001
    categ2-m-00002
    categ3-m-00000
    categ3-m-00001
    categ3-m-00002
  • 外部(非Hadoop)进程将输出文件复制到每个类别的单独目录中。

  • 类别1/00000
    类别1/00001
    类别1/00002
    类别2/00000
    类别2/00001
    类别2/00002
    categ3 / 00000
    categ3 / 00001
    categ3 / 00002
  • 为每个类别创建一个外部表,然后将数据插入到该类别的永久Hive表中。

  • 可能的新工作流程
  • 使用Spark遍历输出文件,并根据文件名将数据插入适当的永久Hive表中。
  • 使用HCatalog将数据直接从Mapper或专用于每个类别的Reducer或一组Reducer插入永久Hive表中。
  • 最佳答案

    对于MultipleOutputs,将输出路径设置为配置单元外部表所在的基本文件夹。
    然后将数据写入"<table_name>/<filename_prefix>"
    您的数据将位于目标表中。

    关于hadoop - 将Hadoop作业的结果添加到Hive Table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42117843/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com