• 提问为什么hive中ads层建表一直出错


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 llll_dmdm 2024-04-20 22:16 采纳率: 0% 浏览 1 首页/ 大数据 / 提问为什么hive中ads层建表一直出错 hivehadoop大数据 在hive中建ads层表一直失败,显示以下错误:[2024-04-20 21:59:51.867]Container killed on request. Exit code is 143[2024-04-20 21:59:51.886]Container exited with a non-zero exit code 143. FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTaskMapReduce Jobs Launched:Stage-Stage-1: Map: 1 Reduce: 1 HDFS Read: 0 HDFS Write: 0 FAILTotal MapReduce CPU Time Spent: 0 msec 我的ads层建表语句:create table ads_max_api asSELECT data,city,MAX(API)FROM dwd_order_infoGROUP BY data,city 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-20 22:16
      关注

      引自免费微信小程序:皆我百晓生

      看起来你在Hive中创建ADS层表时遇到了一些问题。这个错误信息表明容器被请求杀死,并且有一个非零退出码143,这通常意味着作业因为资源限制(比如内存、CPU)而被YARN(Hadoop的资源管理器)杀死。

      为了解决这个问题,我们可以尝试以下几个步骤:

      1. 检查资源设置:检查Hive作业运行的YARN队列中的资源配置是否足够。可以通过以下命令查看队列配置:

        yarn queue -Q <your_queue_name>
        

        或者检查yarn-site.xml文件中的默认值。

      2. 增加任务内存:如果你发现资源不足,可以增加MapReduce任务的内存。在Hive提交查询时,添加以下参数:

        SET mapreduce.map.memory.mb=;
        SET mapreduce.reduce.memory.mb=;
        
      3. 分区表:如果你的数据量非常大,考虑对表进行分区,这样可以减少单个MapReduce任务处理的数据量。

        CREATE TABLE ads_max_api
        PARTITIONED BY (ds STRING)
        AS
        SELECT data, city, MAX(API)
        FROM dwd_order_info
        GROUP BY data, city, ds;
        

        然后根据'ds'字段的值添加分区:

        ALTER TABLE ads_max_api ADD PARTITION (ds='YYYY-MM-DD') LOCATION '/path/to/your/partition';
        
      4. 使用Tez执行引擎:Hive支持多种执行引擎,其中Tez通常比MapReduce有更好的性能。确认你的Hive使用的是Tez,并且它已经正确配置。

        SET hive.execution.engine=tez;
        
      5. 优化SQL查询:确保你的SQL查询是最优的,例如,避免不必要的数据传输。如果可能的话,尝试减少JOIN操作,或者将复杂的逻辑拆分成多个简单查询。

      6. 检查磁盘空间:确保HDFS上有足够的可用空间来存储结果。

      尝试以上建议后,再运行你的建表语句,看看问题是否解决。如果还有问题,你可能需要提供更详细的日志信息以便进一步分析。

      展开全部

      评论 编辑记录
    • Kwan的解忧杂货铺 Java领域优质创作者 2024-04-20 22:16
      关注

      晚上好🌙🌙🌙
      本答案参考ChatGPT-3.5

      这个错误是由于MapReduce程序在处理过程中被杀掉导致的,可能是由于数据太大或者集群资源不足导致。建议你尝试以下解决方案:

      1.增加资源分配

      可以尝试增加MapReduce任务的资源分配,比如增加Map任务数、Reduce任务数、Map的JVM Heap大小等等,可以通过conf.set(key, value)来设置相应的值。

      2.调整集群配置

      如果你的集群资源比较紧张,可以考虑调整集群配置,比如增加硬盘、内存、CPU等,以提供更好的计算资源。

      3.优化SQL语句

      考虑对查询语句进行优化,以减少计算量,比如只查询需要的列,尽量避免使用JOIN操作等,这样能够减少计算资源的消耗。

      4.扩容集群

      如果以上方法都没有办法解决问题,可以考虑扩容集群,以提供更多的计算资源,从而确保任务能够正常执行。

      最后,请检查数据是否符合须求,并且检查表格名、列名、数据类型等方面是否出错。

      评论
    • GISer Liu 2024-04-22 03:48
      关注

      该回答引用自GPT-3.5,由博主GISer Liu编写:

      根据你提供的信息,你在尝试在Hive中建立一个名为ads_max_api的表,但是在执行建表语句时遇到了错误,错误信息显示为容器被请求杀死,退出代码为143。
      这个错误通常与资源问题有关,可能是由于资源不足导致任务被杀死。下面是一些可能的解决方案和思路:

      1. 资源配置调整 :首先,你可以尝试调整Hive任务所使用的资源配置。这可能涉及到调整集群的内存、CPU等资源分配。你可以检查任务运行时的资源使用情况,并相应地调整集群的配置。
      2. 容器超时设置 :错误代码143通常表示容器被杀死,这可能是由于任务超时导致的。你可以尝试增加任务的超时时间,以便给任务更多的时间来完成。这通常可以通过调整相关配置参数来实现。
      3. 日志详细查看 :你可以查看更详细的日志信息,以了解任务失败的具体原因。在Hadoop集群中,你可以查看任务的日志文件,通常位于特定的日志目录中。查看更详细的日志可以帮助你更好地理解问题所在,从而采取针对性的解决方案。
      4. 数据量问题 :在你的建表语句中,你正在执行一个聚合操作,可能涉及大量数据。如果数据量较大,可能会导致任务执行时间较长,甚至耗尽集群资源。你可以尝试对数据进行分区处理,以减小每个任务处理的数据量,或者采取其他优化措施来提高任务执行效率。
      5. Hive配置优化 :你还可以检查Hive的配置参数,看是否有一些参数可以进行调整以优化任务的执行。例如,可以调整MapReduce任务的配置参数,以提高任务的并发度和执行效率。
        总的来说,你可以通过调整资源配置、增加超时时间、查看详细日志等方式来尝试解决这个问题。如果问题仍然存在,建议逐步排查并尝试不同的解决方案,直到问题得以解决。

      如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    GitHub操作
    Open3D(C++) 最小二乘拟合平面(直接求解法)
    .cn是几级域名?
    Linux之线程互斥
    B+树索引的管理
    spring boot 自定义druid数据源,如何注入配置
    找出多组分辨率中最接近目标值的一组
    深度优先搜索(DFS)和广度优先搜索(BFS)
    Numerical Calculation 数值计算
    猫头虎的技术笔记:Spring Boot启动报错解决方案
  • 原文地址:https://ask.csdn.net/questions/8092057