如何利用学校集群运行spark



  • 楼主有这样一个问题:
    需要对十万个SNP 做关联性分析,每一个SNP关联性分析涉及dense large matrix的相乘。所以想利用学校的集群设置spark来提高运算效率。

    问题1:
    学校的集群可以设置想要几个核来运行,这样和spark的计算有何不同?
    问题2:
    我用学校的集群 设置了八个core,比我在本地自己的电脑八个core要慢很多,所以想试试spark能不能快一些。

    已经安装了spark, 问题是我想用很多(假设20个) core 来运行我的spark, 我应该怎么设置?

    说一下自己平常在集群上运算的情况:
    一般都是把软件安装在自己的目录下面,学生是不可以用sudo等命令的。
    在提交的时候是和本地运算的代码并没有区别,区别就是额外告诉他需要几个core。然后后面分配资源什么的全都是集群自动的。
    读了一些spark教程,对怎么设置master 和worker很困惑。
    另外还有就是教程上说可以有web UI 来观察自己的进程,但是平常当我连接学校的集群,我就只有一个linux的terminal,我怎么观察我的进程呢?是不是只能通过log



  • 恩恩,这是个好问题!我也想问!


  • cid:76:privileges:topics:read

    楼主你好,根据你描述,以下是我的回答,希望能对你有所帮助。

    1. 感觉上你们学校的集群应该是运行在一个集群管理框架之上,比如Apache Mesos,所以你可以设置需要几个核来运行spark job。这样跟你在本机上运行spark standalone模式很不一样,因为底层的集群管理框架会负责进行任务调度。非常好奇你们学校的集群的配置是怎样的,根据经验一般来说是YARN或是Mesos。
    2. 我遇到很多朋友都说部署到集群上反而比本机慢。这一般是因为data locality的引起的。在本机上因为你的数据都是在本地,IO相对较快。部署到集群上以后,你的数据 (假设是上传到HDFS里),根据底层调度框架,可能会在节点之间传输。这样的话总体来说spark job的运行速度就慢了很多。
    3. 提交spark job时用spark.executor.cores这个option来设置core。
    4. Spark Web UI,正常来说UI会启动在 http://[master IP]:4040,你可以试试设置SSH Tunnel到对应的master。如果确实是无法访问UI的话,只有通过打日志来看进度了。

    以上只是我根据楼主的描述和一些我的假设回答的问题。如果楼主能多给些细节,比如如何提交的spark job,学校集群的配置等等,可能能够进一步帮到你。



  • @UncleBarney https://www.ncsu.edu/hpc/About/Services.php
    好吧这个链接暴露学校了。。但是从页面上看 我感觉我们学校的集群并不是什么先进的技术。。好像并不是YARN或者Meso, 如果这样的话还能用spark吗?

    我现在还没写一个成品的code,还在学习中。。会的还比较有限,但是要是能把任何一个example能跑起来就好了。


  • cid:76:privileges:topics:read

    关于yarn或者mesos的spark集群的部署,可以到http://spark.apache.org/的官网上面去看,我记得有脚本可以帮助直接部署spark。还有关于spark的一些优化,并不是说core用得越多就越好,这里有一篇很不错的文章可以给你推荐一下:http://www.raychase.net/3546


登录后回复
 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待