Apache火花s3a提交者纹叠的存问题

0

的问题

我真的需要一些帮助,在这里:

我们正在使用Spark3.1.2使用独立的集群。 自从我们开始使用的s3a目录,提交者,我们的火花岗位稳定性和性能大幅增长!

最近,然而我们完全莫名其妙的故障排除这s3a目录,提交者的问题日,并想知道如果你有任何想法什么?

我们的火花工作的失败,因为Java OOM(或相当的进程限制)的错误:

 An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.

: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
    at java.base/java.lang.Thread.start0(Native Method)
    at java.base/java.lang.Thread.start(Thread.java:803)
    at java.base/java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:937)
    at java.base/java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1343)
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
    at java.base/java.util.concurrent.Executors$DelegatedExecutorService.submit(Executors.java:714)
    at org.apache.spark.rpc.netty.DedicatedMessageLoop.$anonfun$new$1(MessageLoop.scala:174)
    at org.apache.spark.rpc.netty.DedicatedMessageLoop.$anonfun$new$1$adapted(MessageLoop.scala:173)
    at scala.collection.immutable.Range.foreach(Range.scala:158)
    at org.apache.spark.rpc.netty.DedicatedMessageLoop.<init>(MessageLoop.scala:173)
    at org.apache.spark.rpc.netty.Dispatcher.liftedTree1$1(Dispatcher.scala:75)
    at org.apache.spark.rpc.netty.Dispatcher.registerRpcEndpoint(Dispatcher.scala:72)
    at org.apache.spark.rpc.netty.NettyRpcEnv.setupEndpoint(NettyRpcEnv.scala:136)
    at org.apache.spark.storage.BlockManager.<init>(BlockManager.scala:231)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:394)
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:189)
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:277)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:458)
    at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:58)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:247)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
    at py4j.Gateway.invoke(Gateway.java:238)
    at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:80)
    at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:69)
    at py4j.GatewayConnection.run(GatewayConnection.java:238)
    at java.base/java.lang.Thread.run(Thread.java:834)

火花纹转储显示,超过5000提交者线上的火花司机! 这里是一个例子:

Thread ID   Thread Name Thread State    Thread Locks
1047    s3-committer-pool-0 WAITING 
1449    s3-committer-pool-0 WAITING 
1468    s3-committer-pool-0 WAITING 
1485    s3-committer-pool-0 WAITING 
1505    s3-committer-pool-0 WAITING 
1524    s3-committer-pool-0 WAITING 
1529    s3-committer-pool-0 WAITING 
1544    s3-committer-pool-0 WAITING 
1549    s3-committer-pool-0 WAITING 
1809    s3-committer-pool-0 WAITING 
1972    s3-committer-pool-0 WAITING 
1998    s3-committer-pool-0 WAITING 
2022    s3-committer-pool-0 WAITING 
2043    s3-committer-pool-0 WAITING 
2416    s3-committer-pool-0 WAITING 
2453    s3-committer-pool-0 WAITING 
2470    s3-committer-pool-0 WAITING 
2517    s3-committer-pool-0 WAITING 
2534    s3-committer-pool-0 WAITING 
2551    s3-committer-pool-0 WAITING 
2580    s3-committer-pool-0 WAITING 
2597    s3-committer-pool-0 WAITING 
2614    s3-committer-pool-0 WAITING 
2631    s3-committer-pool-0 WAITING 
2726    s3-committer-pool-0 WAITING 
2743    s3-committer-pool-0 WAITING 
2763    s3-committer-pool-0 WAITING 
2780    s3-committer-pool-0 WAITING 
2819    s3-committer-pool-0 WAITING 
2841    s3-committer-pool-0 WAITING 
2858    s3-committer-pool-0 WAITING 
2875    s3-committer-pool-0 WAITING 
2925    s3-committer-pool-0 WAITING 
2942    s3-committer-pool-0 WAITING 
2963    s3-committer-pool-0 WAITING 
2980    s3-committer-pool-0 WAITING 
3020    s3-committer-pool-0 WAITING 
3037    s3-committer-pool-0 WAITING 
3055    s3-committer-pool-0 WAITING 
3072    s3-committer-pool-0 WAITING 
3127    s3-committer-pool-0 WAITING 
3144    s3-committer-pool-0 WAITING 
3163    s3-committer-pool-0 WAITING 
3180    s3-committer-pool-0 WAITING 
3222    s3-committer-pool-0 WAITING 
3242    s3-committer-pool-0 WAITING 
3259    s3-committer-pool-0 WAITING 
3278    s3-committer-pool-0 WAITING 
3418    s3-committer-pool-0 WAITING 
3435    s3-committer-pool-0 WAITING 
3452    s3-committer-pool-0 WAITING 
3469    s3-committer-pool-0 WAITING 
3486    s3-committer-pool-0 WAITING 
3491    s3-committer-pool-0 WAITING 
3501    s3-committer-pool-0 WAITING 
3508    s3-committer-pool-0 WAITING 
4029    s3-committer-pool-0 WAITING 
4093    s3-committer-pool-0 WAITING 
4658    s3-committer-pool-0 WAITING 
4666    s3-committer-pool-0 WAITING 
4907    s3-committer-pool-0 WAITING 
5102    s3-committer-pool-0 WAITING 
5119    s3-committer-pool-0 WAITING 
5158    s3-committer-pool-0 WAITING 
5175    s3-committer-pool-0 WAITING 
5192    s3-committer-pool-0 WAITING 
5209    s3-committer-pool-0 WAITING 
5226    s3-committer-pool-0 WAITING 
5395    s3-committer-pool-0 WAITING 
5634    s3-committer-pool-0 WAITING 
5651    s3-committer-pool-0 WAITING 
5668    s3-committer-pool-0 WAITING 
5685    s3-committer-pool-0 WAITING 
5702    s3-committer-pool-0 WAITING 
5722    s3-committer-pool-0 WAITING 
5739    s3-committer-pool-0 WAITING 
6144    s3-committer-pool-0 WAITING 
6167    s3-committer-pool-0 WAITING 
6289    s3-committer-pool-0 WAITING 
6588    s3-committer-pool-0 WAITING 
6628    s3-committer-pool-0 WAITING 
6645    s3-committer-pool-0 WAITING 
6662    s3-committer-pool-0 WAITING 
6675    s3-committer-pool-0 WAITING 
6692    s3-committer-pool-0 WAITING 
6709    s3-committer-pool-0 WAITING 
7049    s3-committer-pool-0 WAITING 

这是考虑到我们的设置不允许超过100线... 或者我们不懂的东西...

这里是我们的配置和设置:

fs.s3a.threads.max  100 
fs.s3a.connection.maximum  1000 
fs.s3a.committer.threads 16   
fs.s3a.max.total.tasks  5
fs.s3a.committer.name   directory
fs.s3a.fast.upload.buffer                 disk
io.file.buffer.size                                1048576
mapreduce.outputcommitter.factory.scheme.s3a    - org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory

我们尝试了不同版本的火花Hadoop云图书馆,但问题始终相同。

https://repository.cloudera.com/content/repositories/releases/org/apache/spark/spark-hadoop-cloud_2.11/2.4.0-cdh6.3.2/spark-hadoop-cloud_2.11-2.4.0-cdh6.3.2.jar

https://repository.cloudera.com/artifactory/libs-release-local/org/apache/spark/spark-hadoop-cloud_2.11/2.4.0.7.0.3.0-79/spark-hadoop-cloud_2.11-2.4.0.7.0.3.0-79.jar

https://repo1.maven.org/maven2/org/apache/spark/spark-hadoop-cloud_2.12/3.2.0/spark-hadoop-cloud_2.12-3.2.0.jar

https://repository.cloudera.com/artifactory/libs-release-local/org/apache/spark/spark-hadoop-cloud_2.12/3.1.2.7.2.12.0-291/spark-hadoop-cloud_2.12-3.1.2.7.2.12.0-291.jar

我们真的很感激如果你能给我们指出正确的方向

amazon-s3 apache-spark hadoop java
2021-11-23 16:49:54
2

最好的答案

3

它将 HADOOP16570 S3A提交者泄漏的螺纹/提出了OOM在工作/任务,承诺在规模

移动到hadoop的3.3.0二进制文件的修复。 理想的3.3.1解决一些其他问题,特别是重复jobIDs来自火花。 不知道该如何回到CDH释放,修复了,我可以工作了,如果你真的需要现在。 不CDH6.x,肯定

2021-11-28 12:13:50

谢谢你这么多! 事实上我们所做的一切并没有帮助。
Ofer Eliassaf

我们现在的问题是寻找正确的司机-我们在哪里可以获取的火花云罐子有关的版本吗? 将这个驱动程序工作的火花3.1.2: mvnrepository.com/artifact/org.apache.spark/... ??
Ofer Eliassaf

火云罐子必须是一个用你的火花发行版;它只是一个薄结合类
stevel

嗨,我们正在努力使这个火花3.1.2这是未来捆绑的人用云3.2. 它是安全提供火花hadoop云3.3.1在一起的人用云3.2库? (我们试图去拆版本,并得到了一些diffuculties与动物园管理员图书馆馆长的不匹配,以番石榴。 一个速度更快的轨道将要去捆绑,只是添加comitter的3.3.1. 将它的工作?). 谢谢!
Ofer Eliassaf

使用的火花hadoop云3.1.2;你将需要全套云计算进行安全评估-3.3.x完美同步。 或移植的提交者贴仅为3.2hadoop
stevel

这个火花hadoop云3.1.2有这个错误,在它的(这是一个噩梦找到它,因为它不在官方专家发布). 什么我们最后做的是:备选办法1(我们目前的设置):使用火花3.1.2分解开版本。 我们加入Hadoop3.3.1二,我们增加了火花hadoop云3.2.0解决的提交者的问题。 备选案文2(其中,我们考虑):把Spark3.1.2捆绑的(其中涉及个人用云3.2)和加火花hadoop云3.2.0用于固定comitter issu. 这是更好地在你的意见吗?
Ofer Eliassaf

线的渗漏是在hadoop有关信息请参阅;它只应hadoop*这需要更新。
stevel
1

结帐, 这篇文章 在调S3A.

具体的我会看看这个,即使其归类阵列:

你可能需要进行仔细的调整,以减少风险的运行存储器,特别是如果数据是在缓冲存储器。 还有一个 数量参数,这些参数可以调整:

总数线提供文件系统的数据 上传或任何其他排队文件系统操作。 这是设置在 fs。s3a.螺纹。最大。

操作的数量,这可以排队等待执行,等待一个 螺纹。 这是设在fs。s3a.最大。总。任务。

该区块数的单个输出流可以有活动 (即,正在上传一线或排队在文件系统 线的队列)。 这是设在fs。s3a.快。上传。活跃。块。

时间长度,一个空闲线可以留在该线的游泳池 之前退休。 这是设在fs。s3a.螺纹。keepalivetime.

我想你可能会找到减少的数量线,将删除记忆的压力。

我也建议你为你 fs.s3a.fast.upload.active.blocks 它还将减轻记忆的压力。 我认为降低螺纹计数应该是你的第一个举动为100是有点咄咄逼人。 你是有可能的封顶上的带宽和额外的线是不是有可能做任何事情,但耗时的记忆。

2021-11-28 12:08:19

你知道是什么驱动线用的? 如果我理解正确配置的线,应为工人。 什么是驱动线用的?
Ofer Eliassaf

看看s3提交者的文件。(不是100%与此相同,但一个很好的地方了解s3和火花)。 它提出了构想文件被送交司机,他们的承诺。 我们不可能知道这是相同于本文件的编写,但它似乎是合乎逻辑的,因为驱动器是唯一一个知道的工作成功地/失败。 我没有找到一个烟枪声称这为真实的,但它似乎是合理的/合理的。 github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/...
Matt Andruff

这也会那么做的意义为何使用100线每个工人最终可能会有5000程驱动和为什么再次你应该考虑使用数量将不会添加更多的压力驱动程序。 (降低你的线数)
Matt Andruff

看答案通过@Stevel-这是一个众所周知的hadoop错误的早期版本的提交者!
Ofer Eliassaf

非常感谢你侦测我。
Matt Andruff

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................