public void addIsRelatedToEntity(String type, String id) { if (real == null) { Set<String> ids = isRelatedToEntities.get(type); if (ids == null) { ids = new HashSet<>(); isRelatedToEntities.put(type, ids); } ids.add(id); } else { real.addIsRelatedToEntity(type, id); } }
/** * Helper method for reading relationship. * * @param <T> Describes the type of column prefix. * @param entity entity to fill. * @param result result from HBase. * @param prefix column prefix. * @param isRelatedTo if true, means relationship is to be added to * isRelatedTo, otherwise its added to relatesTo. * @throws IOException if any problem is encountered while reading result. */ protected <T extends BaseTable<T>> void readRelationship( TimelineEntity entity, Result result, ColumnPrefix<T> prefix, boolean isRelatedTo) throws IOException { // isRelatedTo and relatesTo are of type Map<String, Set<String>> Map<String, Object> columns = ColumnRWHelper.readResults( result, prefix, stringKeyConverter); for (Map.Entry<String, Object> column : columns.entrySet()) { for (String id : Separator.VALUES.splitEncoded(column.getValue() .toString())) { if (isRelatedTo) { entity.addIsRelatedToEntity(column.getKey(), id); } else { entity.addRelatesToEntity(column.getKey(), id); } } } }
private org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity createTaskAttemptEntity(HistoryEvent event, long timestamp, String taskAttemptId, String entityType, String relatedTaskEntity, String taskId, boolean setCreatedTime, long taskAttemptIdPrefix) { org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity entity = createBaseEntity(event, timestamp, entityType, setCreatedTime); entity.setId(taskAttemptId); entity.addIsRelatedToEntity(relatedTaskEntity, taskId); entity.setIdPrefix(taskAttemptIdPrefix); return entity; }
private org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity createTaskEntity(HistoryEvent event, long timestamp, String taskId, String entityType, String relatedJobEntity, JobId jobId, boolean setCreatedTime, long taskIdPrefix) { org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity entity = createBaseEntity(event, timestamp, entityType, setCreatedTime); entity.setId(taskId); if (event.getEventType() == EventType.TASK_STARTED) { entity.addInfo("TASK_TYPE", ((TaskStartedEvent)event).getTaskType().toString()); } entity.addIsRelatedToEntity(relatedJobEntity, jobId.toString()); entity.setIdPrefix(taskIdPrefix); return entity; }
entity.addRelatesToEntity("test type 2", "test id 2"); entity.addRelatesToEntity("test type 3", "test id 3"); entity.addIsRelatedToEntity("test type 4", "test id 4"); entity.addIsRelatedToEntity("test type 5", "test id 5"); LOG.info(TimelineUtils.dumpTimelineRecordtoJSON(entity, true));
entity11.setConfigs(configs); entity11.addRelatesToEntity("flow", "flow1"); entity11.addIsRelatedToEntity("type1", "tid1_1"); writeEntityFile(entity11, appDir); TimelineEntity entity12 = new TimelineEntity(); metrics.add(metric3); entity12.setMetrics(metrics); entity12.addIsRelatedToEntity("type1", "tid1_2"); entity12.addIsRelatedToEntity("type2", "tid2_1`"); TimelineEvent event15 = new TimelineEvent(); event15.setId("event_5"); metrics3.add(metric32); entity3.setMetrics(metrics3); entity3.addIsRelatedToEntity("type1", "tid1_2"); writeEntityFile(entity3, appDir);