小编van*_*jar的帖子

Spark worker shutdown - 如何释放共享资源

在Spark手册中,建议在worker代码中使用共享静态资源(例如连接池).

手册中的示例:

dstream.foreachRDD { rdd =>
  rdd.foreachPartition { partitionOfRecords =>
    // ConnectionPool is a static, lazily initialized pool of connections
    val connection = ConnectionPool.getConnection()
    partitionOfRecords.foreach(record => connection.send(record))
    ConnectionPool.returnConnection(connection)  // return to the pool for future reuse
  }
}
Run Code Online (Sandbox Code Playgroud)

在执行程序关闭之前需要释放/关闭静态资源时该怎么办?没有地方可以调用该close()功能.试过一个关机钩子,但它似乎没有帮助.

实际上我的工作进程当前变成了僵尸,因为我正在使用共享资源创建一个非deamon线程池(HBase异步客户端),这意味着JVM会一直挂起.

我正在使用驱动程序上调用的Spark Streaming graceful shutdown:

streamingContext.stop(true, true);
Run Code Online (Sandbox Code Playgroud)

编辑:

似乎Spark JIRA中存在一个问题,即处理同样的问题

https://issues.apache.org/jira/browse/SPARK-10911

apache-spark spark-streaming

6
推荐指数
0
解决办法
989
查看次数

如何在没有负载均衡器的情况下访问 ECS 服务?

我有一个在 AWS ECS 上运行的 Docker 容器。我不需要负载均衡器,因为容器旨在处理 websocket 连接。

https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/显示使用负载均衡器 DNS 名称到达容器。但由于我没有添加负载均衡器,所以我看不到到达容器的方法。

如何在没有负载均衡器的情况下与 ECS 上运行的 Docker 容器建立 Websocket 连接?

amazon-ecs amazon-elb aws-cloudmap

6
推荐指数
1
解决办法
4376
查看次数

火花流的调度延迟突然增加作业不改变其他参数

我有一个火花流工作在生产中运行1秒批次.我使用CDH 5.5 Spark 1.5.我们使用Kafka Create Directstream.我们启用了背压.我们不想起诉动态分配所以用固定数量的执行者执行的工作.

下面的图像我可以看到这些是从13.50的调度延迟突然增加但在同一时间我没有在处理时间看到任何dealy.

  1. 在处理时间相同的情况下,增加调度时间的可能原因是什么.
  2. 群集中的其他作业负载是否会影响当前的流式传输作业.根据我的理解,不应该是这种情况,因为流式传输的执行程序是预先分配的并且已经在运行

有什么想法吗?

在此输入图像描述

apache-spark spark-streaming

5
推荐指数
1
解决办法
1512
查看次数