2016-03-23 57 views
3

我正试图在Mesos上安装Kafka。安装似乎已经成功。Mesos DCOS不安装Kafka

[email protected]:/dcos$ dcos package install kafka 
This will install Apache Kafka DCOS Service. 
Continue installing? [yes/no] yes 
Installing Marathon app for package [kafka] version [0.9.4.0] 
Installing CLI subcommand for package [kafka] version [0.9.4.0] 
New command available: dcos kafka 
The Apache Kafka DCOS Service is installed: 
    docs - https://github.com/mesos/kafka 
    issues - https://github.com/mesos/kafka/issues 

[email protected]:/dcos$ dcos package list 
NAME VERSION APP  COMMAND DESCRIPTION 
kafka 0.9.4.0 /kafka kafka Apache Kafka running on top of Apache Mesos 

但是kafka任务未启动。

[email protected]:/dcos$ dcos kafka 
Error: Kafka is not running 
[email protected]:/dcos$ 

Marathon UI说服务是waiting。看起来它不接受分配给它的资源。更多日志here

Mar 23 03:52:59 ip-10-0-4-194.ec2.internal java[1425]: [2016-03-23 03:52:59,335] INFO Offer ID: [54f71504-b37a-4954-b082-e1f2a04b7fa4-O77]. Considered resources with roles: [*]. Not all basic resources satisfied: cpu not in offer, disk SATISFIED (0.0 <= 0.0), mem not in offer (mesosphere.mesos.ResourceMatcher$:marathon-akka.actor.default-dispatcher-11) 
Mar 23 03:52:59 ip-10-0-4-194.ec2.internal java[1425]: [2016-03-23 03:52:59,370] INFO Offer [54f71504-b37a-4954-b082-e1f2a04b7fa4-O77]. Insufficient resources for [/kafka] (need cpus=0.5, mem=307.0, disk=0.0, ports=(1 dynamic), available in offer: [id { value: "54f71504-b37a-4954-b082-e1f2a04b7fa4-O77" } framework_id { value: "54f71504-b37a-4954-b082-e1f2a04b7fa4-0000" } slave_id { value: "54f71504-b37a-4954-b082-e1f2a04b7fa4-S1" } hostname: "10.0.4.190" resources { name: "ports" type: RANGES ranges { range { begin: 1 end: 21 } range { begin: 23 end: 5050 } range { begin: 5052 end: 32000 } } role: "slave_public" } resources { name: "cpus" type: SCALAR scalar { value: 4.0 } role: "slave_public" } resources { name: "mem" type: SCALAR scalar { value: 14019.0 } role: "slave_public" } resources { name: "disk" type: SCALAR scalar { value: 32541.0 } role: "slave_public" } attributes { name: "public_ip" type: TEXT text { value: "true" } } url { scheme: "http" address { hostname: "10.0.4.190" ip: "10.0.4.190" port: 5051 } path: "/slave(1)" }] (mesosphere.mesos.TaskBuilder:marathon-akka.actor.default-dispatcher-11) 

Mesos主日志..

Mar 23 15:38:22 ip-10-0-4-194.ec2.internal mesos-master[1371]: I0323 15:38:22.339759 1376 master.cpp:5350] Sending 2 offers to framework 54f71504-b37a-4954-b082-e1f2a04b7fa4-0000 (marathon) at [email protected]:60450 
Mar 23 15:38:22 ip-10-0-4-194.ec2.internal mesos-master[1371]: I0323 15:38:22.341790 1381 master.cpp:3673] Processing DECLINE call for offers: [ 54f71504-b37a-4954-b082-e1f2a04b7fa4-O373 ] for framework 54f71504-b37a-4954-b082-e1f2a04b7fa4-0000 (marathon) at [email protected]:60450 
Mar 23 15:38:22 ip-10-0-4-194.ec2.internal mesos-master[1371]: I0323 15:38:22.342041 1381 master.cpp:3673] Processing DECLINE call for offers: [ 54f71504-b37a-4954-b082-e1f2a04b7fa4-O374 ] for framework 54f71504-b37a-4954-b082-e1f2a04b7fa4-0000 (marathon) at [email protected]:60450 

不知道为什么马拉松不喜欢这样的报价。我确信有足够的资源。

+0

您使用的是什么实例类型? –

+0

m3.xlarge适用于所有从站和主站。我认为Gabriel的回答是正确的。 – Cheeko

回答

4

马拉松正在等待有足够资源的报价给卡夫卡调度员。它拒绝的报价似乎没有任何cpu或内存。您看到的具有足够资源的优惠已经为角色“slave_public”静态保留。

卡夫卡调度程序将与角色*一起运行。您的群集在默认角色*中缺乏足够的资源。这是与私人奴隶相关的角色。

您应该查看mesos/state并查看具有“*”角色的可用资源。

+0

你说得对。我确实关闭了所有私人实例。我希望卡夫卡经纪人拥有公共IP,以便我可以从我的开发机器访问它。有没有办法告诉卡夫卡调度器使用“slave_public”角色? – Cheeko

+0

'DCOS包安装卡夫卡--options = /路径/要/ options.json' '$猫options.json { “海边的卡夫卡”:{ “框架角色”: “slave_public” } }' 以上可能工作。如果这不起作用,那么您将不得不从集群内部或通过VPN访问Kafka。 – Gabriel

+0

这没有奏效。它仍然试图寻找“*”角色的资源。 – Cheeko