public DataNodeActivityMBean(final MetricsRegistry mr, final String storageId) { super(mr, "Activity statistics at the DataNode"); String storageName; if (storageId.equals("")) { // Temp fix for the uninitialized storage storageName = "UndefinedStorageId" + rand.nextInt(); } else { storageName = storageId; } mbeanName = MBeanUtil.registerMBean("DataNode", "DataNodeActivity-" + storageName, this); }
public void shutdown() { if (mbeanName != null) MBeanUtil.unregisterMBean(mbeanName); if (volumes != null) { for (FSVolume volume : volumes.volumes) { if (volume != null) { volume.dfsUsage.shutdown(); } } } }
/** * Register the FSDataset MBean using the name * "hadoop:service=DataNode,name=FSDatasetState-<storageid>" */ void registerMBean(final String storageId) { // We wrap to bypass standard mbean naming convetion. // This wraping can be removed in java 6 as it is more flexible in // package naming for mbeans and their impl. StandardMBean bean; String storageName; if (storageId == null || storageId.equals("")) { // Temp fix for the // uninitialized storage storageName = "UndefinedStorageId" + rand.nextInt(); } else { storageName = storageId; } try { bean = new StandardMBean(this, FSDatasetMBean.class); mbeanName = MBeanUtil.registerMBean("DataNode", "FSDatasetState-" + storageName, bean); } catch (NotCompliantMBeanException e) { e.printStackTrace(); } DataNode.LOG.info("Registered FSDatasetStatusMBean"); }
public void shutdown() { if (mbeanName != null) MBeanUtil.unregisterMBean(mbeanName); }