List of usage examples for org.apache.zookeeper WatchedEvent getType
public EventType getType()
From source file:org.apache.curator.x.rpc.RpcTests.java
License:Apache License
@Test public void testEphemeralCleanup() throws Exception { CuratorProjection curatorProjection = curatorServiceClient.newCuratorProjection("test"); CreateSpec spec = new CreateSpec(); spec.path = "/test"; spec.data = ByteBuffer.wrap("value".getBytes()); spec.mode = CreateMode.EPHEMERAL;/*from w w w.jav a2s . c o m*/ OptionalPath node = curatorServiceClient.createNode(curatorProjection, spec); System.out.println(node); final CountDownLatch latch = new CountDownLatch(1); CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1)); try { client.start(); Watcher watcher = new Watcher() { @Override public void process(WatchedEvent event) { if (event.getType() == Event.EventType.NodeDeleted) { latch.countDown(); } } }; client.checkExists().usingWatcher(watcher).forPath("/test"); curatorServiceClient.closeCuratorProjection(curatorProjection); Assert.assertTrue(timing.awaitLatch(latch)); } finally { CloseableUtils.closeQuietly(client); } }
From source file:org.apache.distributedlog.impl.federated.FederatedZKLogMetadataStore.java
License:Apache License
@Override public void process(WatchedEvent watchedEvent) { if (Event.EventType.None == watchedEvent.getType() && Event.KeeperState.Expired == watchedEvent.getState()) { scheduleTask(this, conf.getZKSessionTimeoutMilliseconds()); return;// w w w . j a va 2 s .c o m } if (Event.EventType.NodeChildrenChanged == watchedEvent.getType()) { // fetch the namespace fetchSubNamespaces(this).whenComplete(this); } }
From source file:org.apache.distributedlog.impl.ZKLogSegmentMetadataStore.java
License:Apache License
/** * Process the watched events for registered listeners. *//* w w w . ja v a 2 s.com*/ @Override public void process(WatchedEvent event) { if (Event.EventType.None == event.getType() && Event.KeeperState.Expired == event.getState()) { Set<String> keySet = new HashSet<String>(listeners.keySet()); for (String logSegmentsPath : keySet) { scheduleTask(logSegmentsPath, new ReadLogSegmentsTask(logSegmentsPath, this), 0L); } return; } String path = event.getPath(); if (null == path) { return; } switch (event.getType()) { case NodeDeleted: notifyLogStreamDeleted(path, listeners.remove(path)); break; case NodeChildrenChanged: new ReadLogSegmentsTask(path, this).run(); break; default: break; } }
From source file:org.apache.flume.node.MyWatcher.java
License:Apache License
public void process(WatchedEvent event) { try {//from w w w . j a v a2 s .co 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 om 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/*from w w w . jav 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/* w w w. j a v a 2 s .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()); }/*from w w w . j av a2 s . co 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()); }//from w w w. ja va 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; }