Creating a Flink Jar Job
This section describes how to create a Flink Jar job. You can perform secondary development based on Flink APIs, build your own JAR file, and submit the JAR file to DLI queues. DLI is fully compatible with open-source community APIs. To create a custom Flink job, you need to compile and build application JAR files. You must have a certain understanding of Flink secondary development and have high requirements related to stream computing complexity.
Prerequisites
- Ensure that a dedicated queue has been created.
- When creating a Flink Jar job to access other external data sources, such as OpenTSDB, HBase, Kafka, DWS, RDS, CSS, CloudTable, DCS Redis, and DDS MongoDB, you need to create a cross-source connection to connect the job running queue to the external data source.
- For details about the external data sources that can be accessed by Flink jobs, see Datasource Connection and Cross-Source Analysis.
- For details about how to create a datasource connection, see Enhanced Datasource Connections.
On the Queue Management page, locate the queue you have created, and choose More > Test Address Connectivity in the Operation column to check whether the network connection between the queue and the data source is normal. For details, see Testing Address Connectivity.
- When running a Flink Jar job, you need to build the secondary development application code into a Jar package and upload the JAR package to the created OBS bucket. Choose Data Management > Package Management to create a package. For details, see Creating a Package.
DLI does not support the download function. If you need to modify the uploaded data file, please edit the local file and upload it again.
- Flink dependencies have been built in the DLI server and security hardening has been performed based on the open-source community version. To avoid dependency package compatibility issues or log output and dump issues, be careful to exclude the following files when packaging:
- Built-in dependencies (or set the package dependency scope to provided in Maven or SBT)
- Log configuration files (example, log4j.properties/logback.xml)
- JAR package for log output implementation (example, log4j).
Creating a Flink Jar Job
- In the left navigation pane of the DLI management console, choose Flink Jobs page is displayed. > . The
- In the upper right corner of the Flink Jobs page, click Create Job.
- Specify job parameters.
Table 1 Job configuration information Parameter
Description
Type
Select Flink Jar.
Name
Name of a job. Enter 1 to 57 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed.
NOTE:The job name must be globally unique.
Description
Description of a job. It can be up to 512 characters long.
- Click OK to enter the page for job information editing.
- Select a queue. Flink Jar jobs can run only on general queues.
- A Flink Jar job can run only on a pre-created dedicated queue.
- If no dedicated queue is available in the Queue drop-down list, create a dedicated queue and bind it to the current user.
- Configure Flink Jar job parameters.
Table 2 Parameter description Name
Description
Application
User-defined package. Before selecting a JAR file to be inserted, upload the corresponding JAR file to the OBS bucket and choose Creating a Package. For details about the built-in dependencies, see Flink 1.7.2 Dependencies and Flink 1.10 Dependencies.
to create a package. For details, seeMain Class
The name of the JAR package to be loaded, for example, KafkaMessageStreaming.
- Default: Specified based on the Manifest file in the JAR package.
- Manually assign: You must enter the class name and confirm the class arguments (separate arguments with spaces).
NOTE:When a class belongs to a package, the main class path must contain the complete package path, for example, packagePath.KafkaMessageStreaming.
Class Arguments
List of arguments of a specified class. The arguments are separated by spaces.
Flink parameters support replacement of non-sensitive global variables. For example, if you add the global variable windowsize in Global Configuration > Global Variables, you can add the -windowsSize {{windowsize}} parameter for the Flink Jar job.
JAR Package Dependencies
Select a user-defined package dependency. The dependent program packages are stored in the classpath directory of the cluster.
Before selecting a JAR file to be inserted, upload the corresponding JAR file to the OBS bucket and choose Creating a Package.
to create a package. Select JAR as the package type. For details, seeFor details about the built-in dependencies, see Flink 1.7.2 Dependencies and Flink 1.10 Dependencies.
Other Dependencies
User-defined dependency files. Other dependency files need to be referenced in the code.
Before selecting a dependency file, upload the file to the OBS bucket and choose Creating a Package.
to create a package. The package type is not limited. For details, seeYou can add the following command to the application to access the corresponding dependency file. In the command, fileName indicates the name of the file to be accessed, and ClassName indicates the name of the class that needs to access the file.
ClassName.class.getClassLoader().getResource("userData/fileName")
Flink Version
Before selecting a Flink version, you need to select the queue to which the Flink version belongs. Currently, the following versions are supported: 1.10.
Runtime Configuration
User-defined optimization parameters. The parameter format is key=value.
Flink optimization parameters support replacement non-sensitive global variable. For example, if you create global variable phase in Global Configuration > Global Variables, optimization parameter table.optimizer.agg-phase.strategy={{phase}} can be added to the Flink Jar job.
- Configure job parameters.
Table 3 Parameter description Name
Description
CUs
One CU has one vCPU and 4-GB memory. The number of CUs ranges from 2 to 400.
Job Manager CUs
Set the number of CUs on a management unit. The value ranges from 1 to 4. The default value is 1.
Parallelism
Maximum number of parallel operators in a job.
NOTE:- The value must be less than or equal to four times the number of compute units (CUs minus the number of job manager CUs).
- You are advised to set this parameter to a value greater than that configured in the code. Otherwise, job submission may fail.
Task Manager Configuration
Whether to set Task Manager resource parameters
If this option is selected, you need to set the following parameters:
- CU(s) per TM: Number of resources occupied by each Task Manager.
- Slot(s) per TM: Number of slots contained in each Task Manager.
Save Job Log
Whether to save the job running logs to the OBS bucket.
CAUTION:You are advised to select this parameter. Otherwise, no run log is generated after the job is executed. If the job is abnormal, the run log cannot be obtained for fault locating.
If this option is selected, you need to set the following parameters:
OBS Bucket: Select an OBS bucket to store job logs. If the selected OBS bucket is not authorized, click Authorize.
Alarm Generation upon Job Exception
Whether to report job exceptions, for example, abnormal job running or exceptions due to an insufficient balance, to users via SMS or email
If this option is selected, you need to set the following parameters:
SMN Topic
Select a user-defined SMN topic. For details about how to customize SMN topics, see Creating a Topic in the Simple Message Notification User Guide.
Auto Restart upon Exception
Whether to enable automatic restart. If this function is enabled, any job that has become abnormal will be automatically restarted.
If this option is selected, you need to set the following parameters:
- Max. Retry Attempts: maximum number of retry times upon an exception. The unit is Times/hour.
- Unlimited: The number of retries is unlimited.
- Limited: The number of retries is user-defined.
- Restore Job from Checkpoint: Restore the job from the saved checkpoint.
If you select this parameter, you also need to set Checkpoint Path.
Checkpoint Path: Select the checkpoint saving path. The checkpoint path must be the same as that you set in the application package. Note that the checkpoint path for each job must be unique. Otherwise, the checkpoint cannot be obtained.
- Click Save on the upper right of the page.
- Click Start on the upper right side of the page. On the displayed Start Flink Job page, confirm the job specifications, and click Start Now to start the job.
After the job is started, the system automatically switches to the
page, and the created job is displayed in the job list. You can view the job status in the column. After a job is successfully submitted, the job status will change from to . After the execution is complete, the message Completed is displayed.If the job status is
or , the job submission failed or the job did not execute successfully. In this case, you can move the cursor over the status icon in the column of the job list to view the error details. You can click to copy these details. After handling the fault based on the provided information, resubmit the job.Other available buttons are as follows:
Save As: Save the created job as a new job.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot