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 <behro...@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.y...@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:behro...@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