【问题标题】:How to solve no space left on device when running hive query on aws emr在 aws emr 上运行 hive 查询时如何解决设备上没有剩余空间的问题
【发布时间】:2017-11-05 04:54:32
【问题描述】:

我有 aws emr 设置,我在上面运行我的 hive 查询。 目前硬件设置如下。

一位大师 - m3.xlarge 8 个 vCPU、15 GiB 内存、80 GB SSD 存储 EBS 存储:无

十五个核心节点 - m3.xlarge 8 个 vCPU、15 GiB 内存、80 GB SSD 存储 EBS 存储:无

我的查询处理大约 5 亿条记录,它们成为内部配置单元表的一部分。 我对这些内部表执行合并查询。

现在我知道一种解决方案,如果我增加核心节点的数量,问题就会消失。 但是我需要帮助来理解为什么会发生这个错误以及如何调试和解决它。我有任何参考资料可以参考。

这是堆栈跟踪。

For Reason - org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Map 1, vertexId=vertex_1507712059631_0734_1_01, diagnostics=[Task failed, taskId=task_1507712059631_0734_1_01_000066, diagnostics=[TaskAttempt 0 failed, info=[Container container_1507712059631_0734_01_000056 finished with diagnostics set to [Container failed, exitCode=-100. Container released on a *lost* node]], TaskAttempt 1 failed, info=[Container container_1507712059631_0734_01_000038 finished with diagnostics set to [Container failed, exitCode=-100. Container released on a *lost* node]], TaskAttempt 2 failed, info=[Error: Encountered an FSError while executing task: attempt_1507712059631_0734_1_01_000066_2:org.apache.hadoop.fs.FSError: java.io.IOException: No space left on device
at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.write(RawLocalFileSystem.java:253)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:122)
at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:60)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at org.apache.tez.runtime.library.common.sort.impl.IFileOutputStream.write(IFileOutputStream.java:120)
at

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题 m4.2xlarge InstanceCount=20 我正在用 sparkSQL 加载,它仍然抛出这个错误

标签: amazon-web-services hive hiveql emr


【解决方案1】:

带有 MapReduce 引擎的 Hive 将中间结果存储在磁盘上。如果中间结果大小超过了可用磁盘空间(在连接操作期间很容易发生),那么这会导致错误。

您可以尝试使用 SparkSql,它会在执行前优化您的查询。hive 命令可以重复使用。

https://aws.amazon.com/blogs/big-data/using-spark-sql-for-etl/

作为前端,您可以使用 zeppelin 或 jupyter notebooks,或者您使用 java 或 scala 编写一些小型 spark 作业。

【讨论】:

    猜你喜欢
    • 2020-12-16
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2015-08-30
    • 2010-12-05
    • 2012-03-08
    相关资源
    最近更新 更多