List of usage examples for org.apache.zookeeper WatchedEvent getPath
public String getPath()
From source file:org.apache.flume.agent.SmartAvroSource.java
License:Apache License
public void etlAndMonitorData(WatchedEvent event, String path) { // ??/*ww w . j a v a 2 s . c o m*/ String ip = congZkUtils.readData(path); String tempPath = event.getPath() + "/" + ip; if ("".equals(ip)) { return; } String nodeData = congZkUtils.readData(tempPath); String zhuPath = path + "/" + hostname + "/" + systemProperties.getIp_() + "/" + ip; // ?zk zhuZkUtils.writeData(path, ip); zhuZkUtils.writeData(zhuPath, nodeData); logger.info("??,:" + zhuPath); // ? monitorLocalNodeData(path + "/" + systemProperties.getIp_(), 0); if (path.equals(FlumeConstants.AGENT_LOG_ROOT)) { monitorLocalNodeData(tempPath, 1); } // monitorLocalNodeData(path + "/" + systemProperties.getIp_(), congZk, 1); // monitorSenderNodeData(zhuPath, zhuZk); }
From source file:org.apache.flume.node.MyWatcher.java
License:Apache License
public void process(WatchedEvent event) { try {//from ww w . j a va 2s . c o m if ((event.getPath() != null) && (event.getType() != Watcher.Event.EventType.None)) ZooKeeperUtils.keeper.exists(this.path, new MyWatcher(this.path)); } catch (Exception e) { logger.error("watcher:", e); } logger.info("zookeeper node change :" + event.getPath() + "-" + event.getType().toString()); if (StringUtils.isEmpty(this.path)) return; if ((this.path.equals(event.getPath())) && (event.getType() == Watcher.Event.EventType.NodeDeleted)) System.exit(0); }
From source file:org.apache.giraph.bsp.BspService.java
License:Apache License
@Override public final void process(WatchedEvent event) { // 1. Process all shared events // 2. Process specific derived class events if (LOG.isDebugEnabled()) { LOG.debug("process: Got a new event, path = " + event.getPath() + ", type = " + event.getType() + ", state = " + event.getState()); }/*w w w . j a v a 2 s. c o m*/ if ((event.getPath() == null) && (event.getType() == EventType.None)) { if (event.getState() == KeeperState.Disconnected) { // Watches may not be triggered for some time, so signal all BspEvents for (BspEvent bspEvent : registeredBspEvents) { bspEvent.signal(); } LOG.warn("process: Disconnected from ZooKeeper (will automatically " + "try to recover) " + event); } else if (event.getState() == KeeperState.SyncConnected) { if (LOG.isInfoEnabled()) { LOG.info("process: Asynchronous connection complete."); } connectedEvent.signal(); } else { LOG.warn("process: Got unknown null path event " + event); } return; } boolean eventProcessed = false; if (event.getPath().startsWith(masterJobStatePath)) { // This will cause all becomeMaster() MasterThreads to notice the // change in job state and quit trying to become the master. masterElectionChildrenChanged.signal(); eventProcessed = true; } else if ((event.getPath().contains(WORKER_HEALTHY_DIR) || event.getPath().contains(WORKER_UNHEALTHY_DIR)) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: workerHealthRegistrationChanged " + "(worker health reported - healthy/unhealthy )"); } workerHealthRegistrationChanged.signal(); eventProcessed = true; } else if (processMappingEvent(event) || processVertexEvent(event) || processEdgeEvent(event)) { return; } else if (event.getPath().contains(ADDRESSES_AND_PARTITIONS_DIR) && event.getType() == EventType.NodeCreated) { if (LOG.isInfoEnabled()) { LOG.info("process: partitionAssignmentsReadyChanged " + "(partitions are assigned)"); } addressesAndPartitionsReadyChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(SUPERSTEP_FINISHED_NODE) && event.getType() == EventType.NodeCreated) { if (LOG.isInfoEnabled()) { LOG.info("process: superstepFinished signaled"); } superstepFinished.signal(); eventProcessed = true; } else if (event.getPath().endsWith(applicationAttemptsPath) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: applicationAttemptChanged signaled"); } applicationAttemptChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(MASTER_ELECTION_DIR) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: masterElectionChildrenChanged signaled"); } masterElectionChildrenChanged.signal(); eventProcessed = true; } else if (event.getPath().equals(cleanedUpPath) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: cleanedUpChildrenChanged signaled"); } cleanedUpChildrenChanged.signal(); eventProcessed = true; } if (!(processEvent(event)) && (!eventProcessed)) { LOG.warn("process: Unknown and unprocessed event (path=" + event.getPath() + ", type=" + event.getType() + ", state=" + event.getState() + ")"); } }
From source file:org.apache.giraph.bsp.BspService.java
License:Apache License
/** * Process WatchedEvent for Mapping Inputsplits * * @param event watched event/*from w w w. j a v a 2 s .c o m*/ * @return true if event processed */ public final boolean processMappingEvent(WatchedEvent event) { boolean eventProcessed = false; if (event.getPath().equals(mappingInputSplitsPaths.getAllReadyPath()) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: inputSplitsReadyChanged " + "(input splits ready)"); } mappingInputSplitsEvents.getAllReadyChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(MAPPING_INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: mappingInputSplitsStateChanged " + "(made a reservation)"); } mappingInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(MAPPING_INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeDeleted)) { if (LOG.isInfoEnabled()) { LOG.info("process: mappingInputSplitsStateChanged " + "(lost a reservation)"); } mappingInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(MAPPING_INPUT_SPLIT_FINISHED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: mappingInputSplitsStateChanged " + "(finished inputsplit)"); } mappingInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(MAPPING_INPUT_SPLIT_DONE_DIR) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: mappingInputSplitsDoneStateChanged " + "(worker finished sending)"); } mappingInputSplitsEvents.getDoneStateChanged().signal(); eventProcessed = true; } else if (event.getPath().equals(mappingInputSplitsPaths.getAllDonePath()) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: mappingInputSplitsAllDoneChanged " + "(all entries sent from input splits)"); } mappingInputSplitsEvents.getAllDoneChanged().signal(); eventProcessed = true; } return eventProcessed; }
From source file:org.apache.giraph.bsp.BspService.java
License:Apache License
/** * Process WatchedEvent for Vertex Inputsplits * * @param event watched event/*ww w.ja v a 2 s . c o m*/ * @return true if event processed */ public final boolean processVertexEvent(WatchedEvent event) { boolean eventProcessed = false; if (event.getPath().equals(vertexInputSplitsPaths.getAllReadyPath()) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: inputSplitsReadyChanged " + "(input splits ready)"); } vertexInputSplitsEvents.getAllReadyChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(VERTEX_INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: vertexInputSplitsStateChanged " + "(made a reservation)"); } vertexInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(VERTEX_INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeDeleted)) { if (LOG.isInfoEnabled()) { LOG.info("process: vertexInputSplitsStateChanged " + "(lost a reservation)"); } vertexInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(VERTEX_INPUT_SPLIT_FINISHED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: vertexInputSplitsStateChanged " + "(finished inputsplit)"); } vertexInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(VERTEX_INPUT_SPLIT_DONE_DIR) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: vertexInputSplitsDoneStateChanged " + "(worker finished sending)"); } vertexInputSplitsEvents.getDoneStateChanged().signal(); eventProcessed = true; } else if (event.getPath().equals(vertexInputSplitsPaths.getAllDonePath()) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: vertexInputSplitsAllDoneChanged " + "(all vertices sent from input splits)"); } vertexInputSplitsEvents.getAllDoneChanged().signal(); eventProcessed = true; } return eventProcessed; }
From source file:org.apache.giraph.bsp.BspService.java
License:Apache License
/** * Process WatchedEvent for Edge Inputsplits * * @param event watched event//from ww w.j ava 2s . c o m * @return true if event processed */ public final boolean processEdgeEvent(WatchedEvent event) { boolean eventProcessed = false; if (event.getPath().equals(edgeInputSplitsPaths.getAllReadyPath()) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: edgeInputSplitsReadyChanged " + "(input splits ready)"); } edgeInputSplitsEvents.getAllReadyChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(EDGE_INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: edgeInputSplitsStateChanged " + "(made a reservation)"); } edgeInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(EDGE_INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeDeleted)) { if (LOG.isInfoEnabled()) { LOG.info("process: edgeInputSplitsStateChanged " + "(lost a reservation)"); } edgeInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(EDGE_INPUT_SPLIT_FINISHED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: edgeInputSplitsStateChanged " + "(finished inputsplit)"); } edgeInputSplitsEvents.getStateChanged().signal(); eventProcessed = true; } else if (event.getPath().endsWith(EDGE_INPUT_SPLIT_DONE_DIR) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: edgeInputSplitsDoneStateChanged " + "(worker finished sending)"); } edgeInputSplitsEvents.getDoneStateChanged().signal(); eventProcessed = true; } else if (event.getPath().equals(edgeInputSplitsPaths.getAllDonePath()) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: edgeInputSplitsAllDoneChanged " + "(all edges sent from input splits)"); } edgeInputSplitsEvents.getAllDoneChanged().signal(); eventProcessed = true; } return eventProcessed; }
From source file:org.apache.giraph.graph.BspService.java
License:Apache License
@Override public final void process(WatchedEvent event) { // 1. Process all shared events // 2. Process specific derived class events if (LOG.isDebugEnabled()) { LOG.debug("process: Got a new event, path = " + event.getPath() + ", type = " + event.getType() + ", state = " + event.getState()); }// w ww . ja va2s. c o m if ((event.getPath() == null) && (event.getType() == EventType.None)) { if (event.getState() == KeeperState.Disconnected) { // No way to recover from a disconnect event, signal all BspEvents for (BspEvent bspEvent : registeredBspEvents) { bspEvent.signal(); } throw new RuntimeException("process: Disconnected from ZooKeeper, cannot recover - " + event); } else if (event.getState() == KeeperState.SyncConnected) { if (LOG.isInfoEnabled()) { LOG.info("process: Asynchronous connection complete."); } connectedEvent.signal(); } else { LOG.warn("process: Got unknown null path event " + event); } return; } boolean eventProcessed = false; if (event.getPath().startsWith(masterJobStatePath)) { // This will cause all becomeMaster() MasterThreads to notice the // change in job state and quit trying to become the master. masterElectionChildrenChanged.signal(); eventProcessed = true; } else if ((event.getPath().contains(WORKER_HEALTHY_DIR) || event.getPath().contains(WORKER_UNHEALTHY_DIR)) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: workerHealthRegistrationChanged " + "(worker health reported - healthy/unhealthy )"); } workerHealthRegistrationChanged.signal(); eventProcessed = true; } else if (event.getPath().equals(inputSplitsAllReadyPath) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: inputSplitsReadyChanged " + "(input splits ready)"); } inputSplitsAllReadyChanged.signal(); eventProcessed = true; } else if (event.getPath().endsWith(INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: inputSplitsStateChanged " + "(made a reservation)"); } inputSplitsStateChanged.signal(); eventProcessed = true; } else if (event.getPath().endsWith(INPUT_SPLIT_RESERVED_NODE) && (event.getType() == EventType.NodeDeleted)) { if (LOG.isInfoEnabled()) { LOG.info("process: inputSplitsStateChanged " + "(lost a reservation)"); } inputSplitsStateChanged.signal(); eventProcessed = true; } else if (event.getPath().endsWith(INPUT_SPLIT_FINISHED_NODE) && (event.getType() == EventType.NodeCreated)) { if (LOG.isDebugEnabled()) { LOG.debug("process: inputSplitsStateChanged " + "(finished inputsplit)"); } inputSplitsStateChanged.signal(); eventProcessed = true; } else if (event.getPath().endsWith(INPUT_SPLIT_DONE_DIR) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isDebugEnabled()) { LOG.debug("process: inputSplitsDoneStateChanged " + "(worker finished sending)"); } inputSplitsDoneStateChanged.signal(); eventProcessed = true; } else if (event.getPath().equals(inputSplitsAllDonePath) && (event.getType() == EventType.NodeCreated)) { if (LOG.isInfoEnabled()) { LOG.info("process: inputSplitsAllDoneChanged " + "(all vertices sent from input splits)"); } inputSplitsAllDoneChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(PARTITION_ASSIGNMENTS_DIR) && event.getType() == EventType.NodeCreated) { if (LOG.isInfoEnabled()) { LOG.info("process: partitionAssignmentsReadyChanged " + "(partitions are assigned)"); } partitionAssignmentsReadyChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(SUPERSTEP_FINISHED_NODE) && event.getType() == EventType.NodeCreated) { if (LOG.isInfoEnabled()) { LOG.info("process: superstepFinished signaled"); } superstepFinished.signal(); eventProcessed = true; } else if (event.getPath().endsWith(applicationAttemptsPath) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: applicationAttemptChanged signaled"); } applicationAttemptChanged.signal(); eventProcessed = true; } else if (event.getPath().contains(MASTER_ELECTION_DIR) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: masterElectionChildrenChanged signaled"); } masterElectionChildrenChanged.signal(); eventProcessed = true; } else if (event.getPath().equals(cleanedUpPath) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("process: cleanedUpChildrenChanged signaled"); } cleanedUpChildrenChanged.signal(); eventProcessed = true; } if (!(processEvent(event)) && (!eventProcessed)) { LOG.warn("process: Unknown and unprocessed event (path=" + event.getPath() + ", type=" + event.getType() + ", state=" + event.getState() + ")"); } }
From source file:org.apache.giraph.graph.BspServiceMaster.java
License:Apache License
@Override public boolean processEvent(WatchedEvent event) { boolean foundEvent = false; if (event.getPath().contains(WORKER_HEALTHY_DIR) && (event.getType() == EventType.NodeDeleted)) { if (LOG.isDebugEnabled()) { LOG.debug("processEvent: Healthy worker died (node deleted) " + "in " + event.getPath()); }/* w w w .j a v a 2 s. c o m*/ checkHealthyWorkerFailure(event.getPath()); superstepStateChanged.signal(); foundEvent = true; } else if (event.getPath().contains(WORKER_FINISHED_DIR) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isDebugEnabled()) { LOG.debug( "processEvent: Worker finished (node change) " + "event - superstepStateChanged signaled"); } superstepStateChanged.signal(); foundEvent = true; } return foundEvent; }
From source file:org.apache.giraph.graph.BspServiceWorker.java
License:Apache License
@Override protected boolean processEvent(WatchedEvent event) { boolean foundEvent = false; if (event.getPath().startsWith(masterJobStatePath) && (event.getType() == EventType.NodeChildrenChanged)) { if (LOG.isInfoEnabled()) { LOG.info("processEvent: Job state changed, checking " + "to see if it needs to restart"); }//w w w. java 2 s . c o m JSONObject jsonObj = getJobState(); try { if ((ApplicationState .valueOf(jsonObj.getString(JSONOBJ_STATE_KEY)) == ApplicationState.START_SUPERSTEP) && jsonObj.getLong(JSONOBJ_APPLICATION_ATTEMPT_KEY) != getApplicationAttempt()) { LOG.fatal("processEvent: Worker will restart " + "from command - " + jsonObj.toString()); System.exit(-1); } } catch (JSONException e) { throw new RuntimeException( "processEvent: Couldn't properly get job state from " + jsonObj.toString()); } foundEvent = true; } else if (event.getPath().contains(PARTITION_EXCHANGE_DIR) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isInfoEnabled()) { LOG.info("processEvent : partitionExchangeChildrenChanged " + "(at least one worker is done sending partitions)"); } partitionExchangeChildrenChanged.signal(); foundEvent = true; } return foundEvent; }
From source file:org.apache.giraph.master.BspServiceMaster.java
License:Apache License
@Override public boolean processEvent(WatchedEvent event) { boolean foundEvent = false; if (event.getPath().contains(WORKER_HEALTHY_DIR) && (event.getType() == EventType.NodeDeleted)) { if (LOG.isDebugEnabled()) { LOG.debug("processEvent: Healthy worker died (node deleted) " + "in " + event.getPath()); }//w w w . java 2s . c o m checkHealthyWorkerFailure(event.getPath()); superstepStateChanged.signal(); foundEvent = true; } else if (event.getPath().contains(WORKER_FINISHED_DIR) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isDebugEnabled()) { LOG.debug( "processEvent: Worker finished (node change) " + "event - superstepStateChanged signaled"); } superstepStateChanged.signal(); foundEvent = true; } else if (event.getPath().contains(WORKER_WROTE_CHECKPOINT_DIR) && event.getType() == EventType.NodeChildrenChanged) { if (LOG.isDebugEnabled()) { LOG.debug("processEvent: Worker wrote checkpoint (node change) " + "event - workerWroteCheckpoint signaled"); } workerWroteCheckpoint.signal(); foundEvent = true; } return foundEvent; }