我正在使用python包装的C++代码运行一个spark集群.我目前正在测试多线程选项的不同配置(在Python级别或Spark级别).
我在HDFS 2.5.4集群上使用带有独立二进制文件的spark.该集群目前由10个从站组成,每个从站有4个核心.
从我所看到的,默认情况下,Spark每个节点启动4个从站(我一次有4个python在从属节点上工作).
我怎样才能限制这个数字?我可以看到我有一个--total-executor-cores选项用于"spark-submit",但是关于它如何影响集群上执行程序分布的文档很少!
我将运行测试以获得一个清晰的想法,但如果知识渊博的人知道这个选项的作用,它可能有所帮助.
更新:
我再次浏览了spark文档,这是我的理解:
--total-executor-coreswhith spark-submit(最不令人满意,因为没有关于如何处理核心池的线索)SPARK_WORKER_CORES配置文件中-c选项和起始脚本 本文档的以下几行http://spark.apache.org/docs/latest/spark-standalone.html帮助我弄清楚发生了什么:
SPARK_WORKER_INSTANCES
在每台计算机上运行的工作程序实例数(默认值:1).如果您拥有非常大的机器并且想要多个Spark工作进程,则可以将其设置为1以上.如果设置了此项,请确保明确设置SPARK_WORKER_CORES以限制每个工作程序的核心,否则每个工作程序将尝试使用所有核心.
我还不清楚为什么在我的情况下将每个工作节点的并行任务数量限制为1并依赖于我的C++遗留代码多线程更好.当我完成学习时,我会用实验结果更新这篇文章.
我希望能够在hdfs文件系统上读/写图像并利用hdfs局部性.
我有一组图像,每个图像由一组图像组成
我想在hdfs文件系统上创建一个存档,并使用spark来分析存档.现在,我正在努力克服在hdfs文件系统上存储数据的最佳方式,以便能够充分利用spark + hdfs结构.
据我所知,最好的方法是创建一个sequenceFile包装器.我有两个问题: