来自mesos master

时间:2017-05-21 19:14:09

标签: apache-spark mesos mesosphere

我一直试图在mesos上学习火花,但是火花壳一直在忽视这些优惠。这是我的设置:

所有组件都在同一子网中

  • EC2实例上的1个mesos master(t2.micro)

    命令:mesos-master --work_dir=/tmp/abc --hostname=<public IP>

  • 2个mesos代理(每个代理有4个内核,16 GB内存和30 GB磁盘空间)

    命令:mesos-slave --master="<private IP of master>:5050" --hostname="<private IP of slave>" --work_dir=/tmp/abc

  • ec2实例上的1个spark-shell(客户端)(t2.micro) 我在启动spark-shell

    之前在此实例上设置了以下环境变量
    export MESOS_NATIVE_JAVA_LIBRARY=/usr/lib/libmesos.so
    export SPARK_EXECUTOR_URI=local://home/ubuntu/spark-2.1.1-bin-hadoop2.7.tgz
    

    然后我按如下方式启动spark-shell

    ./bin/spark-shell --master mesos://172.31.1.93:5050 
    

    (主人的私人IP)

    我确保放置spark-2.1.1-bin-hadoop2.7.tgz 在启动spark shell之前,两个代理上都有/home/ubuntu

一旦spark-shell启动,我就可以运行最简单的程序

val f = sc.textFile ("/tmp/ok.txt");
f.count()

..我一直在spark-shell上获得以下日志

 (0 + 0) / 2]17/05/21 15:13:34 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
17/05/21 15:13:49 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
17/05/21 15:14:04 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

主方日志:(这些日志我甚至在做spark-shell之前的任何事情之前就已经看到了,即使我在火花壳中运行了上面的代码,它们也会继续出现)

I0521 15:14:12.949108 10166 master.cpp:6992] Sending 2 offers to framework 64c1ef67-9e4f-4236-bb86-80d7aaab540f-0000 (Spark shell) at scheduler-7a375e65-7a0d-4267-befa-e69937404d5f@172.31.1.203:45596
I0521 15:14:12.955731 10164 master.cpp:4731] Processing DECLINE call for offers: [ 64c1ef67-9e4f-4236-bb86-80d7aaab540f-O34 ] for framework 64c1ef67-9e4f-4236-bb86-80d7aaab540f-0000 (Spark shell) at scheduler-7a375e65-7a0d-4267-befa-e69937404d5f@172.31.1.203:45596
I0521 15:14:12.956130 10167 master.cpp:4731] Processing DECLINE call for offers: [ 64c1ef67-9e4f-4236-bb86-80d7aaab540f-O35 ] for framework 64c1ef67-9e4f-4236-bb86-80d7aaab540f-0000 (Spark shell) at scheduler-7a375e65-7a0d-4267-befa-e69937404d5f@172.31.1.203:45596

我在Ubuntu 16.04上使用Mesos 1.2.0和spark 2.1.1。我已经通过编写一个基于小型node.js的http客户端进行验证,并且主人的报价似乎很好。这可能是什么问题?

1 个答案:

答案 0 :(得分:0)

好的,这里有两个问题。

  1. SPARK_EXECUTOR_URIlocal,因此将其更改为httplocal我想是为hadoop(在这里纠正我)。

  2. 将URI更改为local后,作为mesos-executor(作为任务,粗模式)启动的spark执行器的一部分运行的netty blockmanager服务由Mesos Containerizer启动,即由mesos-agent启动,用于尝试绑定到公共IP失败,因为我已将主机名作为公共IP传递给mesos-agent,这在EC2中必然会失败。事实上,我最初是通过私人IP,但不记得为什么我将主机名更改为公共IP。可能,我想要检查沙盒日志。 Mesos master将它重定向到mesos-agent的私有IP,阻止我查看stderr日志。 (我位于EC2 VPC之外)。注意,上面的问题将私有IP传递给代理,这是正确的。最初,上面的问题是针对第一个问题发布的。