相关疑难解决方法(0)

Spark的KMeans无法处理bigdata吗?

KMeans有几个参数用于训练,初始化模式默认为kmeans ||.问题是它快速(少于10分钟)前进到前13个阶段,然后完全挂起,不会产生错误!

再现问题的最小示例(如果我使用1000点或随机初始化,它将成功):

from pyspark.context import SparkContext

from pyspark.mllib.clustering import KMeans
from pyspark.mllib.random import RandomRDDs


if __name__ == "__main__":
    sc = SparkContext(appName='kmeansMinimalExample')

    # same with 10000 points
    data = RandomRDDs.uniformVectorRDD(sc, 10000000, 64)
    C = KMeans.train(data, 8192,  maxIterations=10)    

    sc.stop()
Run Code Online (Sandbox Code Playgroud)

这项工作什么都不做(它没有成功,失败或进展......),如下所示."执行者"选项卡中没有活动/失败的任务.Stdout和Stderr Logs没有特别有趣的东西:

在此输入图像描述

如果我使用k=81,而不是8192,它将成功:

在此输入图像描述

请注意,这两个电话takeSample(),不应该是一个问题,因为有在随机初始化的情况下打了两次电话.

那么,发生了什么?Spark的Kmeans 无法扩展吗?有人知道吗?你可以重现吗?


如果这是一个内存问题,我会像以前一样得到警告和错误.

注意:placeybordeaux的注释基于在客户端模式下执行作业,其中驱动程序的配置无效,导致退出代码143等(请参阅编辑历史记录),而不是群集模式,其中根本没有报告错误,应用程序只是挂起.


从零到323:为什么Spark Mllib KMeans算法非常慢?是相关的,但我认为他目睹了一些进展,而我的确悬而未决,我确实发表评论......

在此输入图像描述

python bigdata k-means apache-spark apache-spark-mllib

11
推荐指数
1
解决办法
2645
查看次数

Spark - 失败:Set() 解释

我们的 Spark Job 有时会因为未知的原因而停止。

我们可能在日志中看到的唯一线索是failed: Set()如下所示的重复日志语句。

关于为什么在下面显示消息的任何想法将不胜感激。

18/02/08 22:12:14 INFO Executor: Finished task 0.0 in stage 51.0 (TID 38). 2008 bytes result sent to driver
18/02/08 22:12:14 INFO TaskSetManager: Finished task 0.0 in stage 51.0 (TID 38) in 312094 ms on localhost (executor driver) (1/1)
18/02/08 22:12:14 INFO TaskSchedulerImpl: Removed TaskSet 51.0, whose tasks have all completed, from pool 
18/02/08 22:12:14 INFO DAGScheduler: ShuffleMapStage 51 (rdd at EsSparkSQL.scala:97) finished in 602.298 s
18/02/08 22:12:14 INFO DAGScheduler: looking for …
Run Code Online (Sandbox Code Playgroud)

apache-spark

4
推荐指数
1
解决办法
3055
查看次数