You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hama.apache.org by Behroz Sikander <be...@gmail.com> on 2015/07/09 02:02:25 UTC

BSPClass with parameters

Hi,
I was recently working on something and need your suggestion. I am building
a small framework on top of Hama. Using my framework, users will submit a
job to my framework and my framework will internally run the Hama job. Here
is a sample code of what user might submit to my framework.

//Extra Hama related Params here like JobName, output Path etc
IFunction f = new MasterFunction(<inputPath>, <extra params>);
IFunction g = new SlaveFunction(<inputPath>, <extra params>);
ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem here
admm.solve();

Here ExchangeADMMSolver will be a BSP class (this is what I am hoping to
acheive) and *"solve" *method will internally create a HamaJob and will
submit it to Hama.

I am a little confused here that how will I pass all the parameters to the
BSP class (e.g f,g) ? because in Hama if I want to set the bsp class I do
the following

HamaJob. setBspClass(ExchangeADMMSolver.class);

So, Instead of this I am looking for something like

HamaJob.setBspObject(admm);

I might need to override some Hama classes but before doing that I need
some suggestions that what can be the best solution.

Regards,
Behroz Sikander

Re: BSPClass with parameters

Posted by "Edward J. Yoon" <ed...@apache.org>.
Great :)

On Wednesday, July 15, 2015, Behroz Sikander <be...@gmail.com> wrote:

> Hi,
> conf.setClass(name, theClass, xface); <-- This worked. Thanks :)
>
> On Thu, Jul 9, 2015 at 4:18 AM, Behroz Sikander <behroz89@gmail.com
> <javascript:;>> wrote:
>
> > thanks :D
> >
> > On Thu, Jul 9, 2015 at 4:16 AM, Edward J. Yoon <edwardyoon@apache.org
> <javascript:;>>
> > wrote:
> >
> >> Good luck! :-)
> >>
> >> On Thu, Jul 9, 2015 at 11:15 AM, Behroz Sikander <behroz89@gmail.com
> <javascript:;>>
> >> wrote:
> >> > Ok great. Thanks. I will have a look at this.
> >> >
> >> > On Thu, Jul 9, 2015 at 4:10 AM, Edward J. Yoon <edwardyoon@apache.org
> <javascript:;>>
> >> > wrote:
> >> >
> >> >> Here's simple example for you:
> >> >>
> >> >> HamaConfiguration conf = new HamaConfiguration();
> >> >> conf.setClass(name, theClass, xface);
> >> >>
> >> >> BSPJob bsp = new BSPJob(conf, MyBSPProgram.class);
> >> >>
> >> >>
> >> >> On Thu, Jul 9, 2015 at 11:08 AM, Behroz Sikander <behroz89@gmail.com
> <javascript:;>>
> >> >> wrote:
> >> >> > *>>You can set not only String but also Object. :-)*
> >> >> > Well, strange because I only see String data type.
> >> *BSPJ**ob.set(String
> >> >> name,
> >> >> > String value);*
> >> >> >
> >> >> > *>>If f and g functions should be provided as a user-defined
> >> function,*
> >> >> >
> >> >> >
> >> >> > *Above code will be helpful. And also, you can create your
> >> ownframework
> >> >> > atop Hama like BSP-based vertex-centric graph computingframework.*
> >> >> > That is a good idea. I will try to understand the graph engine
> code.
> >> >> >
> >> >> > Thanks,
> >> >> > Behroz
> >> >> >
> >> >> > On Thu, Jul 9, 2015 at 4:00 AM, Edward J. Yoon <
> >> edwardyoon@apache.org <javascript:;>>
> >> >> > wrote:
> >> >> >
> >> >> >> Hi,
> >> >> >>
> >> >> >> You can set not only String but also Object. :-)
> >> >> >>
> >> >> >>   /**
> >> >> >>    * Set the Vertex class for the job.
> >> >> >>    */
> >> >> >>   public void setVertexClass(
> >> >> >>       Class<? extends Vertex<? extends Writable, ? extends
> >> Writable, ?
> >> >> >> extends Writable>> cls)
> >> >> >>       throws IllegalStateException {
> >> >> >>     conf.setClass(VERTEX_CLASS_ATTR, cls, Vertex.class);
> >> >> >>     setInputKeyClass(cls);
> >> >> >>     setInputValueClass(NullWritable.class);
> >> >> >>   }
> >> >> >>
> >> >> >> See also
> >> >> >>
> >> >>
> >>
> http://svn.apache.org/repos/asf/hama/trunk/graph/src/main/java/org/apache/hama/graph/GraphJob.java
> >> >> >>
> >> >> >> If f and g functions should be provided as a user-defined
> function,
> >> >> >> Above code will be helpful. And also, you can create your own
> >> >> >> framework atop Hama like BSP-based vertex-centric graph computing
> >> >> >> framework.
> >> >> >>
> >> >> >> Thanks!
> >> >> >>
> >> >> >>
> >> >> >> On Thu, Jul 9, 2015 at 10:53 AM, Behroz Sikander <
> >> behroz89@gmail.com <javascript:;>>
> >> >> >> wrote:
> >> >> >> > Hi,
> >> >> >> > I know about the set method of BSPJob but the problem is that it
> >> takes
> >> >> >> key
> >> >> >> > and value in *String. *In my case, I want to pass a value of
> type
> >> >> >> *IFunction
> >> >> >> > (which is an interface).*
> >> >> >> >
> >> >> >> > *Regards,*
> >> >> >> > *Behroz*
> >> >> >> >
> >> >> >> > On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <
> >> >> edward.yoon@samsung.com <javascript:;>>
> >> >> >> > wrote:
> >> >> >> >
> >> >> >> >> Hi Behroz,
> >> >> >> >>
> >> >> >> >> You should specify the job parameters using BSPJob's get/set
> >> methods
> >> >> >> like
> >> >> >> >> below:
> >> >> >> >>
> >> >> >> >> BSPJob admm = new BSPJob();
> >> >> >> >>
> >> >> >> >> admm.set("param1", "value");
> >> >> >> >> admm.setBspClass(ExchangeADMMSolver.class);
> >> >> >> >>
> >> >> >> >> Then,
> >> >> >> >>
> >> >> >> >> public class ExchangeADMMSolver extends BSP {
> >> >> >> >>
> >> >> >> >> String param1;
> >> >> >> >>
> >> >> >> >> @Override
> >> >> >> >>     public void setup(BSPPeer peer) {
> >> >> >> >>       this.param1 = peer.getConfiguration().get("param1");
> >> >> >> >>    }
> >> >> >> >>
> >> >> >> >> }
> >> >> >> >>
> >> >> >> >> Thanks.
> >> >> >> >>
> >> >> >> >> --
> >> >> >> >> Best Regards, Edward J. Yoon
> >> >> >> >>
> >> >> >> >> -----Original Message-----
> >> >> >> >> From: Behroz Sikander [mailto:behroz89@gmail.com
> <javascript:;>]
> >> >> >> >> Sent: Thursday, July 09, 2015 9:02 AM
> >> >> >> >> To: dev@hama.apache.org <javascript:;>
> >> >> >> >> Subject: BSPClass with parameters
> >> >> >> >>
> >> >> >> >> Hi,
> >> >> >> >> I was recently working on something and need your suggestion. I
> >> am
> >> >> >> building
> >> >> >> >> a small framework on top of Hama. Using my framework, users
> will
> >> >> submit
> >> >> >> a
> >> >> >> >> job to my framework and my framework will internally run the
> Hama
> >> >> job.
> >> >> >> Here
> >> >> >> >> is a sample code of what user might submit to my framework.
> >> >> >> >>
> >> >> >> >> //Extra Hama related Params here like JobName, output Path etc
> >> >> >> >> IFunction f = new MasterFunction(<inputPath>, <extra params>);
> >> >> >> >> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
> >> >> >> >> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g);
> //Problem
> >> >> here
> >> >> >> >> admm.solve();
> >> >> >> >>
> >> >> >> >> Here ExchangeADMMSolver will be a BSP class (this is what I am
> >> >> hoping to
> >> >> >> >> acheive) and *"solve" *method will internally create a HamaJob
> >> and
> >> >> will
> >> >> >> >> submit it to Hama.
> >> >> >> >>
> >> >> >> >> I am a little confused here that how will I pass all the
> >> parameters
> >> >> to
> >> >> >> the
> >> >> >> >> BSP class (e.g f,g) ? because in Hama if I want to set the bsp
> >> class
> >> >> I
> >> >> >> do
> >> >> >> >> the following
> >> >> >> >>
> >> >> >> >> HamaJob. setBspClass(ExchangeADMMSolver.class);
> >> >> >> >>
> >> >> >> >> So, Instead of this I am looking for something like
> >> >> >> >>
> >> >> >> >> HamaJob.setBspObject(admm);
> >> >> >> >>
> >> >> >> >> I might need to override some Hama classes but before doing
> that
> >> I
> >> >> need
> >> >> >> >> some suggestions that what can be the best solution.
> >> >> >> >>
> >> >> >> >> Regards,
> >> >> >> >> Behroz Sikander
> >> >> >> >>
> >> >> >> >>
> >> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> --
> >> >> >> Best Regards, Edward J. Yoon
> >> >> >>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Best Regards, Edward J. Yoon
> >> >>
> >>
> >>
> >>
> >> --
> >> Best Regards, Edward J. Yoon
> >>
> >
> >
>


-- 
Best Regards, Edward J. Yoon

Re: BSPClass with parameters

Posted by Behroz Sikander <be...@gmail.com>.
Hi,
conf.setClass(name, theClass, xface); <-- This worked. Thanks :)

On Thu, Jul 9, 2015 at 4:18 AM, Behroz Sikander <be...@gmail.com> wrote:

> thanks :D
>
> On Thu, Jul 9, 2015 at 4:16 AM, Edward J. Yoon <ed...@apache.org>
> wrote:
>
>> Good luck! :-)
>>
>> On Thu, Jul 9, 2015 at 11:15 AM, Behroz Sikander <be...@gmail.com>
>> wrote:
>> > Ok great. Thanks. I will have a look at this.
>> >
>> > On Thu, Jul 9, 2015 at 4:10 AM, Edward J. Yoon <ed...@apache.org>
>> > wrote:
>> >
>> >> Here's simple example for you:
>> >>
>> >> HamaConfiguration conf = new HamaConfiguration();
>> >> conf.setClass(name, theClass, xface);
>> >>
>> >> BSPJob bsp = new BSPJob(conf, MyBSPProgram.class);
>> >>
>> >>
>> >> On Thu, Jul 9, 2015 at 11:08 AM, Behroz Sikander <be...@gmail.com>
>> >> wrote:
>> >> > *>>You can set not only String but also Object. :-)*
>> >> > Well, strange because I only see String data type.
>> *BSPJ**ob.set(String
>> >> name,
>> >> > String value);*
>> >> >
>> >> > *>>If f and g functions should be provided as a user-defined
>> function,*
>> >> >
>> >> >
>> >> > *Above code will be helpful. And also, you can create your
>> ownframework
>> >> > atop Hama like BSP-based vertex-centric graph computingframework.*
>> >> > That is a good idea. I will try to understand the graph engine code.
>> >> >
>> >> > Thanks,
>> >> > Behroz
>> >> >
>> >> > On Thu, Jul 9, 2015 at 4:00 AM, Edward J. Yoon <
>> edwardyoon@apache.org>
>> >> > wrote:
>> >> >
>> >> >> Hi,
>> >> >>
>> >> >> You can set not only String but also Object. :-)
>> >> >>
>> >> >>   /**
>> >> >>    * Set the Vertex class for the job.
>> >> >>    */
>> >> >>   public void setVertexClass(
>> >> >>       Class<? extends Vertex<? extends Writable, ? extends
>> Writable, ?
>> >> >> extends Writable>> cls)
>> >> >>       throws IllegalStateException {
>> >> >>     conf.setClass(VERTEX_CLASS_ATTR, cls, Vertex.class);
>> >> >>     setInputKeyClass(cls);
>> >> >>     setInputValueClass(NullWritable.class);
>> >> >>   }
>> >> >>
>> >> >> See also
>> >> >>
>> >>
>> http://svn.apache.org/repos/asf/hama/trunk/graph/src/main/java/org/apache/hama/graph/GraphJob.java
>> >> >>
>> >> >> If f and g functions should be provided as a user-defined function,
>> >> >> Above code will be helpful. And also, you can create your own
>> >> >> framework atop Hama like BSP-based vertex-centric graph computing
>> >> >> framework.
>> >> >>
>> >> >> Thanks!
>> >> >>
>> >> >>
>> >> >> On Thu, Jul 9, 2015 at 10:53 AM, Behroz Sikander <
>> behroz89@gmail.com>
>> >> >> wrote:
>> >> >> > Hi,
>> >> >> > I know about the set method of BSPJob but the problem is that it
>> takes
>> >> >> key
>> >> >> > and value in *String. *In my case, I want to pass a value of type
>> >> >> *IFunction
>> >> >> > (which is an interface).*
>> >> >> >
>> >> >> > *Regards,*
>> >> >> > *Behroz*
>> >> >> >
>> >> >> > On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <
>> >> edward.yoon@samsung.com>
>> >> >> > wrote:
>> >> >> >
>> >> >> >> Hi Behroz,
>> >> >> >>
>> >> >> >> You should specify the job parameters using BSPJob's get/set
>> methods
>> >> >> like
>> >> >> >> below:
>> >> >> >>
>> >> >> >> BSPJob admm = new BSPJob();
>> >> >> >>
>> >> >> >> admm.set("param1", "value");
>> >> >> >> admm.setBspClass(ExchangeADMMSolver.class);
>> >> >> >>
>> >> >> >> Then,
>> >> >> >>
>> >> >> >> public class ExchangeADMMSolver extends BSP {
>> >> >> >>
>> >> >> >> String param1;
>> >> >> >>
>> >> >> >> @Override
>> >> >> >>     public void setup(BSPPeer peer) {
>> >> >> >>       this.param1 = peer.getConfiguration().get("param1");
>> >> >> >>    }
>> >> >> >>
>> >> >> >> }
>> >> >> >>
>> >> >> >> Thanks.
>> >> >> >>
>> >> >> >> --
>> >> >> >> Best Regards, Edward J. Yoon
>> >> >> >>
>> >> >> >> -----Original Message-----
>> >> >> >> From: Behroz Sikander [mailto:behroz89@gmail.com]
>> >> >> >> Sent: Thursday, July 09, 2015 9:02 AM
>> >> >> >> To: dev@hama.apache.org
>> >> >> >> Subject: BSPClass with parameters
>> >> >> >>
>> >> >> >> Hi,
>> >> >> >> I was recently working on something and need your suggestion. I
>> am
>> >> >> building
>> >> >> >> a small framework on top of Hama. Using my framework, users will
>> >> submit
>> >> >> a
>> >> >> >> job to my framework and my framework will internally run the Hama
>> >> job.
>> >> >> Here
>> >> >> >> is a sample code of what user might submit to my framework.
>> >> >> >>
>> >> >> >> //Extra Hama related Params here like JobName, output Path etc
>> >> >> >> IFunction f = new MasterFunction(<inputPath>, <extra params>);
>> >> >> >> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
>> >> >> >> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem
>> >> here
>> >> >> >> admm.solve();
>> >> >> >>
>> >> >> >> Here ExchangeADMMSolver will be a BSP class (this is what I am
>> >> hoping to
>> >> >> >> acheive) and *"solve" *method will internally create a HamaJob
>> and
>> >> will
>> >> >> >> submit it to Hama.
>> >> >> >>
>> >> >> >> I am a little confused here that how will I pass all the
>> parameters
>> >> to
>> >> >> the
>> >> >> >> BSP class (e.g f,g) ? because in Hama if I want to set the bsp
>> class
>> >> I
>> >> >> do
>> >> >> >> the following
>> >> >> >>
>> >> >> >> HamaJob. setBspClass(ExchangeADMMSolver.class);
>> >> >> >>
>> >> >> >> So, Instead of this I am looking for something like
>> >> >> >>
>> >> >> >> HamaJob.setBspObject(admm);
>> >> >> >>
>> >> >> >> I might need to override some Hama classes but before doing that
>> I
>> >> need
>> >> >> >> some suggestions that what can be the best solution.
>> >> >> >>
>> >> >> >> Regards,
>> >> >> >> Behroz Sikander
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Best Regards, Edward J. Yoon
>> >> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Best Regards, Edward J. Yoon
>> >>
>>
>>
>>
>> --
>> Best Regards, Edward J. Yoon
>>
>
>

Re: BSPClass with parameters

Posted by Behroz Sikander <be...@gmail.com>.
thanks :D

On Thu, Jul 9, 2015 at 4:16 AM, Edward J. Yoon <ed...@apache.org>
wrote:

> Good luck! :-)
>
> On Thu, Jul 9, 2015 at 11:15 AM, Behroz Sikander <be...@gmail.com>
> wrote:
> > Ok great. Thanks. I will have a look at this.
> >
> > On Thu, Jul 9, 2015 at 4:10 AM, Edward J. Yoon <ed...@apache.org>
> > wrote:
> >
> >> Here's simple example for you:
> >>
> >> HamaConfiguration conf = new HamaConfiguration();
> >> conf.setClass(name, theClass, xface);
> >>
> >> BSPJob bsp = new BSPJob(conf, MyBSPProgram.class);
> >>
> >>
> >> On Thu, Jul 9, 2015 at 11:08 AM, Behroz Sikander <be...@gmail.com>
> >> wrote:
> >> > *>>You can set not only String but also Object. :-)*
> >> > Well, strange because I only see String data type.
> *BSPJ**ob.set(String
> >> name,
> >> > String value);*
> >> >
> >> > *>>If f and g functions should be provided as a user-defined
> function,*
> >> >
> >> >
> >> > *Above code will be helpful. And also, you can create your
> ownframework
> >> > atop Hama like BSP-based vertex-centric graph computingframework.*
> >> > That is a good idea. I will try to understand the graph engine code.
> >> >
> >> > Thanks,
> >> > Behroz
> >> >
> >> > On Thu, Jul 9, 2015 at 4:00 AM, Edward J. Yoon <edwardyoon@apache.org
> >
> >> > wrote:
> >> >
> >> >> Hi,
> >> >>
> >> >> You can set not only String but also Object. :-)
> >> >>
> >> >>   /**
> >> >>    * Set the Vertex class for the job.
> >> >>    */
> >> >>   public void setVertexClass(
> >> >>       Class<? extends Vertex<? extends Writable, ? extends Writable,
> ?
> >> >> extends Writable>> cls)
> >> >>       throws IllegalStateException {
> >> >>     conf.setClass(VERTEX_CLASS_ATTR, cls, Vertex.class);
> >> >>     setInputKeyClass(cls);
> >> >>     setInputValueClass(NullWritable.class);
> >> >>   }
> >> >>
> >> >> See also
> >> >>
> >>
> http://svn.apache.org/repos/asf/hama/trunk/graph/src/main/java/org/apache/hama/graph/GraphJob.java
> >> >>
> >> >> If f and g functions should be provided as a user-defined function,
> >> >> Above code will be helpful. And also, you can create your own
> >> >> framework atop Hama like BSP-based vertex-centric graph computing
> >> >> framework.
> >> >>
> >> >> Thanks!
> >> >>
> >> >>
> >> >> On Thu, Jul 9, 2015 at 10:53 AM, Behroz Sikander <behroz89@gmail.com
> >
> >> >> wrote:
> >> >> > Hi,
> >> >> > I know about the set method of BSPJob but the problem is that it
> takes
> >> >> key
> >> >> > and value in *String. *In my case, I want to pass a value of type
> >> >> *IFunction
> >> >> > (which is an interface).*
> >> >> >
> >> >> > *Regards,*
> >> >> > *Behroz*
> >> >> >
> >> >> > On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <
> >> edward.yoon@samsung.com>
> >> >> > wrote:
> >> >> >
> >> >> >> Hi Behroz,
> >> >> >>
> >> >> >> You should specify the job parameters using BSPJob's get/set
> methods
> >> >> like
> >> >> >> below:
> >> >> >>
> >> >> >> BSPJob admm = new BSPJob();
> >> >> >>
> >> >> >> admm.set("param1", "value");
> >> >> >> admm.setBspClass(ExchangeADMMSolver.class);
> >> >> >>
> >> >> >> Then,
> >> >> >>
> >> >> >> public class ExchangeADMMSolver extends BSP {
> >> >> >>
> >> >> >> String param1;
> >> >> >>
> >> >> >> @Override
> >> >> >>     public void setup(BSPPeer peer) {
> >> >> >>       this.param1 = peer.getConfiguration().get("param1");
> >> >> >>    }
> >> >> >>
> >> >> >> }
> >> >> >>
> >> >> >> Thanks.
> >> >> >>
> >> >> >> --
> >> >> >> Best Regards, Edward J. Yoon
> >> >> >>
> >> >> >> -----Original Message-----
> >> >> >> From: Behroz Sikander [mailto:behroz89@gmail.com]
> >> >> >> Sent: Thursday, July 09, 2015 9:02 AM
> >> >> >> To: dev@hama.apache.org
> >> >> >> Subject: BSPClass with parameters
> >> >> >>
> >> >> >> Hi,
> >> >> >> I was recently working on something and need your suggestion. I am
> >> >> building
> >> >> >> a small framework on top of Hama. Using my framework, users will
> >> submit
> >> >> a
> >> >> >> job to my framework and my framework will internally run the Hama
> >> job.
> >> >> Here
> >> >> >> is a sample code of what user might submit to my framework.
> >> >> >>
> >> >> >> //Extra Hama related Params here like JobName, output Path etc
> >> >> >> IFunction f = new MasterFunction(<inputPath>, <extra params>);
> >> >> >> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
> >> >> >> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem
> >> here
> >> >> >> admm.solve();
> >> >> >>
> >> >> >> Here ExchangeADMMSolver will be a BSP class (this is what I am
> >> hoping to
> >> >> >> acheive) and *"solve" *method will internally create a HamaJob and
> >> will
> >> >> >> submit it to Hama.
> >> >> >>
> >> >> >> I am a little confused here that how will I pass all the
> parameters
> >> to
> >> >> the
> >> >> >> BSP class (e.g f,g) ? because in Hama if I want to set the bsp
> class
> >> I
> >> >> do
> >> >> >> the following
> >> >> >>
> >> >> >> HamaJob. setBspClass(ExchangeADMMSolver.class);
> >> >> >>
> >> >> >> So, Instead of this I am looking for something like
> >> >> >>
> >> >> >> HamaJob.setBspObject(admm);
> >> >> >>
> >> >> >> I might need to override some Hama classes but before doing that I
> >> need
> >> >> >> some suggestions that what can be the best solution.
> >> >> >>
> >> >> >> Regards,
> >> >> >> Behroz Sikander
> >> >> >>
> >> >> >>
> >> >> >>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Best Regards, Edward J. Yoon
> >> >>
> >>
> >>
> >>
> >> --
> >> Best Regards, Edward J. Yoon
> >>
>
>
>
> --
> Best Regards, Edward J. Yoon
>

Re: BSPClass with parameters

Posted by "Edward J. Yoon" <ed...@apache.org>.
Good luck! :-)

On Thu, Jul 9, 2015 at 11:15 AM, Behroz Sikander <be...@gmail.com> wrote:
> Ok great. Thanks. I will have a look at this.
>
> On Thu, Jul 9, 2015 at 4:10 AM, Edward J. Yoon <ed...@apache.org>
> wrote:
>
>> Here's simple example for you:
>>
>> HamaConfiguration conf = new HamaConfiguration();
>> conf.setClass(name, theClass, xface);
>>
>> BSPJob bsp = new BSPJob(conf, MyBSPProgram.class);
>>
>>
>> On Thu, Jul 9, 2015 at 11:08 AM, Behroz Sikander <be...@gmail.com>
>> wrote:
>> > *>>You can set not only String but also Object. :-)*
>> > Well, strange because I only see String data type. *BSPJ**ob.set(String
>> name,
>> > String value);*
>> >
>> > *>>If f and g functions should be provided as a user-defined function,*
>> >
>> >
>> > *Above code will be helpful. And also, you can create your ownframework
>> > atop Hama like BSP-based vertex-centric graph computingframework.*
>> > That is a good idea. I will try to understand the graph engine code.
>> >
>> > Thanks,
>> > Behroz
>> >
>> > On Thu, Jul 9, 2015 at 4:00 AM, Edward J. Yoon <ed...@apache.org>
>> > wrote:
>> >
>> >> Hi,
>> >>
>> >> You can set not only String but also Object. :-)
>> >>
>> >>   /**
>> >>    * Set the Vertex class for the job.
>> >>    */
>> >>   public void setVertexClass(
>> >>       Class<? extends Vertex<? extends Writable, ? extends Writable, ?
>> >> extends Writable>> cls)
>> >>       throws IllegalStateException {
>> >>     conf.setClass(VERTEX_CLASS_ATTR, cls, Vertex.class);
>> >>     setInputKeyClass(cls);
>> >>     setInputValueClass(NullWritable.class);
>> >>   }
>> >>
>> >> See also
>> >>
>> http://svn.apache.org/repos/asf/hama/trunk/graph/src/main/java/org/apache/hama/graph/GraphJob.java
>> >>
>> >> If f and g functions should be provided as a user-defined function,
>> >> Above code will be helpful. And also, you can create your own
>> >> framework atop Hama like BSP-based vertex-centric graph computing
>> >> framework.
>> >>
>> >> Thanks!
>> >>
>> >>
>> >> On Thu, Jul 9, 2015 at 10:53 AM, Behroz Sikander <be...@gmail.com>
>> >> wrote:
>> >> > Hi,
>> >> > I know about the set method of BSPJob but the problem is that it takes
>> >> key
>> >> > and value in *String. *In my case, I want to pass a value of type
>> >> *IFunction
>> >> > (which is an interface).*
>> >> >
>> >> > *Regards,*
>> >> > *Behroz*
>> >> >
>> >> > On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <
>> edward.yoon@samsung.com>
>> >> > wrote:
>> >> >
>> >> >> Hi Behroz,
>> >> >>
>> >> >> You should specify the job parameters using BSPJob's get/set methods
>> >> like
>> >> >> below:
>> >> >>
>> >> >> BSPJob admm = new BSPJob();
>> >> >>
>> >> >> admm.set("param1", "value");
>> >> >> admm.setBspClass(ExchangeADMMSolver.class);
>> >> >>
>> >> >> Then,
>> >> >>
>> >> >> public class ExchangeADMMSolver extends BSP {
>> >> >>
>> >> >> String param1;
>> >> >>
>> >> >> @Override
>> >> >>     public void setup(BSPPeer peer) {
>> >> >>       this.param1 = peer.getConfiguration().get("param1");
>> >> >>    }
>> >> >>
>> >> >> }
>> >> >>
>> >> >> Thanks.
>> >> >>
>> >> >> --
>> >> >> Best Regards, Edward J. Yoon
>> >> >>
>> >> >> -----Original Message-----
>> >> >> From: Behroz Sikander [mailto:behroz89@gmail.com]
>> >> >> Sent: Thursday, July 09, 2015 9:02 AM
>> >> >> To: dev@hama.apache.org
>> >> >> Subject: BSPClass with parameters
>> >> >>
>> >> >> Hi,
>> >> >> I was recently working on something and need your suggestion. I am
>> >> building
>> >> >> a small framework on top of Hama. Using my framework, users will
>> submit
>> >> a
>> >> >> job to my framework and my framework will internally run the Hama
>> job.
>> >> Here
>> >> >> is a sample code of what user might submit to my framework.
>> >> >>
>> >> >> //Extra Hama related Params here like JobName, output Path etc
>> >> >> IFunction f = new MasterFunction(<inputPath>, <extra params>);
>> >> >> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
>> >> >> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem
>> here
>> >> >> admm.solve();
>> >> >>
>> >> >> Here ExchangeADMMSolver will be a BSP class (this is what I am
>> hoping to
>> >> >> acheive) and *"solve" *method will internally create a HamaJob and
>> will
>> >> >> submit it to Hama.
>> >> >>
>> >> >> I am a little confused here that how will I pass all the parameters
>> to
>> >> the
>> >> >> BSP class (e.g f,g) ? because in Hama if I want to set the bsp class
>> I
>> >> do
>> >> >> the following
>> >> >>
>> >> >> HamaJob. setBspClass(ExchangeADMMSolver.class);
>> >> >>
>> >> >> So, Instead of this I am looking for something like
>> >> >>
>> >> >> HamaJob.setBspObject(admm);
>> >> >>
>> >> >> I might need to override some Hama classes but before doing that I
>> need
>> >> >> some suggestions that what can be the best solution.
>> >> >>
>> >> >> Regards,
>> >> >> Behroz Sikander
>> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Best Regards, Edward J. Yoon
>> >>
>>
>>
>>
>> --
>> Best Regards, Edward J. Yoon
>>



-- 
Best Regards, Edward J. Yoon

Re: BSPClass with parameters

Posted by Behroz Sikander <be...@gmail.com>.
Ok great. Thanks. I will have a look at this.

On Thu, Jul 9, 2015 at 4:10 AM, Edward J. Yoon <ed...@apache.org>
wrote:

> Here's simple example for you:
>
> HamaConfiguration conf = new HamaConfiguration();
> conf.setClass(name, theClass, xface);
>
> BSPJob bsp = new BSPJob(conf, MyBSPProgram.class);
>
>
> On Thu, Jul 9, 2015 at 11:08 AM, Behroz Sikander <be...@gmail.com>
> wrote:
> > *>>You can set not only String but also Object. :-)*
> > Well, strange because I only see String data type. *BSPJ**ob.set(String
> name,
> > String value);*
> >
> > *>>If f and g functions should be provided as a user-defined function,*
> >
> >
> > *Above code will be helpful. And also, you can create your ownframework
> > atop Hama like BSP-based vertex-centric graph computingframework.*
> > That is a good idea. I will try to understand the graph engine code.
> >
> > Thanks,
> > Behroz
> >
> > On Thu, Jul 9, 2015 at 4:00 AM, Edward J. Yoon <ed...@apache.org>
> > wrote:
> >
> >> Hi,
> >>
> >> You can set not only String but also Object. :-)
> >>
> >>   /**
> >>    * Set the Vertex class for the job.
> >>    */
> >>   public void setVertexClass(
> >>       Class<? extends Vertex<? extends Writable, ? extends Writable, ?
> >> extends Writable>> cls)
> >>       throws IllegalStateException {
> >>     conf.setClass(VERTEX_CLASS_ATTR, cls, Vertex.class);
> >>     setInputKeyClass(cls);
> >>     setInputValueClass(NullWritable.class);
> >>   }
> >>
> >> See also
> >>
> http://svn.apache.org/repos/asf/hama/trunk/graph/src/main/java/org/apache/hama/graph/GraphJob.java
> >>
> >> If f and g functions should be provided as a user-defined function,
> >> Above code will be helpful. And also, you can create your own
> >> framework atop Hama like BSP-based vertex-centric graph computing
> >> framework.
> >>
> >> Thanks!
> >>
> >>
> >> On Thu, Jul 9, 2015 at 10:53 AM, Behroz Sikander <be...@gmail.com>
> >> wrote:
> >> > Hi,
> >> > I know about the set method of BSPJob but the problem is that it takes
> >> key
> >> > and value in *String. *In my case, I want to pass a value of type
> >> *IFunction
> >> > (which is an interface).*
> >> >
> >> > *Regards,*
> >> > *Behroz*
> >> >
> >> > On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <
> edward.yoon@samsung.com>
> >> > wrote:
> >> >
> >> >> Hi Behroz,
> >> >>
> >> >> You should specify the job parameters using BSPJob's get/set methods
> >> like
> >> >> below:
> >> >>
> >> >> BSPJob admm = new BSPJob();
> >> >>
> >> >> admm.set("param1", "value");
> >> >> admm.setBspClass(ExchangeADMMSolver.class);
> >> >>
> >> >> Then,
> >> >>
> >> >> public class ExchangeADMMSolver extends BSP {
> >> >>
> >> >> String param1;
> >> >>
> >> >> @Override
> >> >>     public void setup(BSPPeer peer) {
> >> >>       this.param1 = peer.getConfiguration().get("param1");
> >> >>    }
> >> >>
> >> >> }
> >> >>
> >> >> Thanks.
> >> >>
> >> >> --
> >> >> Best Regards, Edward J. Yoon
> >> >>
> >> >> -----Original Message-----
> >> >> From: Behroz Sikander [mailto:behroz89@gmail.com]
> >> >> Sent: Thursday, July 09, 2015 9:02 AM
> >> >> To: dev@hama.apache.org
> >> >> Subject: BSPClass with parameters
> >> >>
> >> >> Hi,
> >> >> I was recently working on something and need your suggestion. I am
> >> building
> >> >> a small framework on top of Hama. Using my framework, users will
> submit
> >> a
> >> >> job to my framework and my framework will internally run the Hama
> job.
> >> Here
> >> >> is a sample code of what user might submit to my framework.
> >> >>
> >> >> //Extra Hama related Params here like JobName, output Path etc
> >> >> IFunction f = new MasterFunction(<inputPath>, <extra params>);
> >> >> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
> >> >> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem
> here
> >> >> admm.solve();
> >> >>
> >> >> Here ExchangeADMMSolver will be a BSP class (this is what I am
> hoping to
> >> >> acheive) and *"solve" *method will internally create a HamaJob and
> will
> >> >> submit it to Hama.
> >> >>
> >> >> I am a little confused here that how will I pass all the parameters
> to
> >> the
> >> >> BSP class (e.g f,g) ? because in Hama if I want to set the bsp class
> I
> >> do
> >> >> the following
> >> >>
> >> >> HamaJob. setBspClass(ExchangeADMMSolver.class);
> >> >>
> >> >> So, Instead of this I am looking for something like
> >> >>
> >> >> HamaJob.setBspObject(admm);
> >> >>
> >> >> I might need to override some Hama classes but before doing that I
> need
> >> >> some suggestions that what can be the best solution.
> >> >>
> >> >> Regards,
> >> >> Behroz Sikander
> >> >>
> >> >>
> >> >>
> >>
> >>
> >>
> >> --
> >> Best Regards, Edward J. Yoon
> >>
>
>
>
> --
> Best Regards, Edward J. Yoon
>

Re: BSPClass with parameters

Posted by "Edward J. Yoon" <ed...@apache.org>.
Here's simple example for you:

HamaConfiguration conf = new HamaConfiguration();
conf.setClass(name, theClass, xface);

BSPJob bsp = new BSPJob(conf, MyBSPProgram.class);


On Thu, Jul 9, 2015 at 11:08 AM, Behroz Sikander <be...@gmail.com> wrote:
> *>>You can set not only String but also Object. :-)*
> Well, strange because I only see String data type. *BSPJ**ob.set(String name,
> String value);*
>
> *>>If f and g functions should be provided as a user-defined function,*
>
>
> *Above code will be helpful. And also, you can create your ownframework
> atop Hama like BSP-based vertex-centric graph computingframework.*
> That is a good idea. I will try to understand the graph engine code.
>
> Thanks,
> Behroz
>
> On Thu, Jul 9, 2015 at 4:00 AM, Edward J. Yoon <ed...@apache.org>
> wrote:
>
>> Hi,
>>
>> You can set not only String but also Object. :-)
>>
>>   /**
>>    * Set the Vertex class for the job.
>>    */
>>   public void setVertexClass(
>>       Class<? extends Vertex<? extends Writable, ? extends Writable, ?
>> extends Writable>> cls)
>>       throws IllegalStateException {
>>     conf.setClass(VERTEX_CLASS_ATTR, cls, Vertex.class);
>>     setInputKeyClass(cls);
>>     setInputValueClass(NullWritable.class);
>>   }
>>
>> See also
>> http://svn.apache.org/repos/asf/hama/trunk/graph/src/main/java/org/apache/hama/graph/GraphJob.java
>>
>> If f and g functions should be provided as a user-defined function,
>> Above code will be helpful. And also, you can create your own
>> framework atop Hama like BSP-based vertex-centric graph computing
>> framework.
>>
>> Thanks!
>>
>>
>> On Thu, Jul 9, 2015 at 10:53 AM, Behroz Sikander <be...@gmail.com>
>> wrote:
>> > Hi,
>> > I know about the set method of BSPJob but the problem is that it takes
>> key
>> > and value in *String. *In my case, I want to pass a value of type
>> *IFunction
>> > (which is an interface).*
>> >
>> > *Regards,*
>> > *Behroz*
>> >
>> > On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <ed...@samsung.com>
>> > wrote:
>> >
>> >> Hi Behroz,
>> >>
>> >> You should specify the job parameters using BSPJob's get/set methods
>> like
>> >> below:
>> >>
>> >> BSPJob admm = new BSPJob();
>> >>
>> >> admm.set("param1", "value");
>> >> admm.setBspClass(ExchangeADMMSolver.class);
>> >>
>> >> Then,
>> >>
>> >> public class ExchangeADMMSolver extends BSP {
>> >>
>> >> String param1;
>> >>
>> >> @Override
>> >>     public void setup(BSPPeer peer) {
>> >>       this.param1 = peer.getConfiguration().get("param1");
>> >>    }
>> >>
>> >> }
>> >>
>> >> Thanks.
>> >>
>> >> --
>> >> Best Regards, Edward J. Yoon
>> >>
>> >> -----Original Message-----
>> >> From: Behroz Sikander [mailto:behroz89@gmail.com]
>> >> Sent: Thursday, July 09, 2015 9:02 AM
>> >> To: dev@hama.apache.org
>> >> Subject: BSPClass with parameters
>> >>
>> >> Hi,
>> >> I was recently working on something and need your suggestion. I am
>> building
>> >> a small framework on top of Hama. Using my framework, users will submit
>> a
>> >> job to my framework and my framework will internally run the Hama job.
>> Here
>> >> is a sample code of what user might submit to my framework.
>> >>
>> >> //Extra Hama related Params here like JobName, output Path etc
>> >> IFunction f = new MasterFunction(<inputPath>, <extra params>);
>> >> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
>> >> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem here
>> >> admm.solve();
>> >>
>> >> Here ExchangeADMMSolver will be a BSP class (this is what I am hoping to
>> >> acheive) and *"solve" *method will internally create a HamaJob and will
>> >> submit it to Hama.
>> >>
>> >> I am a little confused here that how will I pass all the parameters to
>> the
>> >> BSP class (e.g f,g) ? because in Hama if I want to set the bsp class I
>> do
>> >> the following
>> >>
>> >> HamaJob. setBspClass(ExchangeADMMSolver.class);
>> >>
>> >> So, Instead of this I am looking for something like
>> >>
>> >> HamaJob.setBspObject(admm);
>> >>
>> >> I might need to override some Hama classes but before doing that I need
>> >> some suggestions that what can be the best solution.
>> >>
>> >> Regards,
>> >> Behroz Sikander
>> >>
>> >>
>> >>
>>
>>
>>
>> --
>> Best Regards, Edward J. Yoon
>>



-- 
Best Regards, Edward J. Yoon

Re: BSPClass with parameters

Posted by Behroz Sikander <be...@gmail.com>.
*>>You can set not only String but also Object. :-)*
Well, strange because I only see String data type. *BSPJ**ob.set(String name,
String value);*

*>>If f and g functions should be provided as a user-defined function,*


*Above code will be helpful. And also, you can create your ownframework
atop Hama like BSP-based vertex-centric graph computingframework.*
That is a good idea. I will try to understand the graph engine code.

Thanks,
Behroz

On Thu, Jul 9, 2015 at 4:00 AM, Edward J. Yoon <ed...@apache.org>
wrote:

> Hi,
>
> You can set not only String but also Object. :-)
>
>   /**
>    * Set the Vertex class for the job.
>    */
>   public void setVertexClass(
>       Class<? extends Vertex<? extends Writable, ? extends Writable, ?
> extends Writable>> cls)
>       throws IllegalStateException {
>     conf.setClass(VERTEX_CLASS_ATTR, cls, Vertex.class);
>     setInputKeyClass(cls);
>     setInputValueClass(NullWritable.class);
>   }
>
> See also
> http://svn.apache.org/repos/asf/hama/trunk/graph/src/main/java/org/apache/hama/graph/GraphJob.java
>
> If f and g functions should be provided as a user-defined function,
> Above code will be helpful. And also, you can create your own
> framework atop Hama like BSP-based vertex-centric graph computing
> framework.
>
> Thanks!
>
>
> On Thu, Jul 9, 2015 at 10:53 AM, Behroz Sikander <be...@gmail.com>
> wrote:
> > Hi,
> > I know about the set method of BSPJob but the problem is that it takes
> key
> > and value in *String. *In my case, I want to pass a value of type
> *IFunction
> > (which is an interface).*
> >
> > *Regards,*
> > *Behroz*
> >
> > On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <ed...@samsung.com>
> > wrote:
> >
> >> Hi Behroz,
> >>
> >> You should specify the job parameters using BSPJob's get/set methods
> like
> >> below:
> >>
> >> BSPJob admm = new BSPJob();
> >>
> >> admm.set("param1", "value");
> >> admm.setBspClass(ExchangeADMMSolver.class);
> >>
> >> Then,
> >>
> >> public class ExchangeADMMSolver extends BSP {
> >>
> >> String param1;
> >>
> >> @Override
> >>     public void setup(BSPPeer peer) {
> >>       this.param1 = peer.getConfiguration().get("param1");
> >>    }
> >>
> >> }
> >>
> >> Thanks.
> >>
> >> --
> >> Best Regards, Edward J. Yoon
> >>
> >> -----Original Message-----
> >> From: Behroz Sikander [mailto:behroz89@gmail.com]
> >> Sent: Thursday, July 09, 2015 9:02 AM
> >> To: dev@hama.apache.org
> >> Subject: BSPClass with parameters
> >>
> >> Hi,
> >> I was recently working on something and need your suggestion. I am
> building
> >> a small framework on top of Hama. Using my framework, users will submit
> a
> >> job to my framework and my framework will internally run the Hama job.
> Here
> >> is a sample code of what user might submit to my framework.
> >>
> >> //Extra Hama related Params here like JobName, output Path etc
> >> IFunction f = new MasterFunction(<inputPath>, <extra params>);
> >> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
> >> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem here
> >> admm.solve();
> >>
> >> Here ExchangeADMMSolver will be a BSP class (this is what I am hoping to
> >> acheive) and *"solve" *method will internally create a HamaJob and will
> >> submit it to Hama.
> >>
> >> I am a little confused here that how will I pass all the parameters to
> the
> >> BSP class (e.g f,g) ? because in Hama if I want to set the bsp class I
> do
> >> the following
> >>
> >> HamaJob. setBspClass(ExchangeADMMSolver.class);
> >>
> >> So, Instead of this I am looking for something like
> >>
> >> HamaJob.setBspObject(admm);
> >>
> >> I might need to override some Hama classes but before doing that I need
> >> some suggestions that what can be the best solution.
> >>
> >> Regards,
> >> Behroz Sikander
> >>
> >>
> >>
>
>
>
> --
> Best Regards, Edward J. Yoon
>

Re: BSPClass with parameters

Posted by "Edward J. Yoon" <ed...@apache.org>.
Hi,

You can set not only String but also Object. :-)

  /**
   * Set the Vertex class for the job.
   */
  public void setVertexClass(
      Class<? extends Vertex<? extends Writable, ? extends Writable, ?
extends Writable>> cls)
      throws IllegalStateException {
    conf.setClass(VERTEX_CLASS_ATTR, cls, Vertex.class);
    setInputKeyClass(cls);
    setInputValueClass(NullWritable.class);
  }

See also http://svn.apache.org/repos/asf/hama/trunk/graph/src/main/java/org/apache/hama/graph/GraphJob.java

If f and g functions should be provided as a user-defined function,
Above code will be helpful. And also, you can create your own
framework atop Hama like BSP-based vertex-centric graph computing
framework.

Thanks!


On Thu, Jul 9, 2015 at 10:53 AM, Behroz Sikander <be...@gmail.com> wrote:
> Hi,
> I know about the set method of BSPJob but the problem is that it takes key
> and value in *String. *In my case, I want to pass a value of type *IFunction
> (which is an interface).*
>
> *Regards,*
> *Behroz*
>
> On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <ed...@samsung.com>
> wrote:
>
>> Hi Behroz,
>>
>> You should specify the job parameters using BSPJob's get/set methods like
>> below:
>>
>> BSPJob admm = new BSPJob();
>>
>> admm.set("param1", "value");
>> admm.setBspClass(ExchangeADMMSolver.class);
>>
>> Then,
>>
>> public class ExchangeADMMSolver extends BSP {
>>
>> String param1;
>>
>> @Override
>>     public void setup(BSPPeer peer) {
>>       this.param1 = peer.getConfiguration().get("param1");
>>    }
>>
>> }
>>
>> Thanks.
>>
>> --
>> Best Regards, Edward J. Yoon
>>
>> -----Original Message-----
>> From: Behroz Sikander [mailto:behroz89@gmail.com]
>> Sent: Thursday, July 09, 2015 9:02 AM
>> To: dev@hama.apache.org
>> Subject: BSPClass with parameters
>>
>> Hi,
>> I was recently working on something and need your suggestion. I am building
>> a small framework on top of Hama. Using my framework, users will submit a
>> job to my framework and my framework will internally run the Hama job. Here
>> is a sample code of what user might submit to my framework.
>>
>> //Extra Hama related Params here like JobName, output Path etc
>> IFunction f = new MasterFunction(<inputPath>, <extra params>);
>> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
>> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem here
>> admm.solve();
>>
>> Here ExchangeADMMSolver will be a BSP class (this is what I am hoping to
>> acheive) and *"solve" *method will internally create a HamaJob and will
>> submit it to Hama.
>>
>> I am a little confused here that how will I pass all the parameters to the
>> BSP class (e.g f,g) ? because in Hama if I want to set the bsp class I do
>> the following
>>
>> HamaJob. setBspClass(ExchangeADMMSolver.class);
>>
>> So, Instead of this I am looking for something like
>>
>> HamaJob.setBspObject(admm);
>>
>> I might need to override some Hama classes but before doing that I need
>> some suggestions that what can be the best solution.
>>
>> Regards,
>> Behroz Sikander
>>
>>
>>



-- 
Best Regards, Edward J. Yoon

Re: BSPClass with parameters

Posted by Behroz Sikander <be...@gmail.com>.
Hi,
I know about the set method of BSPJob but the problem is that it takes key
and value in *String. *In my case, I want to pass a value of type *IFunction
(which is an interface).*

*Regards,*
*Behroz*

On Thu, Jul 9, 2015 at 3:14 AM, Edward J. Yoon <ed...@samsung.com>
wrote:

> Hi Behroz,
>
> You should specify the job parameters using BSPJob's get/set methods like
> below:
>
> BSPJob admm = new BSPJob();
>
> admm.set("param1", "value");
> admm.setBspClass(ExchangeADMMSolver.class);
>
> Then,
>
> public class ExchangeADMMSolver extends BSP {
>
> String param1;
>
> @Override
>     public void setup(BSPPeer peer) {
>       this.param1 = peer.getConfiguration().get("param1");
>    }
>
> }
>
> Thanks.
>
> --
> Best Regards, Edward J. Yoon
>
> -----Original Message-----
> From: Behroz Sikander [mailto:behroz89@gmail.com]
> Sent: Thursday, July 09, 2015 9:02 AM
> To: dev@hama.apache.org
> Subject: BSPClass with parameters
>
> Hi,
> I was recently working on something and need your suggestion. I am building
> a small framework on top of Hama. Using my framework, users will submit a
> job to my framework and my framework will internally run the Hama job. Here
> is a sample code of what user might submit to my framework.
>
> //Extra Hama related Params here like JobName, output Path etc
> IFunction f = new MasterFunction(<inputPath>, <extra params>);
> IFunction g = new SlaveFunction(<inputPath>, <extra params>);
> ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem here
> admm.solve();
>
> Here ExchangeADMMSolver will be a BSP class (this is what I am hoping to
> acheive) and *"solve" *method will internally create a HamaJob and will
> submit it to Hama.
>
> I am a little confused here that how will I pass all the parameters to the
> BSP class (e.g f,g) ? because in Hama if I want to set the bsp class I do
> the following
>
> HamaJob. setBspClass(ExchangeADMMSolver.class);
>
> So, Instead of this I am looking for something like
>
> HamaJob.setBspObject(admm);
>
> I might need to override some Hama classes but before doing that I need
> some suggestions that what can be the best solution.
>
> Regards,
> Behroz Sikander
>
>
>

RE: BSPClass with parameters

Posted by "Edward J. Yoon" <ed...@samsung.com>.
Hi Behroz,

You should specify the job parameters using BSPJob's get/set methods like 
below:

BSPJob admm = new BSPJob();

admm.set("param1", "value");
admm.setBspClass(ExchangeADMMSolver.class);

Then,

public class ExchangeADMMSolver extends BSP {

String param1;

@Override
    public void setup(BSPPeer peer) {
      this.param1 = peer.getConfiguration().get("param1");
   }

}

Thanks.

--
Best Regards, Edward J. Yoon

-----Original Message-----
From: Behroz Sikander [mailto:behroz89@gmail.com]
Sent: Thursday, July 09, 2015 9:02 AM
To: dev@hama.apache.org
Subject: BSPClass with parameters

Hi,
I was recently working on something and need your suggestion. I am building
a small framework on top of Hama. Using my framework, users will submit a
job to my framework and my framework will internally run the Hama job. Here
is a sample code of what user might submit to my framework.

//Extra Hama related Params here like JobName, output Path etc
IFunction f = new MasterFunction(<inputPath>, <extra params>);
IFunction g = new SlaveFunction(<inputPath>, <extra params>);
ExchangeADMMSolver admm = new ExchangeADMMSolver(f, g); //Problem here
admm.solve();

Here ExchangeADMMSolver will be a BSP class (this is what I am hoping to
acheive) and *"solve" *method will internally create a HamaJob and will
submit it to Hama.

I am a little confused here that how will I pass all the parameters to the
BSP class (e.g f,g) ? because in Hama if I want to set the bsp class I do
the following

HamaJob. setBspClass(ExchangeADMMSolver.class);

So, Instead of this I am looking for something like

HamaJob.setBspObject(admm);

I might need to override some Hama classes but before doing that I need
some suggestions that what can be the best solution.

Regards,
Behroz Sikander