AbstractEventHandler(NotificationEvent event) { this.event = event; try { deserializer = MessageFactory.getInstance(event.getMessageFormat()).getDeserializer(); } catch (Exception e) { String message = "could not create appropriate messageFactory for format " + event.getMessageFormat(); LOG.error(message, e); throw new IllegalStateException(message, e); } eventMessage = eventMessage(event.getMessage()); eventMessageAsJSON = eventMessageAsJSON(eventMessage); }
@Override public void handle(Context withinContext) throws Exception { // we specifically use the the message string from the original event since we dont know what type of message // to convert this message to, this handler should not be called since with different message formats we need // the ability to convert messages to a given message type. LOG.info("Dummy processing#{} message : {}", fromEventId(), event.getMessage()); DumpMetaData dmd = withinContext.createDmd(this); dmd.setPayload(event.getMessage()); dmd.write(); }
public HCatNotificationEvent(NotificationEvent event) { eventId = event.getEventId(); eventTime = event.getEventTime(); eventType = event.getEventType(); dbName = event.getDbName(); tableName = event.getTableName(); message = event.getMessage(); }
public Object getFieldValue(_Fields field) { switch (field) { case EVENT_ID: return getEventId(); case EVENT_TIME: return getEventTime(); case EVENT_TYPE: return getEventType(); case DB_NAME: return getDbName(); case TABLE_NAME: return getTableName(); case MESSAGE: return getMessage(); case MESSAGE_FORMAT: return getMessageFormat(); case CAT_NAME: return getCatName(); } throw new IllegalStateException(); }
/** * Process this notification by adding it to metastore DB. * * @param event NotificationEvent is the object written to the metastore DB. * @param listenerEvent ListenerEvent (from which NotificationEvent was based) used only to set the * DB_NOTIFICATION_EVENT_ID_KEY_NAME for future reference by other listeners. */ private void process(NotificationEvent event, ListenerEvent listenerEvent) throws MetaException { event.setMessageFormat(msgEncoder.getMessageFormat()); LOG.debug("DbNotificationListener: Processing : {}:{}", event.getEventId(), event.getMessage()); HMSHandler.getMSForConf(conf).addNotificationEvent(event); // Set the DB_NOTIFICATION_EVENT_ID for future reference by other listeners. if (event.isSetEventId()) { listenerEvent.putParameter( MetaStoreEventListenerConstants.DB_NOTIFICATION_EVENT_ID_KEY_NAME, Long.toString(event.getEventId())); } }
private void addNotificationLog(NotificationEvent event, ListenerEvent listenerEvent, Connection dbConn, SQLGenerator sqlGenerator) throws MetaException, SQLException { LOG.debug("DbNotificationListener: adding notification log for : {}", event.getMessage()); if ((dbConn == null) || (sqlGenerator == null)) { LOG.info("connection or sql generator is not set so executing sql via DN"); params.add(event.getMessage());
private void addWriteNotificationLog(NotificationEvent event, AcidWriteEvent acidWriteEvent, Connection dbConn, SQLGenerator sqlGenerator, AcidWriteMessage msg) throws MetaException, SQLException { LOG.debug("DbNotificationListener: adding write notification log for : {}", event.getMessage()); assert ((dbConn != null) && (sqlGenerator != null));
private MNotificationLog translateThriftToDb(NotificationEvent entry) { MNotificationLog dbEntry = new MNotificationLog(); dbEntry.setEventId(entry.getEventId()); dbEntry.setEventTime(entry.getEventTime()); dbEntry.setEventType(entry.getEventType()); dbEntry.setCatalogName(entry.isSetCatName() ? entry.getCatName() : getDefaultCatalog(conf)); dbEntry.setDbName(entry.getDbName()); dbEntry.setTableName(entry.getTableName()); dbEntry.setMessage(entry.getMessage()); dbEntry.setMessageFormat(entry.getMessageFormat()); return dbEntry; }
switch (ev.getEventType()){ case MessageFactory.CREATE_TABLE_EVENT : { CreateTableMessage ctm = md.getCreateTableMessage(ev.getMessage()); LOG.info("Processing#{} CREATE_TABLE message : {}", ev.getEventId(), ev.getMessage()); org.apache.hadoop.hive.metastore.api.Table tobj = ctm.getTableObj(); AddPartitionMessage apm = md.getAddPartitionMessage(ev.getMessage()); LOG.info("Processing#{} ADD_PARTITION message : {}", ev.getEventId(), ev.getMessage()); Iterable<org.apache.hadoop.hive.metastore.api.Partition> ptns = apm.getPartitionObjs(); if ((ptns == null) || (!ptns.iterator().hasNext())) { LOG.info("Processing#{} DROP_TABLE message : {}", ev.getEventId(), ev.getMessage()); DumpMetaData dmd = new DumpMetaData(evRoot, DUMPTYPE.EVENT_DROP_TABLE, evid, evid, cmRoot); dmd.setPayload(ev.getMessage()); dmd.write(); break; LOG.info("Processing#{} DROP_PARTITION message : {}", ev.getEventId(), ev.getMessage()); DumpMetaData dmd = new DumpMetaData(evRoot, DUMPTYPE.EVENT_DROP_PARTITION, evid, evid, cmRoot); dmd.setPayload(ev.getMessage()); dmd.write(); break; LOG.info("Processing#{} ALTER_TABLE message : {}", ev.getEventId(), ev.getMessage()); AlterTableMessage atm = md.getAlterTableMessage(ev.getMessage()); org.apache.hadoop.hive.metastore.api.Table tobjBefore = atm.getTableObjBefore(); org.apache.hadoop.hive.metastore.api.Table tobjAfter = atm.getTableObjAfter(); dmd.setPayload(ev.getMessage());
String message = event.getMessage(); LOG.debug("Event to process " + event); MessageDeserializer deserializer = MessageFactory.getInstance(event.getMessageFormat()).getDeserializer();
public static ObjectNode getJsonTree(NotificationEvent event) throws Exception { return getJsonTree(event.getMessage()); }
private MNotificationLog translateThriftToDb(NotificationEvent entry) { MNotificationLog dbEntry = new MNotificationLog(); dbEntry.setEventId(entry.getEventId()); dbEntry.setEventTime(entry.getEventTime()); dbEntry.setEventType(entry.getEventType()); dbEntry.setCatalogName(entry.isSetCatName() ? entry.getCatName() : getDefaultCatalog(conf)); dbEntry.setDbName(entry.getDbName()); dbEntry.setTableName(entry.getTableName()); dbEntry.setMessage(entry.getMessage()); dbEntry.setMessageFormat(entry.getMessageFormat()); return dbEntry; }
public static String sha1(NotificationEvent event) { StringBuilder sb = new StringBuilder(); sb.append(event.getEventId()); sb.append(event.getEventTime()); sb.append(event.getEventType()); sb.append(event.getDbName()); sb.append(event.getTableName()); sb.append(event.getMessage()); return DigestUtils.shaHex(sb.toString()); } }
public Object getFieldValue(_Fields field) { switch (field) { case EVENT_ID: return Long.valueOf(getEventId()); case EVENT_TIME: return Integer.valueOf(getEventTime()); case EVENT_TYPE: return getEventType(); case DB_NAME: return getDbName(); case TABLE_NAME: return getTableName(); case MESSAGE: return getMessage(); } throw new IllegalStateException(); }
public Object getFieldValue(_Fields field) { switch (field) { case EVENT_ID: return Long.valueOf(getEventId()); case EVENT_TIME: return Integer.valueOf(getEventTime()); case EVENT_TYPE: return getEventType(); case DB_NAME: return getDbName(); case TABLE_NAME: return getTableName(); case MESSAGE: return getMessage(); } throw new IllegalStateException(); }
public HCatNotificationEvent(NotificationEvent event) { eventId = event.getEventId(); eventTime = event.getEventTime(); eventType = event.getEventType(); dbName = event.getDbName(); tableName = event.getTableName(); message = event.getMessage(); }
public HCatNotificationEvent(NotificationEvent event) { eventId = event.getEventId(); eventTime = event.getEventTime(); eventType = event.getEventType(); dbName = event.getDbName(); tableName = event.getTableName(); message = event.getMessage(); }
public HCatNotificationEvent(NotificationEvent event) { eventId = event.getEventId(); eventTime = event.getEventTime(); eventType = event.getEventType(); dbName = event.getDbName(); tableName = event.getTableName(); message = event.getMessage(); }
private MNotificationLog translateThriftToDb(NotificationEvent entry) { MNotificationLog dbEntry = new MNotificationLog(); dbEntry.setEventId(entry.getEventId()); dbEntry.setEventTime(entry.getEventTime()); dbEntry.setEventType(entry.getEventType()); dbEntry.setDbName(entry.getDbName()); dbEntry.setTableName(entry.getTableName()); dbEntry.setMessage(entry.getMessage()); return dbEntry; }
private MNotificationLog translateThriftToDb(NotificationEvent entry) { MNotificationLog dbEntry = new MNotificationLog(); dbEntry.setEventId(entry.getEventId()); dbEntry.setEventTime(entry.getEventTime()); dbEntry.setEventType(entry.getEventType()); dbEntry.setDbName(entry.getDbName()); dbEntry.setTableName(entry.getTableName()); dbEntry.setMessage(entry.getMessage()); return dbEntry; }