*>>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 <[email protected]> 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 <[email protected]> > 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 <[email protected]> > > 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:[email protected]] > >> Sent: Thursday, July 09, 2015 9:02 AM > >> To: [email protected] > >> 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 >
