You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by lpalbou <la...@genognose.org> on 2016/04/15 00:42:07 UTC

Small how to for Mesos + Ignite + Java

Hi everyone,

I have been testing recently Mesos and Apache Ignite. Some problems were not
documented and I sometimes had to look at some java sources.

So this is a very small guide to help you launch Ignite nodes from Mesos and
access these nodes with Java.

A) First, to install Mesos, I would advise to consult this tutorial which is
easy to follow:
https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04

B) Then, to create a Mesos framework/application to launch your Ignite
nodes, you can refer to this tutorial:
http://apacheignite.gridgain.org/docs/mesos-deployment

For those having a "Got unexpected response code 404" exception in /stderr/
of a Mesos node sandbox after launching the application through
curl/marathon (step 3 of tutorial B) ), it basically says it can't download
the ignite-mesos.jar. I had this problem and edited the marathon.json (or
whatever the name you choose) to change the IGNITE_VERSION parameter
previously set to 1.0.5. I first changed it to "latest" and everything was
ok until I triedto access these nodes with Java (see after). For now, set
IGNITE_VERSION to "1.5.9".

By now, your Ignite nodes should now launch correctly on Mesos and you
should see something similar to tutorial B) steps 5-7.

Now let's try to access those Ignite nodes launched by Mesos with a small
Java application. At first, it did not work at all. If you try something
like bin/ignite.sh, it will create a new cluster independant of the one
created by Mesos. So you have to setup the proper configuration. And there,
I did not find any tutorial or information on Google. So here is what I did:

1) ssh to a Mesos node running ignite
2) ps -aux | grep ignite (to see the parameters used for launching these
ignite nodes)
3) the spring configuration file by default was "ignite-default-config.xml"
4) reproduce this configuration inside the java application with the
IgniteConfiguration class (see below)
5) it was not working. Looking at the Java exception, I discovered my java
app was using a different version of Ignite than Mesos (?!). Indeed,
although the latest stable version of Ignite is 1.5.0 on the download page
(https://ignite.apache.org/download.cgi#binaries), when using "latest" for
the field IGNITE_VERSION in the marathon.json file, it actually downloaded
and launched the version 1.5.9 (FWY, set IGNITE_VERSION to "1.5.9" to avoid
such mistake). I retrieve those jar from the Mesos slave nodes (look in
/tmp/mesos/slaves/.../latest/) and use them as libraries in my Java app
5) but it was still not working !? "Failed to connect to any address from IP
finder (will retry to join topology every 2 secs)". To make a long story
short, you have to provide to your IpFinder some IP addresses of your Mesos
slave nodes... and it worked !


*Here is a very small Java code to help you connect to your Mesos Ignite
nodes:*

Collection<String> addr = new ArrayList();
addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes

TcpDiscoveryVmIpFinder tcpvm = new TcpDiscoveryVmIpFinder();
tcpvm.setAddresses(addr);

TcpDiscoverySpi dspi = new TcpDiscoverySpi();
dspi.setIpFinder(tcpvm);
dspi.setJoinTimeout(60000);

IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setDiscoverySpi(dspi);
cfg.setClientMode(true);

Ignite ignite = Ignition.start(cfg);


I hope this will be of some use to some of you.
Bests,
LPA



--
View this message in context: http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467.html
Sent from the Apache Ignite Developers mailing list archive at Nabble.com.

Re: Small how to for Mesos + Ignite + Java

Posted by Nikolay Tikhonov <nt...@gridgain.com>.
Dima,
Sure, when I finish updating doc I'll post the link here.

On Fri, Apr 15, 2016 at 8:15 PM, Dmitriy Setrakyan <ds...@gridgain.com>
wrote:

> Thanks Nick! Can you please send the link to the updated documentation
> here? Also, please don’t forget to update both, 1.5 and 1.6 versions.
>
> D.
>
> On Fri, Apr 15, 2016 at 6:36 AM, Nikolay Tikhonov <nt...@gridgain.com>
> wrote:
>
> > Hi,
> > Thank you for efforts and feedback!
> >
> > Vova,
> > I'll change our documentation that points will be more clear.
> >
> > On Fri, Apr 15, 2016 at 4:25 PM, Vladimir Ozerov <vo...@gridgain.com>
> > wrote:
> >
> > > Hi,
> > > Thank you for such deep and thorough analysis. I think we definitely
> > > reflect your findings in our documentation.
> > >
> > > Nick,
> > > Provided that you worked on Mesos integration, could you please see,
> how
> > we
> > > can integrate this into our docs?
> > >
> > > Vladimir.
> > >
> > > On Fri, Apr 15, 2016 at 1:42 AM, lpalbou <la...@genognose.org>
> > > wrote:
> > >
> > > > Hi everyone,
> > > >
> > > > I have been testing recently Mesos and Apache Ignite. Some problems
> > were
> > > > not
> > > > documented and I sometimes had to look at some java sources.
> > > >
> > > > So this is a very small guide to help you launch Ignite nodes from
> > Mesos
> > > > and
> > > > access these nodes with Java.
> > > >
> > > > A) First, to install Mesos, I would advise to consult this tutorial
> > which
> > > > is
> > > > easy to follow:
> > > >
> > > >
> > >
> >
> https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04
> > > >
> > > > B) Then, to create a Mesos framework/application to launch your
> Ignite
> > > > nodes, you can refer to this tutorial:
> > > > http://apacheignite.gridgain.org/docs/mesos-deployment
> > > >
> > > > For those having a "Got unexpected response code 404" exception in
> > > /stderr/
> > > > of a Mesos node sandbox after launching the application through
> > > > curl/marathon (step 3 of tutorial B) ), it basically says it can't
> > > download
> > > > the ignite-mesos.jar. I had this problem and edited the marathon.json
> > (or
> > > > whatever the name you choose) to change the IGNITE_VERSION parameter
> > > > previously set to 1.0.5. I first changed it to "latest" and
> everything
> > > was
> > > > ok until I triedto access these nodes with Java (see after). For now,
> > set
> > > > IGNITE_VERSION to "1.5.9".
> > > >
> > > > By now, your Ignite nodes should now launch correctly on Mesos and
> you
> > > > should see something similar to tutorial B) steps 5-7.
> > > >
> > > > Now let's try to access those Ignite nodes launched by Mesos with a
> > small
> > > > Java application. At first, it did not work at all. If you try
> > something
> > > > like bin/ignite.sh, it will create a new cluster independant of the
> one
> > > > created by Mesos. So you have to setup the proper configuration. And
> > > there,
> > > > I did not find any tutorial or information on Google. So here is
> what I
> > > > did:
> > > >
> > > > 1) ssh to a Mesos node running ignite
> > > > 2) ps -aux | grep ignite (to see the parameters used for launching
> > these
> > > > ignite nodes)
> > > > 3) the spring configuration file by default was
> > > "ignite-default-config.xml"
> > > > 4) reproduce this configuration inside the java application with the
> > > > IgniteConfiguration class (see below)
> > > > 5) it was not working. Looking at the Java exception, I discovered my
> > > java
> > > > app was using a different version of Ignite than Mesos (?!). Indeed,
> > > > although the latest stable version of Ignite is 1.5.0 on the download
> > > page
> > > > (https://ignite.apache.org/download.cgi#binaries), when using
> "latest"
> > > for
> > > > the field IGNITE_VERSION in the marathon.json file, it actually
> > > downloaded
> > > > and launched the version 1.5.9 (FWY, set IGNITE_VERSION to "1.5.9" to
> > > avoid
> > > > such mistake). I retrieve those jar from the Mesos slave nodes (look
> in
> > > > /tmp/mesos/slaves/.../latest/) and use them as libraries in my Java
> app
> > > > 5) but it was still not working !? "Failed to connect to any address
> > from
> > > > IP
> > > > finder (will retry to join topology every 2 secs)". To make a long
> > story
> > > > short, you have to provide to your IpFinder some IP addresses of your
> > > Mesos
> > > > slave nodes... and it worked !
> > > >
> > > >
> > > > *Here is a very small Java code to help you connect to your Mesos
> > Ignite
> > > > nodes:*
> > > >
> > > > Collection<String> addr = new ArrayList();
> > > > addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> > > > addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> > > >
> > > > TcpDiscoveryVmIpFinder tcpvm = new TcpDiscoveryVmIpFinder();
> > > > tcpvm.setAddresses(addr);
> > > >
> > > > TcpDiscoverySpi dspi = new TcpDiscoverySpi();
> > > > dspi.setIpFinder(tcpvm);
> > > > dspi.setJoinTimeout(60000);
> > > >
> > > > IgniteConfiguration cfg = new IgniteConfiguration();
> > > > cfg.setDiscoverySpi(dspi);
> > > > cfg.setClientMode(true);
> > > >
> > > > Ignite ignite = Ignition.start(cfg);
> > > >
> > > >
> > > > I hope this will be of some use to some of you.
> > > > Bests,
> > > > LPA
> > > >
> > > >
> > > >
> > > > --
> > > > View this message in context:
> > > >
> > >
> >
> http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467.html
> > > > Sent from the Apache Ignite Developers mailing list archive at
> > > Nabble.com.
> > > >
> > >
> >
>

Re: Small how to for Mesos + Ignite + Java

Posted by Dmitriy Setrakyan <ds...@gridgain.com>.
Thanks Nick! Can you please send the link to the updated documentation
here? Also, please don’t forget to update both, 1.5 and 1.6 versions.

D.

On Fri, Apr 15, 2016 at 6:36 AM, Nikolay Tikhonov <nt...@gridgain.com>
wrote:

> Hi,
> Thank you for efforts and feedback!
>
> Vova,
> I'll change our documentation that points will be more clear.
>
> On Fri, Apr 15, 2016 at 4:25 PM, Vladimir Ozerov <vo...@gridgain.com>
> wrote:
>
> > Hi,
> > Thank you for such deep and thorough analysis. I think we definitely
> > reflect your findings in our documentation.
> >
> > Nick,
> > Provided that you worked on Mesos integration, could you please see, how
> we
> > can integrate this into our docs?
> >
> > Vladimir.
> >
> > On Fri, Apr 15, 2016 at 1:42 AM, lpalbou <la...@genognose.org>
> > wrote:
> >
> > > Hi everyone,
> > >
> > > I have been testing recently Mesos and Apache Ignite. Some problems
> were
> > > not
> > > documented and I sometimes had to look at some java sources.
> > >
> > > So this is a very small guide to help you launch Ignite nodes from
> Mesos
> > > and
> > > access these nodes with Java.
> > >
> > > A) First, to install Mesos, I would advise to consult this tutorial
> which
> > > is
> > > easy to follow:
> > >
> > >
> >
> https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04
> > >
> > > B) Then, to create a Mesos framework/application to launch your Ignite
> > > nodes, you can refer to this tutorial:
> > > http://apacheignite.gridgain.org/docs/mesos-deployment
> > >
> > > For those having a "Got unexpected response code 404" exception in
> > /stderr/
> > > of a Mesos node sandbox after launching the application through
> > > curl/marathon (step 3 of tutorial B) ), it basically says it can't
> > download
> > > the ignite-mesos.jar. I had this problem and edited the marathon.json
> (or
> > > whatever the name you choose) to change the IGNITE_VERSION parameter
> > > previously set to 1.0.5. I first changed it to "latest" and everything
> > was
> > > ok until I triedto access these nodes with Java (see after). For now,
> set
> > > IGNITE_VERSION to "1.5.9".
> > >
> > > By now, your Ignite nodes should now launch correctly on Mesos and you
> > > should see something similar to tutorial B) steps 5-7.
> > >
> > > Now let's try to access those Ignite nodes launched by Mesos with a
> small
> > > Java application. At first, it did not work at all. If you try
> something
> > > like bin/ignite.sh, it will create a new cluster independant of the one
> > > created by Mesos. So you have to setup the proper configuration. And
> > there,
> > > I did not find any tutorial or information on Google. So here is what I
> > > did:
> > >
> > > 1) ssh to a Mesos node running ignite
> > > 2) ps -aux | grep ignite (to see the parameters used for launching
> these
> > > ignite nodes)
> > > 3) the spring configuration file by default was
> > "ignite-default-config.xml"
> > > 4) reproduce this configuration inside the java application with the
> > > IgniteConfiguration class (see below)
> > > 5) it was not working. Looking at the Java exception, I discovered my
> > java
> > > app was using a different version of Ignite than Mesos (?!). Indeed,
> > > although the latest stable version of Ignite is 1.5.0 on the download
> > page
> > > (https://ignite.apache.org/download.cgi#binaries), when using "latest"
> > for
> > > the field IGNITE_VERSION in the marathon.json file, it actually
> > downloaded
> > > and launched the version 1.5.9 (FWY, set IGNITE_VERSION to "1.5.9" to
> > avoid
> > > such mistake). I retrieve those jar from the Mesos slave nodes (look in
> > > /tmp/mesos/slaves/.../latest/) and use them as libraries in my Java app
> > > 5) but it was still not working !? "Failed to connect to any address
> from
> > > IP
> > > finder (will retry to join topology every 2 secs)". To make a long
> story
> > > short, you have to provide to your IpFinder some IP addresses of your
> > Mesos
> > > slave nodes... and it worked !
> > >
> > >
> > > *Here is a very small Java code to help you connect to your Mesos
> Ignite
> > > nodes:*
> > >
> > > Collection<String> addr = new ArrayList();
> > > addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> > > addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> > >
> > > TcpDiscoveryVmIpFinder tcpvm = new TcpDiscoveryVmIpFinder();
> > > tcpvm.setAddresses(addr);
> > >
> > > TcpDiscoverySpi dspi = new TcpDiscoverySpi();
> > > dspi.setIpFinder(tcpvm);
> > > dspi.setJoinTimeout(60000);
> > >
> > > IgniteConfiguration cfg = new IgniteConfiguration();
> > > cfg.setDiscoverySpi(dspi);
> > > cfg.setClientMode(true);
> > >
> > > Ignite ignite = Ignition.start(cfg);
> > >
> > >
> > > I hope this will be of some use to some of you.
> > > Bests,
> > > LPA
> > >
> > >
> > >
> > > --
> > > View this message in context:
> > >
> >
> http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467.html
> > > Sent from the Apache Ignite Developers mailing list archive at
> > Nabble.com.
> > >
> >
>

Re: Small how to for Mesos + Ignite + Java

Posted by Nikolay Tikhonov <nt...@gridgain.com>.
Hi,
Thank you for efforts and feedback!

Vova,
I'll change our documentation that points will be more clear.

On Fri, Apr 15, 2016 at 4:25 PM, Vladimir Ozerov <vo...@gridgain.com>
wrote:

> Hi,
> Thank you for such deep and thorough analysis. I think we definitely
> reflect your findings in our documentation.
>
> Nick,
> Provided that you worked on Mesos integration, could you please see, how we
> can integrate this into our docs?
>
> Vladimir.
>
> On Fri, Apr 15, 2016 at 1:42 AM, lpalbou <la...@genognose.org>
> wrote:
>
> > Hi everyone,
> >
> > I have been testing recently Mesos and Apache Ignite. Some problems were
> > not
> > documented and I sometimes had to look at some java sources.
> >
> > So this is a very small guide to help you launch Ignite nodes from Mesos
> > and
> > access these nodes with Java.
> >
> > A) First, to install Mesos, I would advise to consult this tutorial which
> > is
> > easy to follow:
> >
> >
> https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04
> >
> > B) Then, to create a Mesos framework/application to launch your Ignite
> > nodes, you can refer to this tutorial:
> > http://apacheignite.gridgain.org/docs/mesos-deployment
> >
> > For those having a "Got unexpected response code 404" exception in
> /stderr/
> > of a Mesos node sandbox after launching the application through
> > curl/marathon (step 3 of tutorial B) ), it basically says it can't
> download
> > the ignite-mesos.jar. I had this problem and edited the marathon.json (or
> > whatever the name you choose) to change the IGNITE_VERSION parameter
> > previously set to 1.0.5. I first changed it to "latest" and everything
> was
> > ok until I triedto access these nodes with Java (see after). For now, set
> > IGNITE_VERSION to "1.5.9".
> >
> > By now, your Ignite nodes should now launch correctly on Mesos and you
> > should see something similar to tutorial B) steps 5-7.
> >
> > Now let's try to access those Ignite nodes launched by Mesos with a small
> > Java application. At first, it did not work at all. If you try something
> > like bin/ignite.sh, it will create a new cluster independant of the one
> > created by Mesos. So you have to setup the proper configuration. And
> there,
> > I did not find any tutorial or information on Google. So here is what I
> > did:
> >
> > 1) ssh to a Mesos node running ignite
> > 2) ps -aux | grep ignite (to see the parameters used for launching these
> > ignite nodes)
> > 3) the spring configuration file by default was
> "ignite-default-config.xml"
> > 4) reproduce this configuration inside the java application with the
> > IgniteConfiguration class (see below)
> > 5) it was not working. Looking at the Java exception, I discovered my
> java
> > app was using a different version of Ignite than Mesos (?!). Indeed,
> > although the latest stable version of Ignite is 1.5.0 on the download
> page
> > (https://ignite.apache.org/download.cgi#binaries), when using "latest"
> for
> > the field IGNITE_VERSION in the marathon.json file, it actually
> downloaded
> > and launched the version 1.5.9 (FWY, set IGNITE_VERSION to "1.5.9" to
> avoid
> > such mistake). I retrieve those jar from the Mesos slave nodes (look in
> > /tmp/mesos/slaves/.../latest/) and use them as libraries in my Java app
> > 5) but it was still not working !? "Failed to connect to any address from
> > IP
> > finder (will retry to join topology every 2 secs)". To make a long story
> > short, you have to provide to your IpFinder some IP addresses of your
> Mesos
> > slave nodes... and it worked !
> >
> >
> > *Here is a very small Java code to help you connect to your Mesos Ignite
> > nodes:*
> >
> > Collection<String> addr = new ArrayList();
> > addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> > addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> >
> > TcpDiscoveryVmIpFinder tcpvm = new TcpDiscoveryVmIpFinder();
> > tcpvm.setAddresses(addr);
> >
> > TcpDiscoverySpi dspi = new TcpDiscoverySpi();
> > dspi.setIpFinder(tcpvm);
> > dspi.setJoinTimeout(60000);
> >
> > IgniteConfiguration cfg = new IgniteConfiguration();
> > cfg.setDiscoverySpi(dspi);
> > cfg.setClientMode(true);
> >
> > Ignite ignite = Ignition.start(cfg);
> >
> >
> > I hope this will be of some use to some of you.
> > Bests,
> > LPA
> >
> >
> >
> > --
> > View this message in context:
> >
> http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467.html
> > Sent from the Apache Ignite Developers mailing list archive at
> Nabble.com.
> >
>

Re: Small how to for Mesos + Ignite + Java

Posted by lpalbou <la...@genognose.org>.
Small correction: the most recent link describing backup nodes is
https://apacheignite.readme.io/v1.5/docs/primary-and-backup-copies



--
View this message in context: http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467p8490.html
Sent from the Apache Ignite Developers mailing list archive at Nabble.com.

Re: Small how to for Mesos + Ignite + Java

Posted by lpalbou <la...@genognose.org>.
Hi,

I am glad I could help.

Note that indeed using Mesos/Marathon, I can easily launch & scale 
Ignite nodes on my cluster. It is my understanding that Ignite nodes 
will automatically rebalance the data among nodes upon scaling, is that 
right ?

If so, both solutions provide an easy and robust environment to scale in 
memory databases & grid data computing.

I'll analyze further the 3 cache modes 
(http://apacheignite.gridgain.org/docs/cache-modes), and the ability to 
set backup nodes 
(http://atlassian.gridgain.com/wiki/display/AI10/Cache+Distribution+Models)
to see how it impacts both performance and overhead memory cost on a 
cluster.

Bests,
Laurent-Philippe


Le 2016-04-15 14:53, Vladimir Ozerov [via Apache Ignite Developers] a 
écrit :
> Hi,
> Thank you for such deep and thorough analysis. I think we definitely
> reflect your findings in our documentation.
> 
> Nick,
> Provided that you worked on Mesos integration, could you please see,
> how we
> can integrate this into our docs?
> 
> Vladimir.
> 
> On Fri, Apr 15, 2016 at 1:42 AM, lpalbou <[hidden email] [1]>
> wrote:
> 
>> Hi everyone,
>> 
>> I have been testing recently Mesos and Apache Ignite. Some problems
> were
>> not
>> documented and I sometimes had to look at some java sources.
>> 
>> So this is a very small guide to help you launch Ignite nodes from
> Mesos
>> and
>> access these nodes with Java.
>> 
>> A) First, to install Mesos, I would advise to consult this tutorial
> which
>> is
>> easy to follow:
>> 
>> 
> https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04
> [2]
>> 
>> B) Then, to create a Mesos framework/application to launch your
> Ignite
>> nodes, you can refer to this tutorial:
>> http://apacheignite.gridgain.org/docs/mesos-deployment [3]
>> 
>> For those having a "Got unexpected response code 404" exception in
> /stderr/
>> of a Mesos node sandbox after launching the application through
>> curl/marathon (step 3 of tutorial B) ), it basically says it can't
> download
>> the ignite-mesos.jar. I had this problem and edited the
> marathon.json (or
>> whatever the name you choose) to change the IGNITE_VERSION parameter
> 
>> previously set to 1.0.5. I first changed it to "latest" and
> everything was
>> ok until I triedto access these nodes with Java (see after). For
> now, set
>> IGNITE_VERSION to "1.5.9".
>> 
>> By now, your Ignite nodes should now launch correctly on Mesos and
> you
>> should see something similar to tutorial B) steps 5-7.
>> 
>> Now let's try to access those Ignite nodes launched by Mesos with a
> small
>> Java application. At first, it did not work at all. If you try
> something
>> like bin/ignite.sh, it will create a new cluster independant of the
> one
>> created by Mesos. So you have to setup the proper configuration. And
> there,
>> I did not find any tutorial or information on Google. So here is
> what I
>> did:
>> 
>> 1) ssh to a Mesos node running ignite
>> 2) ps -aux | grep ignite (to see the parameters used for launching
> these
>> ignite nodes)
>> 3) the spring configuration file by default was
> "ignite-default-config.xml"
>> 4) reproduce this configuration inside the java application with the
> 
>> IgniteConfiguration class (see below)
>> 5) it was not working. Looking at the Java exception, I discovered
> my java
>> app was using a different version of Ignite than Mesos (?!). Indeed,
> 
>> although the latest stable version of Ignite is 1.5.0 on the
> download page
>> (https://ignite.apache.org/download.cgi#binaries [4]), when using
> "latest" for
>> the field IGNITE_VERSION in the marathon.json file, it actually
> downloaded
>> and launched the version 1.5.9 (FWY, set IGNITE_VERSION to "1.5.9"
> to avoid
>> such mistake). I retrieve those jar from the Mesos slave nodes (look
> in
>> /tmp/mesos/slaves/.../latest/) and use them as libraries in my Java
> app
>> 5) but it was still not working !? "Failed to connect to any address
> from
>> IP
>> finder (will retry to join topology every 2 secs)". To make a long
> story
>> short, you have to provide to your IpFinder some IP addresses of
> your Mesos
>> slave nodes... and it worked !
>> 
>> 
>> *Here is a very small Java code to help you connect to your Mesos
> Ignite
>> nodes:*
>> 
>> Collection<String> addr = new ArrayList();
>> addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> 
>> addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> 
>> 
>> TcpDiscoveryVmIpFinder tcpvm = new TcpDiscoveryVmIpFinder();
>> tcpvm.setAddresses(addr);
>> 
>> TcpDiscoverySpi dspi = new TcpDiscoverySpi();
>> dspi.setIpFinder(tcpvm);
>> dspi.setJoinTimeout(60000);
>> 
>> IgniteConfiguration cfg = new IgniteConfiguration();
>> cfg.setDiscoverySpi(dspi);
>> cfg.setClientMode(true);
>> 
>> Ignite ignite = Ignition.start(cfg);
>> 
>> 
>> I hope this will be of some use to some of you.
>> Bests,
>> LPA
>> 
>> 
>> 
>> --
>> View this message in context:
>> 
> http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467.html
> [5]
>> Sent from the Apache Ignite Developers mailing list archive at
> Nabble.com.
>> 
> 
> -------------------------
> 
> If you reply to this email, your message will be added to the
> discussion below:
> http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467p8481.html
> [6]
>  To unsubscribe from Small how to for Mesos + Ignite + Java, click
> here [7].
>  NAML [8]
> 
> Links:
> ------
> [1] 
> http://webmail.wisims.org/user/SendEmail.jtp?type=node&node=8481&i=0
> [2]
> https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04
> [3] http://apacheignite.gridgain.org/docs/mesos-deployment
> [4] https://ignite.apache.org/download.cgi#binaries
> [5]
> http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467.html
> [6]
> http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467p8481.html
> [7]
> http://apache-ignite-developers.2346864.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&amp;node=8467&amp;code=bGF1cmVudC5hbGJvdUBnZW5vZ25vc2Uub3JnfDg0Njd8MjE3MzcwNjkx
> [8]
> http://apache-ignite-developers.2346864.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&amp;id=instant_html%21nabble%3Aemail.naml&amp;base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&amp;breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml




--
View this message in context: http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467p8489.html
Sent from the Apache Ignite Developers mailing list archive at Nabble.com.

Re: Small how to for Mesos + Ignite + Java

Posted by Vladimir Ozerov <vo...@gridgain.com>.
Hi,
Thank you for such deep and thorough analysis. I think we definitely
reflect your findings in our documentation.

Nick,
Provided that you worked on Mesos integration, could you please see, how we
can integrate this into our docs?

Vladimir.

On Fri, Apr 15, 2016 at 1:42 AM, lpalbou <la...@genognose.org>
wrote:

> Hi everyone,
>
> I have been testing recently Mesos and Apache Ignite. Some problems were
> not
> documented and I sometimes had to look at some java sources.
>
> So this is a very small guide to help you launch Ignite nodes from Mesos
> and
> access these nodes with Java.
>
> A) First, to install Mesos, I would advise to consult this tutorial which
> is
> easy to follow:
>
> https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04
>
> B) Then, to create a Mesos framework/application to launch your Ignite
> nodes, you can refer to this tutorial:
> http://apacheignite.gridgain.org/docs/mesos-deployment
>
> For those having a "Got unexpected response code 404" exception in /stderr/
> of a Mesos node sandbox after launching the application through
> curl/marathon (step 3 of tutorial B) ), it basically says it can't download
> the ignite-mesos.jar. I had this problem and edited the marathon.json (or
> whatever the name you choose) to change the IGNITE_VERSION parameter
> previously set to 1.0.5. I first changed it to "latest" and everything was
> ok until I triedto access these nodes with Java (see after). For now, set
> IGNITE_VERSION to "1.5.9".
>
> By now, your Ignite nodes should now launch correctly on Mesos and you
> should see something similar to tutorial B) steps 5-7.
>
> Now let's try to access those Ignite nodes launched by Mesos with a small
> Java application. At first, it did not work at all. If you try something
> like bin/ignite.sh, it will create a new cluster independant of the one
> created by Mesos. So you have to setup the proper configuration. And there,
> I did not find any tutorial or information on Google. So here is what I
> did:
>
> 1) ssh to a Mesos node running ignite
> 2) ps -aux | grep ignite (to see the parameters used for launching these
> ignite nodes)
> 3) the spring configuration file by default was "ignite-default-config.xml"
> 4) reproduce this configuration inside the java application with the
> IgniteConfiguration class (see below)
> 5) it was not working. Looking at the Java exception, I discovered my java
> app was using a different version of Ignite than Mesos (?!). Indeed,
> although the latest stable version of Ignite is 1.5.0 on the download page
> (https://ignite.apache.org/download.cgi#binaries), when using "latest" for
> the field IGNITE_VERSION in the marathon.json file, it actually downloaded
> and launched the version 1.5.9 (FWY, set IGNITE_VERSION to "1.5.9" to avoid
> such mistake). I retrieve those jar from the Mesos slave nodes (look in
> /tmp/mesos/slaves/.../latest/) and use them as libraries in my Java app
> 5) but it was still not working !? "Failed to connect to any address from
> IP
> finder (will retry to join topology every 2 secs)". To make a long story
> short, you have to provide to your IpFinder some IP addresses of your Mesos
> slave nodes... and it worked !
>
>
> *Here is a very small Java code to help you connect to your Mesos Ignite
> nodes:*
>
> Collection<String> addr = new ArrayList();
> addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
> addr.add("X.X.X.X"); // replace this by IP addresses of ignite nodes
>
> TcpDiscoveryVmIpFinder tcpvm = new TcpDiscoveryVmIpFinder();
> tcpvm.setAddresses(addr);
>
> TcpDiscoverySpi dspi = new TcpDiscoverySpi();
> dspi.setIpFinder(tcpvm);
> dspi.setJoinTimeout(60000);
>
> IgniteConfiguration cfg = new IgniteConfiguration();
> cfg.setDiscoverySpi(dspi);
> cfg.setClientMode(true);
>
> Ignite ignite = Ignition.start(cfg);
>
>
> I hope this will be of some use to some of you.
> Bests,
> LPA
>
>
>
> --
> View this message in context:
> http://apache-ignite-developers.2346864.n4.nabble.com/Small-how-to-for-Mesos-Ignite-Java-tp8467.html
> Sent from the Apache Ignite Developers mailing list archive at Nabble.com.
>