我们新安装的CDH 5.5.2群集与spark独立群集经常出现错误。我们有7个工作节点,每个节点有16 GB内存。但是,几乎所有的连接都失败了。
我已经确定我使用--executor-memory分配了完整的内存并确保它已经分配了那么多内存并通过在Spark UI中验证它。
我们的大部分错误如下。我们从我们这边检查了一些东西。但我们的解决方案都没有奏效。
Caused by: java.io.FileNotFoundException: /tmp/spark-b9e69c8d-153b-4c4b-88b1-ac779c060de5/executor-44e88b75-5e79-4d96-b507-ddabcab30e1b/blockmgr-cd27625c-8716-49ac-903d-9d5c36cf2622/29/shuffle_1_66_0.index (Permission denied)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at org.apache.spark.network.shuffle.ExternalShuffleBlockResolver.getSortBasedShuffleBlockData(ExternalShuffleBlockResolver.java:275)
... 27 more
at org.apache.spark.network.client.TransportResponseHandler.handle(TransportResponseHandler.java:162)
at org.apache.spark.network.server.TransportChannelHandler.channelRead0(TransportChannelHandler.java:103)
at org.apache.spark.network.server.TransportChannelHandler.channelRead0(TransportChannelHandler.java:51)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:244)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
... 1 more
/ tmp拥有777个权限,但仍然可以说是/ tmp没有权限。
我们已将SPARK_LOCAL_DIRS配置到我们拥有更好磁盘内存的其他文件夹,但群集仍在使用/ tmp,为什么。?我们通过Cloudera管理器更改了它,并在spark中的spark配置中打印了spark.local.dirs,它给出了我们设置的文件夹。但是,当谈到执行时,它是另一种方式。它正在检查/ tmp中的文件。我们在这里遗漏了什么吗?
我们关闭了火花纱线,是否有任何纱线单独配置?
有人遇到过这个问题吗?为什么这会再次发生在我们身上?我们有与horton工作类似的集群,我们在那里安装了裸机spark(这不是发行版的一部分),这非常有效。但是,在我们的新集群中,我们正面临着这个问题。可能是我们可能错过了一些东西。但很想知道我们错过了什么。
答案 0 :(得分:0)
我解决了这个问题,在cloudera manager上禁用了这个属性:
spark.shuffle.service.enabled
spark.dynamicAllocation.enabled
true - &gt;假的
答案 1 :(得分:0)
这项工作适用于我的
所有节点上的
sudo chmod -R 0777 / tmp sudo chmod + t / tmp
with parallel-ssh
sudo parallel-ssh -h hosts.txt -l ubuntu --timeout = 0&#39; sudo chmod -R 0777 / tmp&#39;
sudo parallel-ssh -h hosts.txt -l ubuntu --timeout = 0&#39; sudo chmod + t / tmp&#39;