You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by we...@apache.org on 2018/03/20 06:26:55 UTC
[38/38] hadoop git commit: HDFS-13215. RBF: Move Router to its own
module.
HDFS-13215. RBF: Move Router to its own module.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4aa34324
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4aa34324
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4aa34324
Branch: refs/heads/branch-2
Commit: 4aa34324b27de0f74540c109e490bb2af364fc1b
Parents: 30d9a5d
Author: weiy <we...@apache.org>
Authored: Mon Mar 19 23:23:16 2018 -0700
Committer: weiy <we...@apache.org>
Committed: Mon Mar 19 23:23:16 2018 -0700
----------------------------------------------------------------------
hadoop-dist/pom.xml | 1 +
.../dev-support/findbugsExcludeFile.xml | 22 +
hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml | 241 ++
.../hdfs/protocolPB/RouterAdminProtocolPB.java | 44 +
...uterAdminProtocolServerSideTranslatorPB.java | 211 ++
.../RouterAdminProtocolTranslatorPB.java | 208 ++
.../hadoop/hdfs/protocolPB/package-info.java | 18 +
.../federation/metrics/FederationMBean.java | 217 ++
.../federation/metrics/FederationMetrics.java | 810 +++++++
.../federation/metrics/FederationRPCMBean.java | 92 +
.../metrics/FederationRPCMetrics.java | 250 +++
.../FederationRPCPerformanceMonitor.java | 221 ++
.../federation/metrics/NamenodeBeanMetrics.java | 637 ++++++
.../federation/metrics/StateStoreMBean.java | 45 +
.../federation/metrics/StateStoreMetrics.java | 149 ++
.../server/federation/metrics/package-info.java | 27 +
.../resolver/ActiveNamenodeResolver.java | 118 +
.../resolver/FederationNamenodeContext.java | 87 +
.../FederationNamenodeServiceState.java | 46 +
.../resolver/FederationNamespaceInfo.java | 73 +
.../resolver/FileSubclusterResolver.java | 75 +
.../resolver/MembershipNamenodeResolver.java | 316 +++
.../federation/resolver/MountTableManager.java | 80 +
.../federation/resolver/MountTableResolver.java | 597 +++++
.../MultipleDestinationMountTableResolver.java | 116 +
.../resolver/NamenodePriorityComparator.java | 63 +
.../resolver/NamenodeStatusReport.java | 396 ++++
.../federation/resolver/PathLocation.java | 212 ++
.../federation/resolver/RemoteLocation.java | 76 +
.../resolver/order/DestinationOrder.java | 30 +
.../resolver/order/HashFirstResolver.java | 71 +
.../federation/resolver/order/HashResolver.java | 137 ++
.../resolver/order/LocalResolver.java | 297 +++
.../resolver/order/OrderedResolver.java | 37 +
.../resolver/order/RandomResolver.java | 62 +
.../federation/resolver/order/package-info.java | 29 +
.../federation/resolver/package-info.java | 41 +
.../federation/router/ConnectionContext.java | 104 +
.../federation/router/ConnectionManager.java | 435 ++++
.../federation/router/ConnectionPool.java | 337 +++
.../federation/router/ConnectionPoolId.java | 123 ++
.../server/federation/router/DFSRouter.java | 76 +
.../federation/router/FederationUtil.java | 208 ++
.../router/NamenodeHeartbeatService.java | 361 +++
.../federation/router/PeriodicService.java | 198 ++
.../hdfs/server/federation/router/Quota.java | 208 ++
.../server/federation/router/RBFConfigKeys.java | 229 ++
.../router/RemoteLocationContext.java | 68 +
.../server/federation/router/RemoteMethod.java | 164 ++
.../server/federation/router/RemoteParam.java | 71 +
.../hdfs/server/federation/router/Router.java | 655 ++++++
.../federation/router/RouterAdminServer.java | 298 +++
.../server/federation/router/RouterClient.java | 80 +
.../router/RouterHeartbeatService.java | 166 ++
.../federation/router/RouterHttpServer.java | 124 ++
.../server/federation/router/RouterMetrics.java | 73 +
.../federation/router/RouterMetricsService.java | 108 +
.../router/RouterPermissionChecker.java | 82 +
.../federation/router/RouterQuotaManager.java | 172 ++
.../router/RouterQuotaUpdateService.java | 227 ++
.../federation/router/RouterQuotaUsage.java | 119 +
.../federation/router/RouterRpcClient.java | 1013 +++++++++
.../federation/router/RouterRpcMonitor.java | 108 +
.../federation/router/RouterRpcServer.java | 2073 ++++++++++++++++++
.../router/RouterSafeModeException.java | 53 +
.../router/RouterSafemodeService.java | 149 ++
.../federation/router/RouterServiceState.java | 31 +
.../federation/router/RouterStateManager.java | 50 +
.../server/federation/router/package-info.java | 31 +
.../federation/store/CachedRecordStore.java | 242 ++
.../federation/store/MembershipStore.java | 126 ++
.../federation/store/MountTableStore.java | 49 +
.../server/federation/store/RecordStore.java | 100 +
.../server/federation/store/RouterStore.java | 78 +
.../federation/store/StateStoreCache.java | 36 +
.../store/StateStoreCacheUpdateService.java | 70 +
.../StateStoreConnectionMonitorService.java | 67 +
.../federation/store/StateStoreService.java | 450 ++++
.../store/StateStoreUnavailableException.java | 33 +
.../federation/store/StateStoreUtils.java | 109 +
.../store/driver/StateStoreDriver.java | 203 ++
.../driver/StateStoreRecordOperations.java | 148 ++
.../store/driver/StateStoreSerializer.java | 119 +
.../store/driver/impl/StateStoreBaseImpl.java | 86 +
.../driver/impl/StateStoreFileBaseImpl.java | 462 ++++
.../store/driver/impl/StateStoreFileImpl.java | 148 ++
.../driver/impl/StateStoreFileSystemImpl.java | 178 ++
.../driver/impl/StateStoreSerializableImpl.java | 98 +
.../driver/impl/StateStoreSerializerPBImpl.java | 115 +
.../driver/impl/StateStoreZooKeeperImpl.java | 328 +++
.../store/driver/impl/package-info.java | 39 +
.../federation/store/driver/package-info.java | 37 +
.../store/impl/MembershipStoreImpl.java | 310 +++
.../store/impl/MountTableStoreImpl.java | 154 ++
.../federation/store/impl/RouterStoreImpl.java | 93 +
.../federation/store/impl/package-info.java | 31 +
.../server/federation/store/package-info.java | 62 +
.../protocol/AddMountTableEntryRequest.java | 47 +
.../protocol/AddMountTableEntryResponse.java | 42 +
.../store/protocol/EnterSafeModeRequest.java | 32 +
.../store/protocol/EnterSafeModeResponse.java | 50 +
.../protocol/GetMountTableEntriesRequest.java | 49 +
.../protocol/GetMountTableEntriesResponse.java | 53 +
.../GetNamenodeRegistrationsRequest.java | 52 +
.../GetNamenodeRegistrationsResponse.java | 55 +
.../store/protocol/GetNamespaceInfoRequest.java | 30 +
.../protocol/GetNamespaceInfoResponse.java | 52 +
.../protocol/GetRouterRegistrationRequest.java | 47 +
.../protocol/GetRouterRegistrationResponse.java | 44 +
.../protocol/GetRouterRegistrationsRequest.java | 34 +
.../GetRouterRegistrationsResponse.java | 55 +
.../store/protocol/GetSafeModeRequest.java | 31 +
.../store/protocol/GetSafeModeResponse.java | 49 +
.../store/protocol/LeaveSafeModeRequest.java | 32 +
.../store/protocol/LeaveSafeModeResponse.java | 50 +
.../protocol/NamenodeHeartbeatRequest.java | 52 +
.../protocol/NamenodeHeartbeatResponse.java | 49 +
.../protocol/RemoveMountTableEntryRequest.java | 49 +
.../protocol/RemoveMountTableEntryResponse.java | 42 +
.../store/protocol/RouterHeartbeatRequest.java | 50 +
.../store/protocol/RouterHeartbeatResponse.java | 49 +
.../protocol/UpdateMountTableEntryRequest.java | 51 +
.../protocol/UpdateMountTableEntryResponse.java | 43 +
.../UpdateNamenodeRegistrationRequest.java | 72 +
.../UpdateNamenodeRegistrationResponse.java | 51 +
.../pb/AddMountTableEntryRequestPBImpl.java | 84 +
.../pb/AddMountTableEntryResponsePBImpl.java | 76 +
.../impl/pb/EnterSafeModeRequestPBImpl.java | 62 +
.../impl/pb/EnterSafeModeResponsePBImpl.java | 73 +
.../impl/pb/FederationProtocolPBTranslator.java | 145 ++
.../pb/GetMountTableEntriesRequestPBImpl.java | 76 +
.../pb/GetMountTableEntriesResponsePBImpl.java | 104 +
.../GetNamenodeRegistrationsRequestPBImpl.java | 87 +
.../GetNamenodeRegistrationsResponsePBImpl.java | 99 +
.../impl/pb/GetNamespaceInfoRequestPBImpl.java | 60 +
.../impl/pb/GetNamespaceInfoResponsePBImpl.java | 95 +
.../pb/GetRouterRegistrationRequestPBImpl.java | 70 +
.../pb/GetRouterRegistrationResponsePBImpl.java | 79 +
.../pb/GetRouterRegistrationsRequestPBImpl.java | 61 +
.../GetRouterRegistrationsResponsePBImpl.java | 102 +
.../impl/pb/GetSafeModeRequestPBImpl.java | 62 +
.../impl/pb/GetSafeModeResponsePBImpl.java | 73 +
.../impl/pb/LeaveSafeModeRequestPBImpl.java | 62 +
.../impl/pb/LeaveSafeModeResponsePBImpl.java | 73 +
.../impl/pb/NamenodeHeartbeatRequestPBImpl.java | 93 +
.../pb/NamenodeHeartbeatResponsePBImpl.java | 71 +
.../pb/RemoveMountTableEntryRequestPBImpl.java | 76 +
.../pb/RemoveMountTableEntryResponsePBImpl.java | 76 +
.../impl/pb/RouterHeartbeatRequestPBImpl.java | 78 +
.../impl/pb/RouterHeartbeatResponsePBImpl.java | 70 +
.../pb/UpdateMountTableEntryRequestPBImpl.java | 96 +
.../pb/UpdateMountTableEntryResponsePBImpl.java | 76 +
...UpdateNamenodeRegistrationRequestPBImpl.java | 95 +
...pdateNamenodeRegistrationResponsePBImpl.java | 73 +
.../store/protocol/impl/pb/package-info.java | 29 +
.../federation/store/protocol/package-info.java | 31 +
.../federation/store/records/BaseRecord.java | 215 ++
.../store/records/MembershipState.java | 336 +++
.../store/records/MembershipStats.java | 126 ++
.../federation/store/records/MountTable.java | 430 ++++
.../server/federation/store/records/Query.java | 66 +
.../federation/store/records/QueryResult.java | 56 +
.../federation/store/records/RouterState.java | 168 ++
.../store/records/StateStoreVersion.java | 91 +
.../records/impl/pb/MembershipStatePBImpl.java | 335 +++
.../records/impl/pb/MembershipStatsPBImpl.java | 191 ++
.../store/records/impl/pb/MountTablePBImpl.java | 317 +++
.../store/records/impl/pb/PBRecord.java | 47 +
.../records/impl/pb/RouterStatePBImpl.java | 202 ++
.../impl/pb/StateStoreVersionPBImpl.java | 79 +
.../store/records/impl/pb/package-info.java | 29 +
.../federation/store/records/package-info.java | 36 +
.../federation/utils/ConsistentHashRing.java | 144 ++
.../server/federation/utils/package-info.java | 28 +
.../hdfs/tools/federation/RouterAdmin.java | 627 ++++++
.../hdfs/tools/federation/package-info.java | 28 +
.../src/main/proto/FederationProtocol.proto | 243 ++
.../src/main/proto/RouterProtocol.proto | 62 +
.../src/main/resources/hdfs-rbf-default.xml | 434 ++++
.../src/main/webapps/proto-web.xml | 16 +
.../main/webapps/router/federationhealth.html | 424 ++++
.../src/main/webapps/router/federationhealth.js | 381 ++++
.../src/main/webapps/router/index.html | 24 +
.../src/main/webapps/router/robots.txt | 2 +
.../src/site/markdown/HDFSRouterFederation.md | 373 ++++
.../src/site/resources/css/site.css | 30 +
.../site/resources/images/routerfederation.png | Bin 0 -> 24961 bytes
.../hadoop-hdfs-rbf/src/site/site.xml | 28 +
.../server/federation/FederationTestUtils.java | 246 +++
.../hdfs/server/federation/MockResolver.java | 313 +++
.../server/federation/RouterConfigBuilder.java | 163 ++
.../server/federation/RouterDFSCluster.java | 1005 +++++++++
.../server/federation/StateStoreDFSCluster.java | 148 ++
.../metrics/TestFederationMetrics.java | 291 +++
.../federation/metrics/TestMetricsBase.java | 196 ++
.../resolver/TestMountTableResolver.java | 528 +++++
.../TestMultipleDestinationResolver.java | 419 ++++
.../resolver/TestNamenodeResolver.java | 284 +++
.../resolver/order/TestLocalResolver.java | 143 ++
.../router/TestConnectionManager.java | 157 ++
.../router/TestNamenodeHeartbeat.java | 168 ++
.../federation/router/TestRBFConfigFields.java | 51 +
.../server/federation/router/TestRouter.java | 150 ++
.../federation/router/TestRouterAdmin.java | 340 +++
.../federation/router/TestRouterAdminCLI.java | 477 ++++
.../router/TestRouterHeartbeatService.java | 146 ++
.../federation/router/TestRouterMountTable.java | 143 ++
.../router/TestRouterNamenodeMonitoring.java | 143 ++
.../federation/router/TestRouterQuota.java | 451 ++++
.../router/TestRouterQuotaManager.java | 125 ++
.../router/TestRouterRPCClientRetries.java | 160 ++
.../server/federation/router/TestRouterRpc.java | 898 ++++++++
.../router/TestRouterRpcMultiDestination.java | 216 ++
.../federation/router/TestRouterSafemode.java | 200 ++
.../store/FederationStateStoreTestUtils.java | 274 +++
.../federation/store/TestStateStoreBase.java | 81 +
.../store/TestStateStoreMembershipState.java | 463 ++++
.../store/TestStateStoreMountTable.java | 250 +++
.../store/TestStateStoreRouterState.java | 195 ++
.../store/driver/TestStateStoreDriverBase.java | 613 ++++++
.../store/driver/TestStateStoreFile.java | 76 +
.../store/driver/TestStateStoreFileBase.java | 47 +
.../store/driver/TestStateStoreFileSystem.java | 94 +
.../store/driver/TestStateStoreZK.java | 105 +
.../store/records/TestMembershipState.java | 129 ++
.../store/records/TestMountTable.java | 259 +++
.../store/records/TestRouterState.java | 85 +
.../src/test/resources/hdfs-site.xml | 29 +
.../src/test/resources/log4j.properties | 23 +
.../dev-support/findbugsExcludeFile.xml | 3 -
hadoop-hdfs-project/hadoop-hdfs/pom.xml | 6 -
.../org/apache/hadoop/hdfs/DFSConfigKeys.java | 204 --
.../hdfs/protocolPB/RouterAdminProtocolPB.java | 44 -
...uterAdminProtocolServerSideTranslatorPB.java | 211 --
.../RouterAdminProtocolTranslatorPB.java | 208 --
.../federation/metrics/FederationMBean.java | 217 --
.../federation/metrics/FederationMetrics.java | 810 -------
.../federation/metrics/FederationRPCMBean.java | 92 -
.../metrics/FederationRPCMetrics.java | 250 ---
.../FederationRPCPerformanceMonitor.java | 221 --
.../federation/metrics/NamenodeBeanMetrics.java | 637 ------
.../federation/metrics/StateStoreMBean.java | 45 -
.../federation/metrics/StateStoreMetrics.java | 149 --
.../server/federation/metrics/package-info.java | 27 -
.../resolver/ActiveNamenodeResolver.java | 118 -
.../resolver/FederationNamenodeContext.java | 87 -
.../FederationNamenodeServiceState.java | 46 -
.../resolver/FederationNamespaceInfo.java | 73 -
.../resolver/FileSubclusterResolver.java | 75 -
.../resolver/MembershipNamenodeResolver.java | 316 ---
.../federation/resolver/MountTableManager.java | 80 -
.../federation/resolver/MountTableResolver.java | 597 -----
.../MultipleDestinationMountTableResolver.java | 116 -
.../resolver/NamenodePriorityComparator.java | 63 -
.../resolver/NamenodeStatusReport.java | 396 ----
.../federation/resolver/PathLocation.java | 212 --
.../federation/resolver/RemoteLocation.java | 76 -
.../resolver/order/DestinationOrder.java | 30 -
.../resolver/order/HashFirstResolver.java | 71 -
.../federation/resolver/order/HashResolver.java | 137 --
.../resolver/order/LocalResolver.java | 297 ---
.../resolver/order/OrderedResolver.java | 37 -
.../resolver/order/RandomResolver.java | 62 -
.../federation/resolver/order/package-info.java | 29 -
.../federation/resolver/package-info.java | 41 -
.../federation/router/ConnectionContext.java | 104 -
.../federation/router/ConnectionManager.java | 436 ----
.../federation/router/ConnectionPool.java | 337 ---
.../federation/router/ConnectionPoolId.java | 123 --
.../server/federation/router/DFSRouter.java | 76 -
.../federation/router/FederationUtil.java | 209 --
.../router/NamenodeHeartbeatService.java | 361 ---
.../federation/router/PeriodicService.java | 198 --
.../hdfs/server/federation/router/Quota.java | 208 --
.../router/RemoteLocationContext.java | 68 -
.../server/federation/router/RemoteMethod.java | 164 --
.../server/federation/router/RemoteParam.java | 71 -
.../hdfs/server/federation/router/Router.java | 656 ------
.../federation/router/RouterAdminServer.java | 298 ---
.../server/federation/router/RouterClient.java | 80 -
.../router/RouterHeartbeatService.java | 167 --
.../federation/router/RouterHttpServer.java | 124 --
.../server/federation/router/RouterMetrics.java | 73 -
.../federation/router/RouterMetricsService.java | 108 -
.../router/RouterPermissionChecker.java | 82 -
.../federation/router/RouterQuotaManager.java | 172 --
.../router/RouterQuotaUpdateService.java | 228 --
.../federation/router/RouterQuotaUsage.java | 119 -
.../federation/router/RouterRpcClient.java | 1014 ---------
.../federation/router/RouterRpcMonitor.java | 108 -
.../federation/router/RouterRpcServer.java | 2073 ------------------
.../router/RouterSafeModeException.java | 53 -
.../router/RouterSafemodeService.java | 150 --
.../federation/router/RouterServiceState.java | 31 -
.../federation/router/RouterStateManager.java | 50 -
.../server/federation/router/package-info.java | 31 -
.../federation/store/CachedRecordStore.java | 242 --
.../federation/store/MembershipStore.java | 126 --
.../federation/store/MountTableStore.java | 49 -
.../server/federation/store/RecordStore.java | 100 -
.../server/federation/store/RouterStore.java | 78 -
.../federation/store/StateStoreCache.java | 36 -
.../store/StateStoreCacheUpdateService.java | 70 -
.../StateStoreConnectionMonitorService.java | 67 -
.../federation/store/StateStoreService.java | 450 ----
.../store/StateStoreUnavailableException.java | 33 -
.../federation/store/StateStoreUtils.java | 109 -
.../store/driver/StateStoreDriver.java | 203 --
.../driver/StateStoreRecordOperations.java | 148 --
.../store/driver/StateStoreSerializer.java | 119 -
.../store/driver/impl/StateStoreBaseImpl.java | 86 -
.../driver/impl/StateStoreFileBaseImpl.java | 462 ----
.../store/driver/impl/StateStoreFileImpl.java | 148 --
.../driver/impl/StateStoreFileSystemImpl.java | 178 --
.../driver/impl/StateStoreSerializableImpl.java | 98 -
.../driver/impl/StateStoreSerializerPBImpl.java | 115 -
.../driver/impl/StateStoreZooKeeperImpl.java | 328 ---
.../store/driver/impl/package-info.java | 39 -
.../federation/store/driver/package-info.java | 37 -
.../store/impl/MembershipStoreImpl.java | 310 ---
.../store/impl/MountTableStoreImpl.java | 154 --
.../federation/store/impl/RouterStoreImpl.java | 93 -
.../federation/store/impl/package-info.java | 31 -
.../server/federation/store/package-info.java | 62 -
.../protocol/AddMountTableEntryRequest.java | 47 -
.../protocol/AddMountTableEntryResponse.java | 42 -
.../store/protocol/EnterSafeModeRequest.java | 32 -
.../store/protocol/EnterSafeModeResponse.java | 50 -
.../protocol/GetMountTableEntriesRequest.java | 49 -
.../protocol/GetMountTableEntriesResponse.java | 53 -
.../GetNamenodeRegistrationsRequest.java | 52 -
.../GetNamenodeRegistrationsResponse.java | 55 -
.../store/protocol/GetNamespaceInfoRequest.java | 30 -
.../protocol/GetNamespaceInfoResponse.java | 52 -
.../protocol/GetRouterRegistrationRequest.java | 47 -
.../protocol/GetRouterRegistrationResponse.java | 44 -
.../protocol/GetRouterRegistrationsRequest.java | 34 -
.../GetRouterRegistrationsResponse.java | 55 -
.../store/protocol/GetSafeModeRequest.java | 31 -
.../store/protocol/GetSafeModeResponse.java | 49 -
.../store/protocol/LeaveSafeModeRequest.java | 32 -
.../store/protocol/LeaveSafeModeResponse.java | 50 -
.../protocol/NamenodeHeartbeatRequest.java | 52 -
.../protocol/NamenodeHeartbeatResponse.java | 49 -
.../protocol/RemoveMountTableEntryRequest.java | 49 -
.../protocol/RemoveMountTableEntryResponse.java | 42 -
.../store/protocol/RouterHeartbeatRequest.java | 50 -
.../store/protocol/RouterHeartbeatResponse.java | 49 -
.../protocol/UpdateMountTableEntryRequest.java | 51 -
.../protocol/UpdateMountTableEntryResponse.java | 43 -
.../UpdateNamenodeRegistrationRequest.java | 72 -
.../UpdateNamenodeRegistrationResponse.java | 51 -
.../pb/AddMountTableEntryRequestPBImpl.java | 84 -
.../pb/AddMountTableEntryResponsePBImpl.java | 76 -
.../impl/pb/EnterSafeModeRequestPBImpl.java | 62 -
.../impl/pb/EnterSafeModeResponsePBImpl.java | 73 -
.../impl/pb/FederationProtocolPBTranslator.java | 145 --
.../pb/GetMountTableEntriesRequestPBImpl.java | 76 -
.../pb/GetMountTableEntriesResponsePBImpl.java | 104 -
.../GetNamenodeRegistrationsRequestPBImpl.java | 87 -
.../GetNamenodeRegistrationsResponsePBImpl.java | 99 -
.../impl/pb/GetNamespaceInfoRequestPBImpl.java | 60 -
.../impl/pb/GetNamespaceInfoResponsePBImpl.java | 95 -
.../pb/GetRouterRegistrationRequestPBImpl.java | 70 -
.../pb/GetRouterRegistrationResponsePBImpl.java | 79 -
.../pb/GetRouterRegistrationsRequestPBImpl.java | 61 -
.../GetRouterRegistrationsResponsePBImpl.java | 102 -
.../impl/pb/GetSafeModeRequestPBImpl.java | 62 -
.../impl/pb/GetSafeModeResponsePBImpl.java | 73 -
.../impl/pb/LeaveSafeModeRequestPBImpl.java | 62 -
.../impl/pb/LeaveSafeModeResponsePBImpl.java | 73 -
.../impl/pb/NamenodeHeartbeatRequestPBImpl.java | 93 -
.../pb/NamenodeHeartbeatResponsePBImpl.java | 71 -
.../pb/RemoveMountTableEntryRequestPBImpl.java | 76 -
.../pb/RemoveMountTableEntryResponsePBImpl.java | 76 -
.../impl/pb/RouterHeartbeatRequestPBImpl.java | 78 -
.../impl/pb/RouterHeartbeatResponsePBImpl.java | 70 -
.../pb/UpdateMountTableEntryRequestPBImpl.java | 96 -
.../pb/UpdateMountTableEntryResponsePBImpl.java | 76 -
...UpdateNamenodeRegistrationRequestPBImpl.java | 95 -
...pdateNamenodeRegistrationResponsePBImpl.java | 73 -
.../store/protocol/impl/pb/package-info.java | 29 -
.../federation/store/protocol/package-info.java | 31 -
.../federation/store/records/BaseRecord.java | 215 --
.../store/records/MembershipState.java | 336 ---
.../store/records/MembershipStats.java | 126 --
.../federation/store/records/MountTable.java | 430 ----
.../server/federation/store/records/Query.java | 66 -
.../federation/store/records/QueryResult.java | 56 -
.../federation/store/records/RouterState.java | 168 --
.../store/records/StateStoreVersion.java | 91 -
.../records/impl/pb/MembershipStatePBImpl.java | 335 ---
.../records/impl/pb/MembershipStatsPBImpl.java | 191 --
.../store/records/impl/pb/MountTablePBImpl.java | 317 ---
.../store/records/impl/pb/PBRecord.java | 47 -
.../records/impl/pb/RouterStatePBImpl.java | 202 --
.../impl/pb/StateStoreVersionPBImpl.java | 79 -
.../store/records/impl/pb/package-info.java | 29 -
.../federation/store/records/package-info.java | 36 -
.../federation/utils/ConsistentHashRing.java | 144 --
.../server/federation/utils/package-info.java | 28 -
.../hdfs/tools/federation/RouterAdmin.java | 627 ------
.../hdfs/tools/federation/package-info.java | 28 -
.../src/main/proto/FederationProtocol.proto | 243 --
.../src/main/proto/RouterProtocol.proto | 62 -
.../src/main/resources/hdfs-default.xml | 408 ----
.../main/webapps/router/federationhealth.html | 424 ----
.../src/main/webapps/router/federationhealth.js | 381 ----
.../src/main/webapps/router/index.html | 24 -
.../src/main/webapps/router/robots.txt | 2 -
.../src/site/markdown/HDFSRouterFederation.md | 373 ----
.../site/resources/images/routerfederation.png | Bin 24961 -> 0 bytes
.../server/federation/FederationTestUtils.java | 246 ---
.../hdfs/server/federation/MockResolver.java | 313 ---
.../server/federation/RouterConfigBuilder.java | 163 --
.../server/federation/RouterDFSCluster.java | 1005 ---------
.../server/federation/StateStoreDFSCluster.java | 148 --
.../metrics/TestFederationMetrics.java | 291 ---
.../federation/metrics/TestMetricsBase.java | 196 --
.../resolver/TestMountTableResolver.java | 528 -----
.../TestMultipleDestinationResolver.java | 419 ----
.../resolver/TestNamenodeResolver.java | 284 ---
.../resolver/order/TestLocalResolver.java | 143 --
.../router/TestConnectionManager.java | 157 --
.../router/TestNamenodeHeartbeat.java | 168 --
.../server/federation/router/TestRouter.java | 150 --
.../federation/router/TestRouterAdmin.java | 340 ---
.../federation/router/TestRouterAdminCLI.java | 478 ----
.../router/TestRouterHeartbeatService.java | 147 --
.../federation/router/TestRouterMountTable.java | 143 --
.../router/TestRouterNamenodeMonitoring.java | 143 --
.../federation/router/TestRouterQuota.java | 452 ----
.../router/TestRouterQuotaManager.java | 125 --
.../router/TestRouterRPCClientRetries.java | 160 --
.../server/federation/router/TestRouterRpc.java | 898 --------
.../router/TestRouterRpcMultiDestination.java | 216 --
.../federation/router/TestRouterSafemode.java | 201 --
.../store/FederationStateStoreTestUtils.java | 274 ---
.../federation/store/TestStateStoreBase.java | 81 -
.../store/TestStateStoreMembershipState.java | 463 ----
.../store/TestStateStoreMountTable.java | 250 ---
.../store/TestStateStoreRouterState.java | 195 --
.../store/driver/TestStateStoreDriverBase.java | 613 ------
.../store/driver/TestStateStoreFile.java | 76 -
.../store/driver/TestStateStoreFileBase.java | 47 -
.../store/driver/TestStateStoreFileSystem.java | 94 -
.../store/driver/TestStateStoreZK.java | 105 -
.../store/records/TestMembershipState.java | 129 --
.../store/records/TestMountTable.java | 259 ---
.../store/records/TestRouterState.java | 85 -
hadoop-hdfs-project/pom.xml | 1 +
hadoop-project/pom.xml | 5 +
hadoop-project/src/site/site.xml | 3 +-
453 files changed, 37896 insertions(+), 37399 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4aa34324/hadoop-dist/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-dist/pom.xml b/hadoop-dist/pom.xml
index 5eb8b98..7785652 100644
--- a/hadoop-dist/pom.xml
+++ b/hadoop-dist/pom.xml
@@ -143,6 +143,7 @@
run cp -r $ROOT/hadoop-hdfs-project/hadoop-hdfs-nfs/target/hadoop-hdfs-nfs-${project.version}/* .
run cp -r $ROOT/hadoop-hdfs-project/hadoop-hdfs-client/target/hadoop-hdfs-client-${project.version}/* .
run cp -r $ROOT/hadoop-hdfs-project/hadoop-hdfs-native-client/target/hadoop-hdfs-native-client-${project.version}/* .
+ run cp -r $ROOT/hadoop-hdfs-project/hadoop-hdfs-rbf/target/hadoop-hdfs-rbf-${project.version}/* .
run cp -r $ROOT/hadoop-yarn-project/target/hadoop-yarn-project-${project.version}/* .
run cp -r $ROOT/hadoop-mapreduce-project/target/hadoop-mapreduce-${project.version}/* .
run cp -r $ROOT/hadoop-tools/hadoop-tools-dist/target/hadoop-tools-dist-${project.version}/* .
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4aa34324/hadoop-hdfs-project/hadoop-hdfs-rbf/dev-support/findbugsExcludeFile.xml
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/dev-support/findbugsExcludeFile.xml b/hadoop-hdfs-project/hadoop-hdfs-rbf/dev-support/findbugsExcludeFile.xml
new file mode 100644
index 0000000..40771bf
--- /dev/null
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/dev-support/findbugsExcludeFile.xml
@@ -0,0 +1,22 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<FindBugsFilter>
+ <Match>
+ <Package name="org.apache.hadoop.hdfs.federation.protocol.proto" />
+ </Match>
+</FindBugsFilter>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4aa34324/hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml b/hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml
new file mode 100644
index 0000000..8ef3bb7
--- /dev/null
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. See accompanying LICENSE file.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-project-dist</artifactId>
+ <version>2.10.0-SNAPSHOT</version>
+ <relativePath>../../hadoop-project-dist</relativePath>
+ </parent>
+ <artifactId>hadoop-hdfs-rbf</artifactId>
+ <version>2.10.0-SNAPSHOT</version>
+ <description>Apache Hadoop HDFS-RBF</description>
+ <name>Apache Hadoop HDFS-RBF</name>
+ <packaging>jar</packaging>
+
+ <properties>
+ <hadoop.component>hdfs</hadoop.component>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs-client</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <scope>test</scope>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <scope>test</scope>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.curator</groupId>
+ <artifactId>curator-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <configuration>
+ <skipTests>false</skipTests>
+ </configuration>
+ <executions>
+ <execution>
+ <id>create-web-xmls</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <copy file="${basedir}/src/main/webapps/proto-web.xml"
+ tofile="${project.build.directory}/webapps/router/WEB-INF/web.xml"
+ filtering="true"/>
+ <copy toDir="${project.build.directory}/webapps">
+ <fileset dir="${basedir}/src/main/webapps">
+ <exclude name="**/proto-web.xml"/>
+ </fileset>
+ </copy>
+ <replace dir="${project.build.directory}/webapps" value="${release-year}">
+ <include name="**/*.html"/>
+ <replacetoken>{release-year-token}</replacetoken>
+ </replace>
+ </target>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-log-dir</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <copy todir="${project.build.directory}/test-classes/webapps">
+ <fileset dir="${project.build.directory}/webapps">
+ <exclude name="proto-*-web.xml"/>
+ <exclude name="**/proto-web.xml"/>
+ </fileset>
+ </copy>
+ </target>
+ </configuration>
+ </execution>
+ <execution>
+ <phase>pre-site</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <copy file="src/main/resources/hdfs-rbf-default.xml" todir="src/site/resources"/>
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-maven-plugins</artifactId>
+ <executions>
+ <execution>
+ <id>compile-protoc</id>
+ <goals>
+ <goal>protoc</goal>
+ </goals>
+ <configuration>
+ <protocVersion>${protobuf.version}</protocVersion>
+ <protocCommand>${protoc.path}</protocCommand>
+ <imports>
+ <param>${basedir}/../hadoop-hdfs-client/src/main/proto</param>
+ <param>${basedir}/../../hadoop-common-project/hadoop-common/src/main/proto</param>
+ <param>${basedir}/src/main/proto</param>
+ </imports>
+ <source>
+ <directory>${basedir}/src/main/proto</directory>
+ <includes>
+ <include>FederationProtocol.proto</include>
+ <include>RouterProtocol.proto</include>
+ </includes>
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>.gitattributes</exclude>
+ <exclude>.idea/**</exclude>
+ <exclude>dev-support/findbugsExcludeFile.xml</exclude>
+ <exclude>src/main/webapps/router/robots.txt</exclude>
+ <exclude>src/site/resources/images/*</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>src/site/resources</directory>
+ <includes>
+ <include>hdfs-rbf-default.xml</include>
+ </includes>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4aa34324/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolPB.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolPB.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolPB.java
new file mode 100644
index 0000000..96fa794
--- /dev/null
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolPB.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hdfs.protocolPB;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.hdfs.DFSConfigKeys;
+import org.apache.hadoop.hdfs.protocol.HdfsConstants;
+import org.apache.hadoop.hdfs.protocol.proto.RouterProtocolProtos.RouterAdminProtocolService;
+import org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenSelector;
+import org.apache.hadoop.ipc.ProtocolInfo;
+import org.apache.hadoop.security.KerberosInfo;
+import org.apache.hadoop.security.token.TokenInfo;
+
+/**
+ * Protocol that a clients use to communicate with the NameNode.
+ * Note: This extends the protocolbuffer service based interface to
+ * add annotations required for security.
+ */
+@InterfaceAudience.Private
+@InterfaceStability.Stable
+@KerberosInfo(
+ serverPrincipal = DFSConfigKeys.DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY)
+@TokenInfo(DelegationTokenSelector.class)
+@ProtocolInfo(protocolName = HdfsConstants.CLIENT_NAMENODE_PROTOCOL_NAME,
+ protocolVersion = 1)
+public interface RouterAdminProtocolPB extends
+ RouterAdminProtocolService.BlockingInterface {
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4aa34324/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolServerSideTranslatorPB.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolServerSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolServerSideTranslatorPB.java
new file mode 100644
index 0000000..159d5c2
--- /dev/null
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolServerSideTranslatorPB.java
@@ -0,0 +1,211 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hdfs.protocolPB;
+
+import java.io.IOException;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.AddMountTableEntryRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.AddMountTableEntryResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.EnterSafeModeRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.EnterSafeModeResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.GetMountTableEntriesRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.GetMountTableEntriesResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.GetSafeModeRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.GetSafeModeResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.LeaveSafeModeRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.LeaveSafeModeResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.RemoveMountTableEntryRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.RemoveMountTableEntryResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.UpdateMountTableEntryRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.UpdateMountTableEntryResponseProto;
+import org.apache.hadoop.hdfs.server.federation.router.RouterAdminServer;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.AddMountTableEntryRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.AddMountTableEntryResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.EnterSafeModeRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.EnterSafeModeResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.GetMountTableEntriesRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.GetMountTableEntriesResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.GetSafeModeRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.GetSafeModeResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.LeaveSafeModeRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.LeaveSafeModeResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.RemoveMountTableEntryRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.RemoveMountTableEntryResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateMountTableEntryRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateMountTableEntryResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.AddMountTableEntryRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.AddMountTableEntryResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.EnterSafeModeRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.EnterSafeModeResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.GetMountTableEntriesRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.GetMountTableEntriesResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.GetSafeModeRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.GetSafeModeResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.LeaveSafeModeRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.LeaveSafeModeResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.RemoveMountTableEntryRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.RemoveMountTableEntryResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.UpdateMountTableEntryRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.UpdateMountTableEntryResponsePBImpl;
+
+import com.google.protobuf.RpcController;
+import com.google.protobuf.ServiceException;
+
+/**
+ * This class is used on the server side. Calls come across the wire for the for
+ * protocol {@link RouterAdminProtocolPB}. This class translates the PB data
+ * types to the native data types used inside the HDFS Router as specified in
+ * the generic RouterAdminProtocol.
+ */
+@InterfaceAudience.Private
+@InterfaceStability.Stable
+public class RouterAdminProtocolServerSideTranslatorPB implements
+ RouterAdminProtocolPB {
+
+ private final RouterAdminServer server;
+
+ /**
+ * Constructor.
+ * @param server The NN server.
+ * @throws IOException
+ */
+ public RouterAdminProtocolServerSideTranslatorPB(RouterAdminServer server)
+ throws IOException {
+ this.server = server;
+ }
+
+ @Override
+ public AddMountTableEntryResponseProto addMountTableEntry(
+ RpcController controller, AddMountTableEntryRequestProto request)
+ throws ServiceException {
+
+ try {
+ AddMountTableEntryRequest req =
+ new AddMountTableEntryRequestPBImpl(request);
+ AddMountTableEntryResponse response = server.addMountTableEntry(req);
+ AddMountTableEntryResponsePBImpl responsePB =
+ (AddMountTableEntryResponsePBImpl)response;
+ return responsePB.getProto();
+ } catch (IOException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ /**
+ * Remove an entry from the mount table.
+ */
+ @Override
+ public RemoveMountTableEntryResponseProto removeMountTableEntry(
+ RpcController controller, RemoveMountTableEntryRequestProto request)
+ throws ServiceException {
+ try {
+ RemoveMountTableEntryRequest req =
+ new RemoveMountTableEntryRequestPBImpl(request);
+ RemoveMountTableEntryResponse response =
+ server.removeMountTableEntry(req);
+ RemoveMountTableEntryResponsePBImpl responsePB =
+ (RemoveMountTableEntryResponsePBImpl)response;
+ return responsePB.getProto();
+ } catch (IOException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ /**
+ * Get matching mount table entries.
+ */
+ @Override
+ public GetMountTableEntriesResponseProto getMountTableEntries(
+ RpcController controller, GetMountTableEntriesRequestProto request)
+ throws ServiceException {
+ try {
+ GetMountTableEntriesRequest req =
+ new GetMountTableEntriesRequestPBImpl(request);
+ GetMountTableEntriesResponse response = server.getMountTableEntries(req);
+ GetMountTableEntriesResponsePBImpl responsePB =
+ (GetMountTableEntriesResponsePBImpl)response;
+ return responsePB.getProto();
+ } catch (IOException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ /**
+ * Update a single mount table entry.
+ */
+ @Override
+ public UpdateMountTableEntryResponseProto updateMountTableEntry(
+ RpcController controller, UpdateMountTableEntryRequestProto request)
+ throws ServiceException {
+ try {
+ UpdateMountTableEntryRequest req =
+ new UpdateMountTableEntryRequestPBImpl(request);
+ UpdateMountTableEntryResponse response =
+ server.updateMountTableEntry(req);
+ UpdateMountTableEntryResponsePBImpl responsePB =
+ (UpdateMountTableEntryResponsePBImpl)response;
+ return responsePB.getProto();
+ } catch (IOException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ @Override
+ public EnterSafeModeResponseProto enterSafeMode(RpcController controller,
+ EnterSafeModeRequestProto request) throws ServiceException {
+ try {
+ EnterSafeModeRequest req = new EnterSafeModeRequestPBImpl(request);
+ EnterSafeModeResponse response = server.enterSafeMode(req);
+ EnterSafeModeResponsePBImpl responsePB =
+ (EnterSafeModeResponsePBImpl) response;
+ return responsePB.getProto();
+ } catch (IOException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ @Override
+ public LeaveSafeModeResponseProto leaveSafeMode(RpcController controller,
+ LeaveSafeModeRequestProto request) throws ServiceException {
+ try {
+ LeaveSafeModeRequest req = new LeaveSafeModeRequestPBImpl(request);
+ LeaveSafeModeResponse response = server.leaveSafeMode(req);
+ LeaveSafeModeResponsePBImpl responsePB =
+ (LeaveSafeModeResponsePBImpl) response;
+ return responsePB.getProto();
+ } catch (IOException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ @Override
+ public GetSafeModeResponseProto getSafeMode(RpcController controller,
+ GetSafeModeRequestProto request) throws ServiceException {
+ try {
+ GetSafeModeRequest req = new GetSafeModeRequestPBImpl(request);
+ GetSafeModeResponse response = server.getSafeMode(req);
+ GetSafeModeResponsePBImpl responsePB =
+ (GetSafeModeResponsePBImpl) response;
+ return responsePB.getProto();
+ } catch (IOException e) {
+ throw new ServiceException(e);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4aa34324/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolTranslatorPB.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolTranslatorPB.java
new file mode 100644
index 0000000..d6210ce
--- /dev/null
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/RouterAdminProtocolTranslatorPB.java
@@ -0,0 +1,208 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hdfs.protocolPB;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.AddMountTableEntryRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.AddMountTableEntryResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.EnterSafeModeRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.EnterSafeModeResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.GetMountTableEntriesRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.GetMountTableEntriesResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.GetSafeModeRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.GetSafeModeResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.LeaveSafeModeRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.LeaveSafeModeResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.RemoveMountTableEntryRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.RemoveMountTableEntryResponseProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.UpdateMountTableEntryRequestProto;
+import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.UpdateMountTableEntryResponseProto;
+import org.apache.hadoop.hdfs.server.federation.resolver.MountTableManager;
+import org.apache.hadoop.hdfs.server.federation.router.RouterStateManager;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.AddMountTableEntryRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.AddMountTableEntryResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.EnterSafeModeRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.EnterSafeModeResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.GetMountTableEntriesRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.GetMountTableEntriesResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.GetSafeModeRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.GetSafeModeResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.LeaveSafeModeRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.LeaveSafeModeResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.RemoveMountTableEntryRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.RemoveMountTableEntryResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateMountTableEntryRequest;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateMountTableEntryResponse;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.AddMountTableEntryRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.AddMountTableEntryResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.EnterSafeModeResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.GetMountTableEntriesRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.GetMountTableEntriesResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.GetSafeModeResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.LeaveSafeModeResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.RemoveMountTableEntryRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.RemoveMountTableEntryResponsePBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.UpdateMountTableEntryRequestPBImpl;
+import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.UpdateMountTableEntryResponsePBImpl;
+import org.apache.hadoop.ipc.ProtobufHelper;
+import org.apache.hadoop.ipc.ProtocolMetaInterface;
+import org.apache.hadoop.ipc.ProtocolTranslator;
+import org.apache.hadoop.ipc.RPC;
+import org.apache.hadoop.ipc.RpcClientUtil;
+
+import com.google.protobuf.ServiceException;
+
+/**
+ * This class forwards NN's ClientProtocol calls as RPC calls to the NN server
+ * while translating from the parameter types used in ClientProtocol to the
+ * new PB types.
+ */
+@InterfaceAudience.Private
+@InterfaceStability.Stable
+public class RouterAdminProtocolTranslatorPB
+ implements ProtocolMetaInterface, MountTableManager,
+ Closeable, ProtocolTranslator, RouterStateManager {
+ final private RouterAdminProtocolPB rpcProxy;
+
+ public RouterAdminProtocolTranslatorPB(RouterAdminProtocolPB proxy) {
+ rpcProxy = proxy;
+ }
+
+ @Override
+ public void close() {
+ RPC.stopProxy(rpcProxy);
+ }
+
+ @Override
+ public Object getUnderlyingProxyObject() {
+ return rpcProxy;
+ }
+
+ @Override
+ public boolean isMethodSupported(String methodName) throws IOException {
+ return RpcClientUtil.isMethodSupported(rpcProxy,
+ RouterAdminProtocolPB.class, RPC.RpcKind.RPC_PROTOCOL_BUFFER,
+ RPC.getProtocolVersion(RouterAdminProtocolPB.class), methodName);
+ }
+
+ @Override
+ public AddMountTableEntryResponse addMountTableEntry(
+ AddMountTableEntryRequest request) throws IOException {
+ AddMountTableEntryRequestPBImpl requestPB =
+ (AddMountTableEntryRequestPBImpl)request;
+ AddMountTableEntryRequestProto proto = requestPB.getProto();
+ try {
+ AddMountTableEntryResponseProto response =
+ rpcProxy.addMountTableEntry(null, proto);
+ return new AddMountTableEntryResponsePBImpl(response);
+ } catch (ServiceException e) {
+ throw new IOException(ProtobufHelper.getRemoteException(e).getMessage());
+ }
+ }
+
+ @Override
+ public UpdateMountTableEntryResponse updateMountTableEntry(
+ UpdateMountTableEntryRequest request) throws IOException {
+ UpdateMountTableEntryRequestPBImpl requestPB =
+ (UpdateMountTableEntryRequestPBImpl)request;
+ UpdateMountTableEntryRequestProto proto = requestPB.getProto();
+ try {
+ UpdateMountTableEntryResponseProto response =
+ rpcProxy.updateMountTableEntry(null, proto);
+ return new UpdateMountTableEntryResponsePBImpl(response);
+ } catch (ServiceException e) {
+ throw new IOException(ProtobufHelper.getRemoteException(e).getMessage());
+ }
+ }
+
+ @Override
+ public RemoveMountTableEntryResponse removeMountTableEntry(
+ RemoveMountTableEntryRequest request) throws IOException {
+ RemoveMountTableEntryRequestPBImpl requestPB =
+ (RemoveMountTableEntryRequestPBImpl)request;
+ RemoveMountTableEntryRequestProto proto = requestPB.getProto();
+ try {
+ RemoveMountTableEntryResponseProto responseProto =
+ rpcProxy.removeMountTableEntry(null, proto);
+ return new RemoveMountTableEntryResponsePBImpl(responseProto);
+ } catch (ServiceException e) {
+ throw new IOException(ProtobufHelper.getRemoteException(e).getMessage());
+ }
+ }
+
+ @Override
+ public GetMountTableEntriesResponse getMountTableEntries(
+ GetMountTableEntriesRequest request) throws IOException {
+ GetMountTableEntriesRequestPBImpl requestPB =
+ (GetMountTableEntriesRequestPBImpl)request;
+ GetMountTableEntriesRequestProto proto = requestPB.getProto();
+ try {
+ GetMountTableEntriesResponseProto response =
+ rpcProxy.getMountTableEntries(null, proto);
+ return new GetMountTableEntriesResponsePBImpl(response);
+ } catch (ServiceException e) {
+ throw new IOException(ProtobufHelper.getRemoteException(e).getMessage());
+ }
+ }
+
+ @Override
+ public EnterSafeModeResponse enterSafeMode(EnterSafeModeRequest request)
+ throws IOException {
+ EnterSafeModeRequestProto proto =
+ EnterSafeModeRequestProto.newBuilder().build();
+ try {
+ EnterSafeModeResponseProto response =
+ rpcProxy.enterSafeMode(null, proto);
+ return new EnterSafeModeResponsePBImpl(response);
+ } catch (ServiceException e) {
+ throw new IOException(ProtobufHelper.getRemoteException(e).getMessage());
+ }
+ }
+
+ @Override
+ public LeaveSafeModeResponse leaveSafeMode(LeaveSafeModeRequest request)
+ throws IOException {
+ LeaveSafeModeRequestProto proto =
+ LeaveSafeModeRequestProto.newBuilder().build();
+ try {
+ LeaveSafeModeResponseProto response =
+ rpcProxy.leaveSafeMode(null, proto);
+ return new LeaveSafeModeResponsePBImpl(response);
+ } catch (ServiceException e) {
+ throw new IOException(ProtobufHelper.getRemoteException(e).getMessage());
+ }
+ }
+
+ @Override
+ public GetSafeModeResponse getSafeMode(GetSafeModeRequest request)
+ throws IOException {
+ GetSafeModeRequestProto proto =
+ GetSafeModeRequestProto.newBuilder().build();
+ try {
+ GetSafeModeResponseProto response =
+ rpcProxy.getSafeMode(null, proto);
+ return new GetSafeModeResponsePBImpl(response);
+ } catch (ServiceException e) {
+ throw new IOException(ProtobufHelper.getRemoteException(e).getMessage());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4aa34324/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/package-info.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/package-info.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/package-info.java
new file mode 100644
index 0000000..6233024
--- /dev/null
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/protocolPB/package-info.java
@@ -0,0 +1,18 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hdfs.protocolPB;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4aa34324/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/FederationMBean.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/FederationMBean.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/FederationMBean.java
new file mode 100644
index 0000000..6412398
--- /dev/null
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/FederationMBean.java
@@ -0,0 +1,217 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hdfs.server.federation.metrics;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+
+/**
+ * JMX interface for the federation statistics.
+ */
+@InterfaceAudience.Private
+@InterfaceStability.Evolving
+public interface FederationMBean {
+
+ /**
+ * Get information about all the namenodes in the federation or null if
+ * failure.
+ * @return JSON with all the Namenodes.
+ */
+ String getNamenodes();
+
+ /**
+ * Get the latest info for each registered nameservice.
+ * @return JSON with all the nameservices.
+ */
+ String getNameservices();
+
+ /**
+ * Get the mount table for the federated filesystem or null if failure.
+ * @return JSON with the mount table.
+ */
+ String getMountTable();
+
+ /**
+ * Get the latest state of all routers.
+ * @return JSON with all of the known routers or null if failure.
+ */
+ String getRouters();
+
+ /**
+ * Get the total capacity of the federated cluster.
+ * @return Total capacity of the federated cluster.
+ */
+ long getTotalCapacity();
+
+ /**
+ * Get the used capacity of the federated cluster.
+ * @return Used capacity of the federated cluster.
+ */
+ long getUsedCapacity();
+
+ /**
+ * Get the remaining capacity of the federated cluster.
+ * @return Remaining capacity of the federated cluster.
+ */
+ long getRemainingCapacity();
+
+ /**
+ * Get the number of nameservices in the federation.
+ * @return Number of nameservices in the federation.
+ */
+ int getNumNameservices();
+
+ /**
+ * Get the number of namenodes.
+ * @return Number of namenodes.
+ */
+ int getNumNamenodes();
+
+ /**
+ * Get the number of expired namenodes.
+ * @return Number of expired namenodes.
+ */
+ int getNumExpiredNamenodes();
+
+ /**
+ * Get the number of live datanodes.
+ * @return Number of live datanodes.
+ */
+ int getNumLiveNodes();
+
+ /**
+ * Get the number of dead datanodes.
+ * @return Number of dead datanodes.
+ */
+ int getNumDeadNodes();
+
+ /**
+ * Get the number of decommissioning datanodes.
+ * @return Number of decommissioning datanodes.
+ */
+ int getNumDecommissioningNodes();
+
+ /**
+ * Get the number of live decommissioned datanodes.
+ * @return Number of live decommissioned datanodes.
+ */
+ int getNumDecomLiveNodes();
+
+ /**
+ * Get the number of dead decommissioned datanodes.
+ * @return Number of dead decommissioned datanodes.
+ */
+ int getNumDecomDeadNodes();
+
+ /**
+ * Get Max, Median, Min and Standard Deviation of DataNodes usage.
+ * @return the DataNode usage information, as a JSON string.
+ */
+ String getNodeUsage();
+
+ /**
+ * Get the number of blocks in the federation.
+ * @return Number of blocks in the federation.
+ */
+ long getNumBlocks();
+
+ /**
+ * Get the number of missing blocks in the federation.
+ * @return Number of missing blocks in the federation.
+ */
+ long getNumOfMissingBlocks();
+
+ /**
+ * Get the number of pending replication blocks in the federation.
+ * @return Number of pending replication blocks in the federation.
+ */
+ long getNumOfBlocksPendingReplication();
+
+ /**
+ * Get the number of under replicated blocks in the federation.
+ * @return Number of under replicated blocks in the federation.
+ */
+ long getNumOfBlocksUnderReplicated();
+
+ /**
+ * Get the number of pending deletion blocks in the federation.
+ * @return Number of pending deletion blocks in the federation.
+ */
+ long getNumOfBlocksPendingDeletion();
+
+ /**
+ * Get the number of files in the federation.
+ * @return Number of files in the federation.
+ */
+ long getNumFiles();
+
+ /**
+ * When the router started.
+ * @return Date as a string the router started.
+ */
+ String getRouterStarted();
+
+ /**
+ * Get the version of the router.
+ * @return Version of the router.
+ */
+ String getVersion();
+
+ /**
+ * Get the compilation date of the router.
+ * @return Compilation date of the router.
+ */
+ String getCompiledDate();
+
+ /**
+ * Get the compilation info of the router.
+ * @return Compilation info of the router.
+ */
+ String getCompileInfo();
+
+ /**
+ * Get the host and port of the router.
+ * @return Host and port of the router.
+ */
+ String getHostAndPort();
+
+ /**
+ * Get the identifier of the router.
+ * @return Identifier of the router.
+ */
+ String getRouterId();
+
+ /**
+ * Get the host and port of the router.
+ * @return Host and port of the router.
+ */
+ String getClusterId();
+
+ /**
+ * Get the host and port of the router.
+ * @return Host and port of the router.
+ */
+ String getBlockPoolId();
+
+ /**
+ * Get the current state of the router.
+ *
+ * @return String label for the current router state.
+ */
+ String getRouterStatus();
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org