title: “Web Client”

Flink provides a web interface to upload jobs, inspect their execution plans, and execute them. The interface is a great tool to showcase programs, debug execution plans, or demonstrate the system as a whole.

  • This will be replaced by the TOC {:toc}

Starting, Stopping, and Configuring the Web Interface

Start the web interface by executing:

./bin/start-webclient.sh

and stop it by calling:

./bin/stop-webclient.sh

The web interface runs on port 8080 by default. To specify a custom port set the webclient.port property in the ./conf/flink.yaml configuration file. Jobs are submitted to the JobManager specified by jobmanager.rpc.address and jobmanager.rpc.port. Please consult the [configuration]({{ site.baseurl }}/setup/config.html#webclient) page for details and further configuration options.

Using the Web Interface

The web interface provides two views:

  1. The job view to upload, preview, and submit Flink programs.
  2. The plan view to analyze the optimized execution plans of Flink programs.

Job View

The web interface can also handle multiple Flink jobs within a single jar file. To use this feature, package all required class files of all jobs into a single jar and specify the entry classes for each job as comma-separated-values in program-class argument within the jar‘s manifest file. The job view displays each entry class and you can pick any of them to preview the plan and/or submit the job to the JobManager. In case the jar’s manifest file does not specify any entry class, you can specify it in the options field as:

-c <assemblerClass>

It is also possible to set the default parallelism for the execution in options field as:

-p <dop>

Furthermore, for each entry class implementing ProgramDescription interface, the provided description is shown as tooltip for the job (see {% gh_link flink-examples/flink-java-examples/src/main/java/org/apache/flink/examples/java/wordcount/WordCountMeta.java “WordCountMeta example” %}).

Plan View

	To submit the job for execution, click again on the <em>"Run Job"</em> button in the bottom right.
</div>
<div class="col-md-8">
	<a data-lightbox="compiler" href="{{ site.baseurl }}/page/img/webclient_plan_view.png" data-lightbox="example-1"><img class="img-responsive" src="{{ site.baseurl }}/page/img/webclient_plan_view.png" /></a>
</div>