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