Search in sources :

Example 16 with ExecuteResult

use of org.apache.zeppelin.client.ExecuteResult in project zeppelin by apache.

the class FlinkAdvancedExample method main.

public static void main(String[] args) {
    ZSession session = null;
    try {
        ClientConfig clientConfig = new ClientConfig("http://localhost:8080");
        Map<String, String> intpProperties = new HashMap<>();
        session = ZSession.builder().setClientConfig(clientConfig).setInterpreter("flink").setIntpProperties(intpProperties).build();
        // if MessageHandler is specified, then websocket is enabled.
        // you can get continuous output from Zeppelin via websocket.
        session.start(new SimpleMessageHandler());
        System.out.println("Flink Web UI: " + session.getWeburl());
        String code = "benv.fromElements(1,2,3,4,5,6,7,8,9,10).map(e=> {Thread.sleep(1000); e}).print()";
        System.out.println("Submit code: " + code);
        // use submit to run flink code in non-blocking way.
        ExecuteResult result = session.submit(code);
        System.out.println("Job status: " + result.getStatus());
        while (!result.getStatus().isCompleted()) {
            result = session.queryStatement(result.getStatementId());
            System.out.println("Job status: " + result.getStatus() + ", progress: " + result.getProgress());
            Thread.sleep(1000);
        }
        System.out.println("Job status: " + result.getStatus() + ", data: " + result.getResults().get(0).getData());
        System.out.println("-----------------------------------------------------------------------------");
        System.out.println("Submit code: " + code);
        result = session.submit("benv.fromElements(1,2,3,4,5,6,7,8,9,10).map(e=> {Thread.sleep(1000); e}).print()");
        System.out.println("Job status: " + result.getStatus());
        result = session.waitUntilFinished(result.getStatementId());
        System.out.println("Job status: " + result.getStatus() + ", data: " + result.getResults().get(0).getData());
        System.out.println("-----------------------------------------------------------------------------");
        code = "for(i <- 1 to 10) {\n" + "   Thread.sleep(1000)\n" + "   println(i)\n" + "}";
        System.out.println("Submit code: " + code);
        result = session.execute(code);
        System.out.println("Job status: " + result.getStatus() + ", data: " + result.getResults().get(0).getData());
        System.out.println("-----------------------------------------------------------------------------");
        String initCode = IOUtils.toString(FlinkAdvancedExample.class.getResource("/init_stream.scala"));
        result = session.execute(initCode);
        System.out.println("Job status: " + result.getStatus() + ", data: " + result.getResults().get(0).getData());
        // run flink ssql
        Map<String, String> localProperties = new HashMap<>();
        localProperties.put("type", "update");
        result = session.submit("ssql", localProperties, "select url, count(1) as pv from log group by url");
        session.waitUntilFinished(result.getStatementId());
        result = session.submit("ssql", localProperties, "select url, count(1) as pv from log group by url");
        session.waitUntilRunning(result.getStatementId());
        Thread.sleep(10 * 1000);
        System.out.println("Try to cancel statement: " + result.getStatementId());
        session.cancel(result.getStatementId());
        session.waitUntilFinished(result.getStatementId());
        System.out.println("Job status: " + result.getStatus());
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (session != null) {
            try {
                session.stop();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
Also used : HashMap(java.util.HashMap) ClientConfig(org.apache.zeppelin.client.ClientConfig) ExecuteResult(org.apache.zeppelin.client.ExecuteResult) ZSession(org.apache.zeppelin.client.ZSession) SimpleMessageHandler(org.apache.zeppelin.client.websocket.SimpleMessageHandler)

Example 17 with ExecuteResult

use of org.apache.zeppelin.client.ExecuteResult in project zeppelin by apache.

the class ZSessionIntegrationTest method testZSession_Shell_Submit.

@Test
public void testZSession_Shell_Submit() throws Exception {
    ZSession session = ZSession.builder().setClientConfig(clientConfig).setInterpreter("sh").build();
    try {
        session.start();
        assertNull(session.getWeburl());
        assertNotNull(session.getNoteId());
        notebook.processNote(session.getNoteId(), note -> {
            assertEquals(2, note.getParagraphCount());
            assertTrue(note.getParagraph(0).getText(), note.getParagraph(0).getText().startsWith("%sh.conf"));
            return null;
        });
        ExecuteResult result = session.submit("sleep 10\npwd");
        assertFalse("Status is: " + result.getStatus().toString(), result.getStatus().isCompleted());
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        result = session.submit("invalid_command");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(Status.ERROR, result.getStatus());
        assertEquals(2, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        assertTrue(result.getResults().get(0).getData(), result.getResults().get(0).getData().contains("command not found"));
        assertEquals("TEXT", result.getResults().get(1).getType());
        assertTrue(result.getResults().get(1).getData(), result.getResults().get(1).getData().contains("ExitValue"));
        notebook.processNote(session.getNoteId(), note -> {
            assertEquals(4, note.getParagraphCount());
            assertEquals("%sh invalid_command", note.getParagraph(3).getText());
            return null;
        });
    } finally {
        session.stop();
    }
}
Also used : ExecuteResult(org.apache.zeppelin.client.ExecuteResult) ZSession(org.apache.zeppelin.client.ZSession) Test(org.junit.Test)

Example 18 with ExecuteResult

use of org.apache.zeppelin.client.ExecuteResult in project zeppelin by apache.

the class ZSessionIntegrationTest method testZSession_Flink_Submit.

@Test
public void testZSession_Flink_Submit() throws Exception {
    Map<String, String> intpProperties = new HashMap<>();
    intpProperties.put("FLINK_HOME", flinkHome);
    ZSession session = ZSession.builder().setClientConfig(clientConfig).setInterpreter("flink").setIntpProperties(intpProperties).build();
    try {
        session.start(new SimpleMessageHandler());
        assertNotNull(session.getWeburl());
        assertNotNull(session.getNoteId());
        // scala
        ExecuteResult result = session.submit("val data = benv.fromElements(1, 2, 3)\ndata.collect()");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        assertTrue(result.getResults().get(0).getData(), result.getResults().get(0).getData().contains("1, 2, 3"));
        // sql
        result = session.submit(getInitStreamScript(200));
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        Map<String, String> localProperties = new HashMap<>();
        localProperties.put("type", "update");
        result = session.submit("ssql", localProperties, "select url, count(1) as pv from log group by url");
        assertFalse("Status is: " + result.getStatus().toString(), result.getStatus().isCompleted());
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        // cancel
        result = session.submit("ssql", localProperties, "select url, count(1) as pv from log group by url");
        assertFalse("Status is: " + result.getStatus().toString(), result.getStatus().isCompleted());
        result = session.waitUntilRunning(result.getStatementId());
        session.cancel(result.getStatementId());
        assertEquals(result.toString(), Status.RUNNING, result.getStatus());
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.ABORT, result.getStatus());
    } finally {
        session.stop();
    }
}
Also used : HashMap(java.util.HashMap) ExecuteResult(org.apache.zeppelin.client.ExecuteResult) ZSession(org.apache.zeppelin.client.ZSession) SimpleMessageHandler(org.apache.zeppelin.client.websocket.SimpleMessageHandler) Test(org.junit.Test)

Aggregations

ExecuteResult (org.apache.zeppelin.client.ExecuteResult)18 ZSession (org.apache.zeppelin.client.ZSession)18 HashMap (java.util.HashMap)16 ClientConfig (org.apache.zeppelin.client.ClientConfig)9 SimpleMessageHandler (org.apache.zeppelin.client.websocket.SimpleMessageHandler)8 Test (org.junit.Test)7 CompositeMessageHandler (org.apache.zeppelin.client.websocket.CompositeMessageHandler)1