记录下自己在搭建spark for mesos时遇到的坑
坑1:所以任务都分配不到资源
Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
把任务提交到spark集群时,集群都是空闲的,但是不会有资源分配到任务上
- 解决方法1:发现没有为mesos执行的spark二进制包,Mesos在某个slave机器上首次运行Spark任务的时候,slave机器上需要一个运行Spark Mesos executor backend的二进制包,这个Spark包可以放在任何能够以Hadoop兼容URL访问到的地方,包括HTTP( http://, Amazon Simple Storage Service)、s3n(s3n://)、 HDFS (hdfs://)
- 解决方法2:集群中资源设置太小,任务放上去因为资源不足而不能运行,设置一下任务使用的cpu数和内存数,或者添加一些内存
坑2:master-slave服务启动不起来
上文我将虚拟机的内存调大,之后便重启mesos-master,mesos-slave服务,但发现slave服务启动不了,
解决方法:打开日志发现是Failed to perform recovery: Incompatible agent info detected
,原来是因为重启时,mesos-slave会查找旧的信息,当改变了配置,启动会发现不兼容的配置,将之前的文件删除就行
rm -rf /var/lib/mesos/meta/slaves/latest