You can use the TimelineV2Client
API to publish application-specific
data to Timeline Service 2.0. For your applications, you must define a
TimelineEntity
object and publish the events to the Timeline Service
2.0 using the TimelineV2Client
API.
The YARN applications that write to Timeline Service 2.0 must be running on the
cluster.
-
Create and start the timeline client.
You must specify the Application ID to write to Timeline Service 2.0.
Following is an example for defining a timeline client:
// Create and start the Timeline client v.2
TimelineV2Client timelineClient =
TimelineV2Client.createTimelineClient(appId);
timelineClient.init(conf);
timelineClient.start();
try {
TimelineEntity myEntity = new TimelineEntity();
myEntity.setType("MY_APPLICATION");
myEntity.setId("MyApp1");
// Compose other entity info
// Blocking write
timelineClient.putEntities(myEntity);
TimelineEntity myEntity2 = new TimelineEntity();
// Compose other info
// Non-blocking write
timelineClient.putEntitiesAsync(myEntity2);
} catch (IOException | YarnException e) {
// Handle the exception
} finally {
// Stop the Timeline client
timelineClient.stop();
}
-
Set the timeline collector information.
You can either use amRMClient
and register the timeline
client or set the information explicitly in the timeline client.
amRMClient.registerTimelineV2Client(timelineClient);
timelineClient.setTimelineCollectorInfo(response.getCollectorInfo());