Apache Twill 是一个 Apache Hadoop YARN 的抽象层,减少了开发分布式应用程序的复杂度,允许开发者把精力放在应用逻辑上。Apache Twill 可以让你向使用线程一样来使用 YARN 的分布式编程模型。
示例代码:
public class EchoServer implements TwillRunnable { private static Logger LOG = LoggerFactory.getLogger(EchoServer.class); private final ServerSocket serverSocket; private final int port; public EchoServer() { ... } @Override public void run() { while ( isRunning() ) { Socket socket = serverSocket.accept(); ... } } }
运行:
TwillRunnerService runnerService = new YarnTwillRunnerService( new YarnConfiguration(), zkConnectStr); runnerService.startAndWait(); TwillController controller = runnerService.prepare(new EchoServer()) .addLogHandler(new PrinterLogHandler(new PrintWriter(System.out))) .start(); controller.addListener(new ListenerAdapter() { @Override public void running() { LOG.info('Echo Server Started'); } } controller.stop().get();