问题标签 [tez]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1905 浏览

hadoop - tez/hive 中的 OOM

[经过一些回答和评论后,我根据此处获得的知识提出了一个新问题:Hive/tez 中的内存不足与 LATERAL VIEW json_tuple ]

我的一个查询始终失败并出现错误:

这里的关键字似乎是java.lang.OutOfMemoryError: Java heap space.

我环顾四周,但我认为我从 Tez 那里了解的所有内容都没有帮助我:

  • ​yarn-site/yarn.nodemanager.resource.memory-mb 已满 => 我用尽了所有内存
  • yarn-site/yarn.scheduler.maximum-allocation-mb:与 yarn.nodemanager.resource.memory-mb 相同
  • yarn-site/yarn.scheduler.minimum-allocation-mb = 1024
  • hive-site/hive.tez.container.size = 4096(yarn.scheduler.minimum-allocation-mb 的倍数)

​我的查询有 4 个映射器,3 个非常快,第 4 个每次都死掉。这是查询的 Tez 图形视图:

tez 图形视图

从这张图片:

  • 表contact有150M行,283GB的ORC压缩数据(有一个大的json字段,LATERAL VIEW'ed)
  • 表m有1M行,20MB ORC压缩数据
  • 表 c 有 2k 行,< 1MB ORC 压缩
  • 表 e 有 800k 行,7GB 的 ORC 压缩
  • e 与所有其他表左联接

e 和contact 是分区的,WHERE 子句中只选择了一个分区。

因此,我试图增加地图的数量:

  • tez.grouping.max-size:默认为 650MB,即使我将其降低到 - tez.grouping.min-size(16MB)也没有区别
  • tez.grouping.split-count 甚至增加到 1000 也没有什么区别
  • tez.grouping.split-wave 默认为 1.7,即使增加到 5 也没有区别

如果它是相关的,这里有一些其他的内存设置:

  • mapred-site/mapreduce.map.memory.mb = 1024(最小容器大小)
  • mapred-site/mapreduce.reduce.memory.mb = 2048(2 * 最小容器大小)
  • mapred-site/mapreduce.map.java.opts = 819(0.8 * 最小容器大小)
  • mapred-site/mapreduce.reduce.java.opts = 1638 (0.8 * mapreduce.reduce.memory.mb)
  • mapred-site/yarn.app.mapreduce.am.resource.mb = 2048 (2 * min container size)
  • mapred-site/yarn.app.mapreduce.am.command-opts = 1638 (0.8 * yarn.app.mapreduce.am.resource.mb)
  • mapred-site/mapreduce.task.io.sort.mb = 409(0.4 * 最小容器大小)

我的理解是 tez 可以将工作分成许多负载,因此需要很长时间但最终会完成。​是我错了,还是我没有找到方法?

上下文:hdp2.6,8 个具有 32GB 内存的数据节点,使用基于 json 的粗大横向视图通过直线运行进行查询。

0 投票
1 回答
195 浏览

apache-pig - 带有 tez 的 aws emr 上的 Pig 脚本偶尔会因 OutOfMemoryException 而失败

我有一个使用自定义 UDF 在 emr 集群(emr-5.4.0)上运行的 pig 脚本。UDF 用于查找一些维度数据,为其导入(有些)大量文本数据。

在 pig 脚本中,UDF 的使用如下:

UDF 将一些数据存储在Map<Integer, Integer>

在某些输入数据上,聚合失败,异常如下

当 pig 聚合运行时不会发生这种情况mapreduce,因此我们的解决方法是替换pig -t tezpig -t mapreduce

由于我是 amazon emr 的新手,并且是 tez 的猪,因此我会很感激有关如何分析或调试问题的一些提示。

编辑: 在 tez 堆栈上运行 pig 脚本时,它看起来像一个奇怪的运行时行为。

请注意,猪脚本正在使用

  • 复制连接(要连接的较小关系需要放入内存中)和
  • 已经提到的 UDF,它正在初始化Map<Integer, Interger>产生上述 OutOfMemoryError。
0 投票
1 回答
907 浏览

hadoop - Hadoop Hive TEZ 任务失败(启动容器)

我有 hadoop-2.8.3、hive-2.3.2 和 tez(试用 0.9 和 0.8.5 版本)。tez-site 基本配置:

  • tez.lib.uris:/apps/tez/apache-tez-0.8.5-bin.tar.gz(上传到hdfs)
  • tez.use.cluster.hadoop-libs:假

容器日志 stderr 显示:

YARN 资源管理器跟踪显示:

因此,容器在找不到/加载 DAGAppMaster 类时失败了两次。我忘记了什么?

0 投票
1 回答
13063 浏览

hadoop - Hive - 如何知道我当前使用的是哪个执行引擎

我想以这样一种方式自动化我的配置单元 ETL 工作流,因为内存限制,我需要基于执行引擎(Tez 或 MR)执行配置单元作业。

请您帮忙,因为我想在我的整个工作流程之间交叉检查我目前正在处理的执行引擎。

提前致谢。

0 投票
1 回答
623 浏览

hadoop - hive llap - 支持哪个执行引擎?火花先生,特兹

文档不清楚。所有关于 Hive LLAP(Long Live and Process)的博客文章示例都使用 Tez 执行引擎,但是 Spark/MR 配置单元引擎也可以使用 LLAP 吗?

0 投票
1 回答
1197 浏览

hadoop - Hive + Tez :: 一个连接查询在最后 2 个映射器上停留了很长时间

我有一个视图表与一个临时表连接,并有意启用了以下参数。

代码片段是,

在正常情况下,两个表都可以有任意数量的记录。
但是,在 SCU_TMP 表中,预计只有 10-50 条记录具有相同的用户 ID。

但在某些情况下,几个用户 ID 在 SCU Temp 表中带有大约 10k-20k 条记录,这会产生叉积效应。
在这种情况下,它将永远运行,只需 1 个映射器即可完成。

有没有办法优化它并优雅地运行它?

0 投票
1 回答
5308 浏览

hadoop - Hive Vertex 失败,vertexName=Map

你好我得到的一切

“顶点失败,顶点名称=地图”

插入配置单元表时出错。.

顶点失败,vertexName=Map 1,vertexId=vertex_1514985864009_4176244_3_00,诊断=[任务失败,taskId=task_1514985864009_4176244_3_00_000006,诊断=[TaskAttempt 0 失败,info=[错误:运行任务时失败:java.lang.RuntimeException:javalangException。 :org.apache.hadoop.hive.ql.metadata.HiveException:处理行时出现 Hive 运行时错误

以下是错误的另一部分

在 org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor 在 org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run 在 org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run 在 org .apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run at org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run

在 java.security.AccessController.doPrivileged 在 javax.security.auth.Subject.doAs 在 org.apache.hadoop.security.UserGroupInformation.doAs 在 org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal 在 org.apache .tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal at org.apache.tez.common.CallableWithNdc.call

0 投票
1 回答
4633 浏览

hadoop - Hive - Select count(*) 不与 Tez 一起使用,但与 MR 一起使用

我有一个带有镶木地板数据的 Hive 外部表。

当我跑步select count(*) from table1时,Tez 失败了。

但是当执行引擎更改为 MR 时,它可以工作。知道为什么 Tez 会失败吗?Tez 出现以下错误:

错误:org.apache.hive.service.cli.HiveSQLException:处理语句时出错:FAILED:执行错误,从 org.apache.hive 的 org.apache.hadoop.hive.ql.exec.tez.TezTask 返回代码 1。 service.cli.operation.Operation.toSQLException(Operation.java:380) 在 org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:257) 在 org.apache.hive.service.cli。 operation.SQLOperation.access$800(SQLOperation.java:91) at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:348) at java.security.AccessController.doPrivileged(Native Method ) 在 org.apache.hive.service.cli.operation 的 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) 的 javax.security.auth.Subject.doAs(Subject.java:422)。SQLOperation$BackgroundWork.run(SQLOperation.java:362) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java .util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) (状态=08S01,代码=1)624)在java.lang.Thread.run(Thread.java:748)(状态=08S01,代码=1)624)在java.lang.Thread.run(Thread.java:748)(状态=08S01,代码=1)

0 投票
0 回答
102 浏览

hadoop - 在 Tez 上使用 Pig 的哈希连接性能不佳

我有一系列 Pig 脚本,它们正在转换来自需要连接在一起的多个数据源的数亿条记录。在每个脚本快结束时,我达到了 JOIN 性能变得非常缓慢的地步。查看 Tez 视图中的 DAG,我看到它被分成相对较少的任务(通常 100-200 个),但每个任务都需要几个小时才能完成。任务描述显示它正在执行 HASH_JOIN。

有趣的是,我只有在 Tez 执行引擎上运行时才会遇到这个瓶颈。在 MapReduce 上,它仍然需要一段时间,但没有什么比我在 Tez 上的痛苦爬行更厉害了。但是,在 MapReduce 上运行是一个问题,因为我对 MapReduce 有一个问题,我在这里问了另一个问题。

这是我的代码示例(抱歉,我必须使代码非常通用才能发布在互联网上)。我想知道我能做些什么来消除这个瓶颈——指定并行性有帮助吗?我的方法有问题吗?

0 投票
1 回答
45 浏览

hadoop - 如果我在 hive 的所有列上使用 distinct,将运行多少个 reducer?

我正在运行一个配置单元查询,其中对所有选定的列都应用了 distinct,我注意到有几个 reducer 正在启动以运行相同的查询。谁能解释一下背后的原因?