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 ae...@apache.org on 2016/02/01 19:41:09 UTC

[50/50] [abbrv] hadoop git commit: Merge branch 'trunk' into HDFS-7240

Merge branch 'trunk' into HDFS-7240

 Conflicts:
	hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
	hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlocksMap.java
	hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
	hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java
	hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/DatanodeHttpServer.java


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/16440b83
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/16440b83
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/16440b83

Branch: refs/heads/HDFS-7240
Commit: 16440b83626a1f11ace8f4f9b61e4de254ff164e
Parents: bbe9e8b 59a212b
Author: Anu Engineer <ae...@apache.org>
Authored: Mon Feb 1 10:36:58 2016 -0800
Committer: Anu Engineer <ae...@apache.org>
Committed: Mon Feb 1 10:36:58 2016 -0800

----------------------------------------------------------------------
 BUILDING.txt                                    |   16 +-
 dev-support/README.md                           |   57 +
 dev-support/bin/releasedocmaker                 |   18 +
 dev-support/bin/shelldocs                       |   18 +
 dev-support/bin/smart-apply-patch               |   18 +
 dev-support/bin/test-patch                      |   18 +
 dev-support/bin/yetus-wrapper                   |  176 ++
 dev-support/releasedocmaker.py                  |  580 ----
 dev-support/shelldocs.py                        |  271 --
 dev-support/smart-apply-patch.sh                |  187 --
 dev-support/test-patch.d/checkstyle.sh          |  205 --
 dev-support/test-patch.d/shellcheck.sh          |  178 --
 dev-support/test-patch.d/whitespace.sh          |   46 -
 dev-support/test-patch.sh                       | 2814 ------------------
 .../main/resources/checkstyle/checkstyle.xml    |   12 +-
 .../server/AuthenticationFilter.java            |   11 +-
 .../security/authentication/util/AuthToken.java |   16 +-
 .../authentication/util/KerberosUtil.java       |   87 +-
 .../server/TestAuthenticationFilter.java        |  167 +-
 .../authentication/util/TestKerberosUtil.java   |   31 +-
 .../util/TestZKSignerSecretProvider.java        |   56 +-
 hadoop-common-project/hadoop-common/CHANGES.txt |  286 +-
 hadoop-common-project/hadoop-common/pom.xml     |   98 +-
 .../hadoop-common/src/CMakeLists.txt            |    3 +-
 .../src/main/bin/hadoop-config.cmd              |   13 +-
 .../src/main/conf/log4j.properties              |    4 +-
 .../crypto/key/kms/KMSClientProvider.java       |   14 +-
 .../apache/hadoop/fs/AbstractFileSystem.java    |    2 +-
 .../hadoop/fs/CommonConfigurationKeys.java      |    5 +
 .../fs/CommonConfigurationKeysPublic.java       |    9 +
 .../org/apache/hadoop/fs/ContentSummary.java    |  241 +-
 .../java/org/apache/hadoop/fs/FileContext.java  |    6 +-
 .../java/org/apache/hadoop/fs/FileSystem.java   |  111 +-
 .../org/apache/hadoop/fs/FilterFileSystem.java  |   11 +
 .../main/java/org/apache/hadoop/fs/FsShell.java |   12 +-
 .../java/org/apache/hadoop/fs/QuotaUsage.java   |  359 +++
 .../apache/hadoop/fs/RawLocalFileSystem.java    |    5 +
 .../main/java/org/apache/hadoop/fs/Trash.java   |   14 +-
 .../java/org/apache/hadoop/fs/TrashPolicy.java  |   56 +-
 .../apache/hadoop/fs/TrashPolicyDefault.java    |  193 +-
 .../hadoop/fs/permission/FsPermission.java      |   25 +-
 .../apache/hadoop/fs/shell/CopyCommands.java    |   40 +-
 .../java/org/apache/hadoop/fs/shell/Count.java  |   37 +-
 .../hadoop/fs/viewfs/ChRootedFileSystem.java    |    7 +-
 .../apache/hadoop/fs/viewfs/ViewFileSystem.java |   15 +-
 .../org/apache/hadoop/ha/SshFenceByTcpPort.java |    4 +-
 .../org/apache/hadoop/http/HttpServer2.java     |   25 +-
 .../apache/hadoop/io/AbstractMapWritable.java   |   54 +-
 .../main/java/org/apache/hadoop/io/IOUtils.java |    5 +-
 .../org/apache/hadoop/io/SortedMapWritable.java |   47 +-
 .../coder/AbstractErasureDecoder.java           |    2 +-
 .../coder/AbstractHHErasureCodingStep.java      |   49 +
 .../erasurecode/coder/HHXORErasureDecoder.java  |   95 +
 .../coder/HHXORErasureDecodingStep.java         |  349 +++
 .../erasurecode/coder/HHXORErasureEncoder.java  |   92 +
 .../coder/HHXORErasureEncodingStep.java         |  146 +
 .../io/erasurecode/coder/util/HHUtil.java       |  216 ++
 .../rawcoder/AbstractRawErasureDecoder.java     |   55 +-
 .../rawcoder/AbstractRawErasureEncoder.java     |   56 +-
 .../erasurecode/rawcoder/RawErasureDecoder.java |    5 +-
 .../erasurecode/rawcoder/RawErasureEncoder.java |    5 +-
 .../main/java/org/apache/hadoop/ipc/Client.java |    5 +-
 .../apache/hadoop/ipc/DecayRpcScheduler.java    |    2 +-
 .../main/java/org/apache/hadoop/ipc/RPC.java    |   19 +-
 .../java/org/apache/hadoop/ipc/RetryCache.java  |    3 +-
 .../metrics2/impl/MetricsSourceAdapter.java     |   17 +-
 .../apache/hadoop/metrics2/lib/MutableStat.java |    6 +-
 .../metrics2/sink/RollingFileSystemSink.java    |  420 +++
 .../apache/hadoop/net/unix/DomainSocket.java    |   59 +-
 .../hadoop/security/NullGroupsMapping.java      |   50 +
 .../hadoop/security/ShellBasedIdMapping.java    |    9 +-
 .../security/ShellBasedUnixGroupsMapping.java   |  181 +-
 .../hadoop/security/UserGroupInformation.java   |   58 +
 .../security/http/RestCsrfPreventionFilter.java |   89 +
 .../org/apache/hadoop/security/token/Token.java |   10 +-
 .../ZKDelegationTokenSecretManager.java         |    2 +-
 .../delegation/web/DelegationTokenManager.java  |    4 +-
 .../org/apache/hadoop/util/JvmPauseMonitor.java |   43 +-
 .../java/org/apache/hadoop/util/LineReader.java |    9 +
 .../hadoop/util/NativeLibraryChecker.java       |   10 +-
 .../main/java/org/apache/hadoop/util/Shell.java |   19 +-
 .../apache/hadoop/util/ShutdownHookManager.java |   31 +-
 .../org/apache/hadoop/util/StringUtils.java     |   19 +-
 .../java/org/apache/hadoop/util/SysInfo.java    |   11 +-
 .../org/apache/hadoop/util/SysInfoLinux.java    |   15 +-
 .../org/apache/hadoop/util/SysInfoWindows.java  |   26 +-
 .../java/org/apache/hadoop/util/ThreadUtil.java |   30 +
 .../java/org/apache/hadoop/util/ToolRunner.java |    6 +
 .../org/apache/hadoop/util/VersionInfo.java     |    6 +-
 .../java/org/apache/hadoop/util/bloom/Key.java  |    4 +-
 .../org/apache/hadoop/util/hash/MurmurHash.java |    9 +-
 .../org/apache/hadoop/io/nativeio/NativeIO.c    |    6 +-
 .../org/apache/hadoop/net/unix/DomainSocket.c   |    2 +-
 .../src/main/resources/core-default.xml         |   53 +-
 .../src/site/markdown/FileSystemShell.md        |   42 +-
 .../src/site/markdown/HttpAuthentication.md     |   52 +-
 .../hadoop-common/src/site/markdown/Metrics.md  |    1 -
 .../src/site/markdown/SecureMode.md             |  303 +-
 .../src/site/markdown/SingleCluster.md.vm       |    4 +-
 .../src/site/markdown/filesystem/testing.md     |    4 +-
 .../org/apache/hadoop/cli/CLITestHelper.java    |    2 +-
 .../conf/TestConfigurationFieldsBase.java       |   14 +-
 .../hadoop/crypto/key/TestValueQueue.java       |   65 +-
 .../apache/hadoop/fs/FCStatisticsBaseTest.java  |   21 +-
 .../fs/FileContextMainOperationsBaseTest.java   |    2 +-
 .../org/apache/hadoop/fs/SymlinkBaseTest.java   |    3 +-
 .../hadoop/fs/TestFileSystemInitialization.java |   16 +
 .../apache/hadoop/fs/TestFilterFileSystem.java  |  264 +-
 .../org/apache/hadoop/fs/TestFsShellCopy.java   |   24 +-
 .../org/apache/hadoop/fs/TestHarFileSystem.java |    5 +
 .../org/apache/hadoop/fs/TestQuotaUsage.java    |  146 +
 .../apache/hadoop/fs/TestSymlinkLocalFS.java    |    4 +-
 .../java/org/apache/hadoop/fs/TestTrash.java    |    9 +
 .../fs/contract/AbstractContractSeekTest.java   |    8 +-
 .../hadoop/fs/contract/ContractOptions.java     |    6 +
 .../hadoop/fs/permission/TestFsPermission.java  |   10 -
 .../org/apache/hadoop/fs/shell/TestCount.java   |  109 +-
 .../apache/hadoop/fs/shell/find/TestFind.java   |   53 +-
 .../org/apache/hadoop/ha/MiniZKFCCluster.java   |    8 +-
 .../apache/hadoop/ha/TestSshFenceByTcpPort.java |    8 +-
 .../hadoop/ha/TestZKFailoverController.java     |  673 ++---
 .../org/apache/hadoop/http/TestHttpServer.java  |    3 -
 .../apache/hadoop/http/TestHttpServerLogs.java  |   80 +
 .../org/apache/hadoop/io/TestSequenceFile.java  |   17 +-
 .../apache/hadoop/io/TestSortedMapWritable.java |   37 +-
 .../io/compress/TestCompressorDecompressor.java |    8 +-
 .../erasurecode/coder/TestErasureCoderBase.java |    4 +-
 .../coder/TestHHErasureCoderBase.java           |   61 +
 .../coder/TestHHXORErasureCoder.java            |  120 +
 .../io/erasurecode/rawcoder/TestRSRawCoder.java |    7 +
 .../erasurecode/rawcoder/TestRawCoderBase.java  |   34 +
 .../java/org/apache/hadoop/ipc/TestIPC.java     |   18 +-
 .../ipc/TestProtoBufRPCCompatibility.java       |  178 ++
 .../java/org/apache/hadoop/ipc/TestRPC.java     |   51 +-
 .../metrics2/impl/TestGangliaMetrics.java       |   10 +-
 .../metrics2/impl/TestMetricsSystemImpl.java    |    1 +
 .../hadoop/metrics2/lib/TestMutableMetrics.java |   14 +
 .../sink/RollingFileSystemSinkTestBase.java     |  506 ++++
 .../sink/TestRollingFileSystemSink.java         |  156 +
 .../hadoop/metrics2/source/TestJvmMetrics.java  |   70 +-
 .../hadoop/security/TestNullGroupsMapping.java  |   60 +
 .../TestShellBasedUnixGroupsMapping.java        |  213 ++
 .../security/TestUserGroupInformation.java      |   48 +-
 .../http/TestRestCsrfPreventionFilter.java      |  276 ++
 .../apache/hadoop/test/GenericTestUtils.java    |   56 +-
 .../hadoop/test/TestTimedOutTestsListener.java  |    2 +-
 .../org/apache/hadoop/util/TestClassUtil.java   |    6 +-
 .../apache/hadoop/util/TestSysInfoLinux.java    |   18 +-
 .../apache/hadoop/util/TestSysInfoWindows.java  |   51 +-
 .../hadoop-common/src/test/proto/test.proto     |    8 +
 .../src/test/proto/test_rpc_service.proto       |   15 +
 .../src/test/resources/testConf.xml             |    9 +-
 .../hadoop-kms/src/main/conf/kms-site.xml       |    6 +-
 .../src/main/tomcat/ssl-server.xml.conf         |    2 +-
 .../hadoop/crypto/key/kms/server/MiniKMS.java   |   28 +-
 .../hadoop/crypto/key/kms/server/TestKMS.java   |   21 +-
 .../crypto/key/kms/server/TestKMSAudit.java     |   14 +-
 .../java/org/apache/hadoop/minikdc/MiniKdc.java |   54 +-
 hadoop-common-project/hadoop-nfs/pom.xml        |    5 +
 hadoop-hdfs-project/hadoop-hdfs-client/pom.xml  |    1 +
 .../apache/hadoop/hdfs/BlockReaderFactory.java  |    2 +-
 .../java/org/apache/hadoop/hdfs/DFSClient.java  |  126 +-
 .../org/apache/hadoop/hdfs/DFSInputStream.java  |  141 +-
 .../org/apache/hadoop/hdfs/DFSOutputStream.java |   28 +-
 .../hadoop/hdfs/DFSStripedInputStream.java      |    2 +-
 .../hadoop/hdfs/DFSStripedOutputStream.java     |   47 +-
 .../org/apache/hadoop/hdfs/DFSUtilClient.java   |    8 +
 .../org/apache/hadoop/hdfs/DataStreamer.java    |    4 +-
 .../hadoop/hdfs/DistributedFileSystem.java      |   90 +
 .../java/org/apache/hadoop/hdfs/PeerCache.java  |    2 +-
 .../org/apache/hadoop/hdfs/protocol/Block.java  |    7 +-
 .../hadoop/hdfs/protocol/ClientProtocol.java    |   18 +-
 .../hdfs/protocol/LocatedStripedBlock.java      |   10 +-
 .../hdfs/protocol/ReconfigurationProtocol.java  |   58 +
 .../ClientDatanodeProtocolTranslatorPB.java     |   46 +-
 .../ClientNamenodeProtocolTranslatorPB.java     |   14 +
 .../hadoop/hdfs/protocolPB/PBHelperClient.java  |  133 +-
 .../protocolPB/ReconfigurationProtocolPB.java   |   43 +
 .../ReconfigurationProtocolTranslatorPB.java    |  146 +
 .../ReconfigurationProtocolUtils.java           |   64 +
 .../hadoop/hdfs/protocolPB/package-info.java    |   18 +
 .../hdfs/shortcircuit/DfsClientShmManager.java  |    2 +-
 .../hadoop/hdfs/util/ExactSizeInputStream.java  |  127 -
 .../hadoop/hdfs/util/StripedBlockUtil.java      |   13 +-
 .../apache/hadoop/hdfs/web/JsonUtilClient.java  |   21 +-
 .../hadoop/hdfs/web/WebHdfsFileSystem.java      |  396 ++-
 .../hdfs/web/resources/DelegationParam.java     |    5 +-
 .../src/main/proto/ClientDatanodeProtocol.proto |   32 +-
 .../src/main/proto/ClientNamenodeProtocol.proto |   11 +
 .../main/proto/ReconfigurationProtocol.proto    |   74 +
 .../src/main/proto/erasurecoding.proto          |    2 +-
 .../src/main/proto/hdfs.proto                   |   13 +-
 .../hdfs/util/TestExactSizeInputStream.java     |  129 -
 .../src/main/tomcat/ssl-server.xml.conf         |    2 +-
 .../src/site/markdown/index.md                  |    2 +-
 .../hadoop-hdfs-native-client/pom.xml           |   48 +-
 .../src/CMakeLists.txt                          |    5 -
 .../src/contrib/libwebhdfs/CMakeLists.txt       |   88 -
 .../libwebhdfs/resources/FindJansson.cmake      |   43 -
 .../contrib/libwebhdfs/src/hdfs_http_client.c   |  490 ---
 .../contrib/libwebhdfs/src/hdfs_http_client.h   |  294 --
 .../contrib/libwebhdfs/src/hdfs_http_query.c    |  402 ---
 .../contrib/libwebhdfs/src/hdfs_http_query.h    |  240 --
 .../contrib/libwebhdfs/src/hdfs_json_parser.c   |  654 ----
 .../contrib/libwebhdfs/src/hdfs_json_parser.h   |  178 --
 .../src/contrib/libwebhdfs/src/hdfs_web.c       | 1538 ----------
 .../libwebhdfs/src/test_libwebhdfs_ops.c        |  552 ----
 .../libwebhdfs/src/test_libwebhdfs_read.c       |   78 -
 .../libwebhdfs/src/test_libwebhdfs_threaded.c   |  247 --
 .../libwebhdfs/src/test_libwebhdfs_write.c      |  111 -
 .../src/main/native/fuse-dfs/doc/README         |   26 +-
 .../main/native/fuse-dfs/fuse_dfs_wrapper.sh    |   34 +-
 .../src/main/native/libhdfs/hdfs.c              |   98 +-
 .../src/main/native/libhdfs/include/hdfs/hdfs.h |   89 +-
 .../hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java    |    3 +-
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt     |  438 ++-
 hadoop-hdfs-project/hadoop-hdfs/pom.xml         |    5 +
 .../bkjournal/TestBootstrapStandbyWithBKJM.java |    1 +
 .../org/apache/hadoop/hdfs/DFSConfigKeys.java   |   17 +-
 ...tDatanodeProtocolServerSideTranslatorPB.java |   58 +-
 ...tNamenodeProtocolServerSideTranslatorPB.java |   16 +
 .../DatanodeProtocolClientSideTranslatorPB.java |   10 +-
 .../DatanodeProtocolServerSideTranslatorPB.java |   13 +-
 .../apache/hadoop/hdfs/protocolPB/PBHelper.java |   38 +-
 ...igurationProtocolServerSideTranslatorPB.java |   89 +
 .../ReconfigurationProtocolServerSideUtils.java |   76 +
 .../hdfs/qjournal/server/JournalNode.java       |    2 +
 .../server/blockmanagement/BlockIdManager.java  |  106 +-
 .../blockmanagement/BlockInfoStriped.java       |    2 +-
 .../server/blockmanagement/BlockManager.java    |  513 ++--
 .../blockmanagement/BlockManagerSafeMode.java   |  638 ++++
 .../BlockPlacementPolicyDefault.java            |   47 +-
 .../BlockPlacementPolicyRackFaultTolerant.java  |    8 +
 .../BlockPlacementPolicyWithNodeGroup.java      |    3 +-
 .../BlockPlacementPolicyWithUpgradeDomain.java  |   19 +-
 .../BlockUnderConstructionFeature.java          |    4 +-
 .../hdfs/server/blockmanagement/BlocksMap.java  |   17 -
 .../blockmanagement/DatanodeDescriptor.java     |   24 +-
 .../server/blockmanagement/DatanodeManager.java |  432 +--
 .../server/blockmanagement/DatanodeStats.java   |   19 +-
 .../blockmanagement/DatanodeStorageInfo.java    |    2 +-
 .../blockmanagement/DecommissionManager.java    |   39 +-
 .../blockmanagement/ErasureCodingWork.java      |    6 +-
 .../blockmanagement/HeartbeatManager.java       |    9 +-
 .../OutOfLegacyGenerationStampsException.java   |   38 +
 .../OutOfV1GenerationStampsException.java       |   38 -
 .../hdfs/server/common/HdfsServerConstants.java |    3 +-
 .../hadoop/hdfs/server/common/Storage.java      |    3 +-
 .../hdfs/server/datanode/BPOfferService.java    |    5 +-
 .../hdfs/server/datanode/BPServiceActor.java    |   12 +-
 .../datanode/BPServiceActorActionException.java |    5 +
 .../hdfs/server/datanode/BlockPoolManager.java  |    4 +-
 .../server/datanode/BlockPoolSliceStorage.java  |  131 +-
 .../hdfs/server/datanode/BlockReceiver.java     |   34 +-
 .../server/datanode/BlockRecoveryWorker.java    |  242 +-
 .../hdfs/server/datanode/BlockSender.java       |    3 +-
 .../hadoop/hdfs/server/datanode/DNConf.java     |   12 +
 .../hadoop/hdfs/server/datanode/DataNode.java   |   81 +-
 .../server/datanode/DataNodeFaultInjector.java  |    2 +
 .../hdfs/server/datanode/DataStorage.java       |  282 +-
 .../hdfs/server/datanode/DataXceiver.java       |  156 +-
 .../hdfs/server/datanode/DataXceiverServer.java |   64 +-
 .../hdfs/server/datanode/DirectoryScanner.java  |   72 +-
 .../hdfs/server/datanode/ErrorReportAction.java |    2 +-
 .../hdfs/server/datanode/ReplicaInfo.java       |   79 +
 .../server/datanode/ReportBadBlockAction.java   |    2 +-
 .../server/datanode/ShortCircuitRegistry.java   |   14 +-
 .../hdfs/server/datanode/StorageLocation.java   |   17 +-
 .../erasurecode/ErasureCodingWorker.java        |  154 +-
 .../datanode/fsdataset/impl/BlockPoolSlice.java |   34 +-
 .../datanode/fsdataset/impl/FsDatasetImpl.java  |  141 +-
 .../datanode/fsdataset/impl/FsVolumeImpl.java   |   13 +-
 .../server/datanode/web/DatanodeHttpServer.java |    4 +-
 .../web/webhdfs/DataNodeUGIProvider.java        |  106 +-
 .../hdfs/server/namenode/CacheManager.java      |    2 +-
 .../hdfs/server/namenode/Checkpointer.java      |    3 +-
 .../hdfs/server/namenode/FSDirAppendOp.java     |   15 +-
 .../hdfs/server/namenode/FSDirConcatOp.java     |   24 +-
 .../hdfs/server/namenode/FSDirDeleteOp.java     |    2 +-
 .../server/namenode/FSDirEncryptionZoneOp.java  |    4 +
 .../server/namenode/FSDirErasureCodingOp.java   |    6 +-
 .../hdfs/server/namenode/FSDirRenameOp.java     |    3 +-
 .../server/namenode/FSDirStatAndListingOp.java  |  159 +-
 .../hdfs/server/namenode/FSDirTruncateOp.java   |    4 +-
 .../hdfs/server/namenode/FSDirWriteFileOp.java  |   17 +-
 .../hdfs/server/namenode/FSDirectory.java       |   59 +-
 .../hadoop/hdfs/server/namenode/FSEditLog.java  |    4 +-
 .../hdfs/server/namenode/FSEditLogLoader.java   |   30 +-
 .../hdfs/server/namenode/FSEditLogOp.java       |    5 +-
 .../hadoop/hdfs/server/namenode/FSImage.java    |   16 +-
 .../hdfs/server/namenode/FSImageFormat.java     |   48 +-
 .../server/namenode/FSImageFormatPBINode.java   |    1 +
 .../server/namenode/FSImageFormatProtobuf.java  |   16 +-
 .../hdfs/server/namenode/FSNamesystem.java      | 1317 ++------
 .../hadoop/hdfs/server/namenode/INodeFile.java  |   56 +-
 .../hdfs/server/namenode/INodesInPath.java      |    4 +-
 .../namenode/IllegalReservedPathException.java  |   39 +
 .../hdfs/server/namenode/LeaseManager.java      |   17 +-
 .../hadoop/hdfs/server/namenode/NNStorage.java  |   18 +-
 .../hadoop/hdfs/server/namenode/NameNode.java   |   37 +-
 .../server/namenode/NameNodeHttpServer.java     |    9 +
 .../hdfs/server/namenode/NameNodeMXBean.java    |    7 -
 .../hdfs/server/namenode/NameNodeRpcServer.java |   87 +-
 .../hdfs/server/namenode/NamenodeFsck.java      |   16 +-
 .../hadoop/hdfs/server/namenode/Namesystem.java |   17 +-
 .../hadoop/hdfs/server/namenode/SafeMode.java   |   18 -
 .../hdfs/server/namenode/SecondaryNameNode.java |   14 +-
 .../server/namenode/ha/BootstrapStandby.java    |   13 +-
 .../hdfs/server/namenode/ha/EditLogTailer.java  |    6 +-
 .../namenode/metrics/NameNodeMetrics.java       |   12 +
 .../server/protocol/BlockECRecoveryCommand.java |   13 +-
 .../server/protocol/BlockRecoveryCommand.java   |   33 +
 .../hdfs/server/protocol/NamenodeProtocols.java |    2 +
 .../org/apache/hadoop/hdfs/tools/DFSAdmin.java  |  258 +-
 .../org/apache/hadoop/hdfs/web/JsonUtil.java    |   16 +
 .../StorageContainerManager.java                |    2 +-
 .../StorageContainerNameService.java            |   49 +-
 .../src/main/proto/DatanodeProtocol.proto       |    1 +
 .../hadoop-hdfs/src/main/proto/HdfsServer.proto |    6 +-
 .../hadoop-hdfs/src/main/proto/fsimage.proto    |    4 +-
 .../src/main/resources/hdfs-default.xml         |  182 +-
 .../src/main/webapps/hdfs/dfshealth.html        |    2 -
 .../src/main/webapps/hdfs/explorer.html         |    9 +-
 .../src/main/webapps/hdfs/explorer.js           |   30 +
 .../bootstrap-3.0.2/css/bootstrap-editable.css  |  655 ++++
 .../static/bootstrap-3.0.2/img/clear.png        |  Bin 0 -> 509 bytes
 .../static/bootstrap-3.0.2/img/loading.gif      |  Bin 0 -> 1849 bytes
 .../js/bootstrap-editable.min.js                |    7 +
 .../hadoop-hdfs/src/site/markdown/HdfsDesign.md |  145 +-
 .../src/site/markdown/HdfsMultihoming.md        |   42 +
 .../src/site/markdown/HdfsPermissionsGuide.md   |   72 +-
 .../org/apache/hadoop/TestRefreshCallQueue.java |    1 +
 .../java/org/apache/hadoop/cli/TestAclCLI.java  |    2 +
 .../apache/hadoop/cli/TestCacheAdminCLI.java    |    2 +
 .../apache/hadoop/cli/TestCryptoAdminCLI.java   |    2 +
 .../org/apache/hadoop/cli/TestDeleteCLI.java    |    2 +
 .../apache/hadoop/cli/TestErasureCodingCLI.java |    2 +
 .../java/org/apache/hadoop/cli/TestHDFSCLI.java |    2 +
 .../org/apache/hadoop/cli/TestXAttrCLI.java     |    2 +
 .../apache/hadoop/fs/TestFcHdfsCreateMkdir.java |    4 +-
 .../apache/hadoop/fs/TestFcHdfsPermission.java  |    4 +-
 .../apache/hadoop/fs/TestFcHdfsSetUMask.java    |    4 +-
 .../org/apache/hadoop/fs/TestSymlinkHdfs.java   |    4 +-
 .../hadoop/fs/contract/hdfs/HDFSContract.java   |    1 +
 .../hadoop/fs/shell/TestHdfsTextCommand.java    |    2 +
 .../fs/viewfs/TestViewFileSystemHdfs.java       |    4 +-
 .../fs/viewfs/TestViewFileSystemWithAcls.java   |    4 +-
 .../fs/viewfs/TestViewFileSystemWithXAttrs.java |    4 +-
 .../hadoop/fs/viewfs/TestViewFsAtHdfsRoot.java  |    4 +-
 .../fs/viewfs/TestViewFsDefaultValue.java       |   53 +-
 .../apache/hadoop/fs/viewfs/TestViewFsHdfs.java |    4 +-
 .../hadoop/fs/viewfs/TestViewFsWithAcls.java    |    4 +-
 .../hadoop/fs/viewfs/TestViewFsWithXAttrs.java  |    4 +-
 .../org/apache/hadoop/hdfs/FileAppendTest4.java |    4 +-
 .../org/apache/hadoop/hdfs/MiniDFSCluster.java  |   41 +-
 .../apache/hadoop/hdfs/StripedFileTestUtil.java |   16 +-
 .../apache/hadoop/hdfs/TestAbandonBlock.java    |   10 +-
 .../hadoop/hdfs/TestBlocksScheduledCounter.java |    2 +
 .../TestClientProtocolForPipelineRecovery.java  |    4 +-
 .../hadoop/hdfs/TestClientReportBadBlock.java   |   10 +-
 .../hadoop/hdfs/TestDFSClientExcludedNodes.java |    1 +
 .../hadoop/hdfs/TestDFSClientFailover.java      |    1 +
 .../hadoop/hdfs/TestDFSClientRetries.java       |   36 +-
 .../hadoop/hdfs/TestDFSClientSocketSize.java    |    1 +
 .../org/apache/hadoop/hdfs/TestDFSFinalize.java |    5 +-
 .../apache/hadoop/hdfs/TestDFSOutputStream.java |    4 +-
 .../apache/hadoop/hdfs/TestDFSPermission.java   |    1 +
 .../org/apache/hadoop/hdfs/TestDFSRollback.java |    5 +-
 .../hadoop/hdfs/TestDFSStartupVersions.java     |    5 +-
 .../hdfs/TestDFSStorageStateRecovery.java       |    5 +-
 .../hadoop/hdfs/TestDFSStripedInputStream.java  |    1 +
 .../hadoop/hdfs/TestDFSStripedOutputStream.java |    1 +
 .../hadoop/hdfs/TestDFSUpgradeFromImage.java    |   16 +-
 .../hadoop/hdfs/TestDataTransferKeepalive.java  |    5 +-
 .../hadoop/hdfs/TestDatanodeRegistration.java   |  140 +-
 .../apache/hadoop/hdfs/TestDecommission.java    |    1 +
 .../hadoop/hdfs/TestDistributedFileSystem.java  |   28 +-
 .../apache/hadoop/hdfs/TestEncryptionZones.java |  136 +-
 .../hadoop/hdfs/TestEncryptionZonesWithHA.java  |    1 +
 .../hadoop/hdfs/TestErasureCodingPolicies.java  |  101 +-
 .../TestErasureCodingPolicyWithSnapshot.java    |    1 +
 .../org/apache/hadoop/hdfs/TestFileAppend.java  |  122 +-
 .../org/apache/hadoop/hdfs/TestFileAppend4.java |   18 +-
 .../hadoop/hdfs/TestFileConcurrentReader.java   |    6 +-
 .../apache/hadoop/hdfs/TestFileCreation.java    |    6 +-
 .../org/apache/hadoop/hdfs/TestFileStatus.java  |    8 +-
 .../hadoop/hdfs/TestFileStatusWithECPolicy.java |    1 +
 .../apache/hadoop/hdfs/TestGetFileChecksum.java |    1 +
 .../hadoop/hdfs/TestHDFSFileSystemContract.java |    6 +-
 .../org/apache/hadoop/hdfs/TestHdfsAdmin.java   |    1 +
 .../apache/hadoop/hdfs/TestLeaseRecovery.java   |    1 +
 .../apache/hadoop/hdfs/TestLeaseRecovery2.java  |   54 +-
 .../hadoop/hdfs/TestLeaseRecoveryStriped.java   |  273 ++
 .../apache/hadoop/hdfs/TestListFilesInDFS.java  |    6 +-
 .../hadoop/hdfs/TestListFilesInFileContext.java |    4 +-
 .../apache/hadoop/hdfs/TestMiniDFSCluster.java  |   19 +-
 .../org/apache/hadoop/hdfs/TestPipelines.java   |    5 +-
 .../java/org/apache/hadoop/hdfs/TestQuota.java  |   66 +-
 .../hdfs/TestReadStripedFileWithDecoding.java   |   18 +-
 .../TestReadStripedFileWithMissingBlocks.java   |    1 +
 .../hadoop/hdfs/TestRecoverStripedFile.java     |  177 +-
 .../hdfs/TestReplaceDatanodeOnFailure.java      |   64 +-
 .../org/apache/hadoop/hdfs/TestReplication.java |    3 +-
 .../hadoop/hdfs/TestReservedRawPaths.java       |    1 +
 .../apache/hadoop/hdfs/TestRollingUpgrade.java  |    1 +
 .../hadoop/hdfs/TestRollingUpgradeRollback.java |    1 +
 .../org/apache/hadoop/hdfs/TestSafeMode.java    |    4 +-
 .../hdfs/TestSafeModeWithStripedFile.java       |    1 +
 .../hadoop/hdfs/TestSetrepIncreasing.java       |   19 +
 .../org/apache/hadoop/hdfs/TestWriteRead.java   |    5 +-
 .../hadoop/hdfs/TestWriteReadStripedFile.java   |    1 +
 .../apache/hadoop/hdfs/UpgradeUtilities.java    |    2 +-
 .../datatransfer/sasl/TestSaslDataTransfer.java |    1 +
 .../hadoop/hdfs/protocolPB/TestPBHelper.java    |   15 +-
 .../hdfs/qjournal/MiniJournalCluster.java       |   38 +
 .../hadoop/hdfs/qjournal/MiniQJMHACluster.java  |   16 +-
 .../hdfs/qjournal/TestMiniJournalCluster.java   |    1 +
 .../hadoop/hdfs/qjournal/TestNNWithQJM.java     |    1 +
 .../hdfs/qjournal/TestSecureNNWithQJM.java      |    3 +
 .../qjournal/client/TestEpochsAreUnique.java    |    1 +
 .../hdfs/qjournal/client/TestQJMWithFaults.java |    3 +
 .../client/TestQuorumJournalManager.java        |   15 +-
 .../qjournal/server/TestJournalNodeMXBean.java  |   11 +-
 .../hdfs/security/TestDelegationToken.java      |    1 +
 .../BaseReplicationPolicyTest.java              |    2 +
 .../blockmanagement/BlockManagerTestUtil.java   |   24 +-
 .../blockmanagement/TestBlockManager.java       |  265 +-
 .../TestBlockManagerSafeMode.java               |  480 +++
 .../blockmanagement/TestBlockStatsMXBean.java   |   63 +
 .../TestBlocksWithNotEnoughRacks.java           |    8 +-
 .../TestComputeInvalidateWork.java              |    2 +
 .../TestPendingInvalidateBlock.java             |   20 +
 .../blockmanagement/TestPendingReplication.java |    4 +-
 .../blockmanagement/TestReplicationPolicy.java  |  144 +-
 .../TestReplicationPolicyWithNodeGroup.java     |   38 +-
 .../TestReplicationPolicyWithUpgradeDomain.java |   32 +
 .../TestSequentialBlockGroupId.java             |   13 +-
 .../blockmanagement/TestSequentialBlockId.java  |   22 +-
 .../server/datanode/BlockReportTestBase.java    |   12 +-
 .../hdfs/server/datanode/DataNodeTestUtils.java |    4 -
 .../server/datanode/FsDatasetTestUtils.java     |   36 +-
 .../server/datanode/SimulatedFSDataset.java     |    5 +-
 .../server/datanode/TestBPOfferService.java     |   32 +-
 .../hdfs/server/datanode/TestBlockRecovery.java |   62 +-
 .../server/datanode/TestBlockReplacement.java   |    7 +-
 .../hdfs/server/datanode/TestDataDirs.java      |   29 +-
 .../hdfs/server/datanode/TestDataNodeExit.java  |    4 +-
 .../datanode/TestDataNodeHotSwapVolumes.java    |   48 +-
 .../datanode/TestDataNodeReconfiguration.java   |  259 ++
 .../datanode/TestDataNodeVolumeFailure.java     |    3 +
 .../TestDataNodeVolumeFailureReporting.java     |    1 +
 .../TestDataNodeVolumeFailureToleration.java    |    1 +
 .../hdfs/server/datanode/TestDataStorage.java   |    7 +-
 .../TestDataXceiverLazyPersistHint.java         |    6 +-
 .../server/datanode/TestDeleteBlockPool.java    |   69 +-
 .../server/datanode/TestDirectoryScanner.java   |   54 +-
 .../hdfs/server/datanode/TestDiskError.java     |   14 +-
 .../server/datanode/TestFsDatasetCache.java     |    2 +
 .../datanode/TestIncrementalBrVariations.java   |   19 +-
 .../server/datanode/TestSimulatedFSDataset.java |   47 +
 .../fsdataset/impl/FsDatasetImplTestUtils.java  |   81 +
 .../fsdataset/impl/FsDatasetTestUtil.java       |   10 +-
 .../fsdataset/impl/LazyPersistTestCase.java     |    2 +-
 .../fsdataset/impl/TestDatanodeRestart.java     |   72 +
 .../fsdataset/impl/TestFsDatasetImpl.java       |   13 +-
 .../web/webhdfs/TestDataNodeUGIProvider.java    |  235 ++
 .../hdfs/server/namenode/FSImageTestUtil.java   |    7 +
 .../hdfs/server/namenode/FSXAttrBaseTest.java   |    2 +-
 .../server/namenode/NNThroughputBenchmark.java  |   44 +-
 .../hdfs/server/namenode/NameNodeAdapter.java   |   12 +-
 .../hdfs/server/namenode/TestAclConfigFlag.java |    1 +
 .../hdfs/server/namenode/TestAddBlock.java      |    1 +
 .../hdfs/server/namenode/TestAddBlockRetry.java |    1 +
 .../TestAddOverReplicatedStripedBlocks.java     |    1 +
 .../server/namenode/TestAddStripedBlocks.java   |    9 +-
 .../hdfs/server/namenode/TestAuditLogs.java     |   12 +-
 .../hdfs/server/namenode/TestBackupNode.java    |   14 +-
 ...stBlockPlacementPolicyRackFaultTolerant.java |    1 +
 .../server/namenode/TestCacheDirectives.java    |    1 +
 .../hdfs/server/namenode/TestCheckpoint.java    |    2 +-
 .../TestCommitBlockSynchronization.java         |    5 +-
 .../TestCommitBlockWithInvalidGenStamp.java     |    1 +
 .../hdfs/server/namenode/TestDeadDatanode.java  |   21 +-
 .../TestDefaultBlockPlacementPolicy.java        |    1 +
 .../namenode/TestDiskspaceQuotaUpdate.java      |    1 +
 .../hdfs/server/namenode/TestEditLog.java       |    6 +-
 .../server/namenode/TestEditLogAutoroll.java    |    2 +
 .../namenode/TestEditLogJournalFailures.java    |    5 +-
 .../hdfs/server/namenode/TestEditLogRace.java   |    2 +-
 .../hdfs/server/namenode/TestFSDirectory.java   |    1 +
 .../server/namenode/TestFSEditLogLoader.java    |   27 +-
 .../hdfs/server/namenode/TestFSImage.java       |    4 +-
 .../server/namenode/TestFSImageWithAcl.java     |    4 +-
 .../namenode/TestFSImageWithSnapshot.java       |    1 +
 .../server/namenode/TestFSImageWithXAttr.java   |    4 +-
 .../hdfs/server/namenode/TestFSNamesystem.java  |   91 +-
 .../hdfs/server/namenode/TestFileTruncate.java  |   20 +-
 .../hadoop/hdfs/server/namenode/TestFsck.java   |   25 +-
 .../hdfs/server/namenode/TestHDFSConcat.java    |   21 +
 .../hdfs/server/namenode/TestHostsFiles.java    |    8 +-
 .../namenode/TestINodeAttributeProvider.java    |    1 +
 .../hdfs/server/namenode/TestINodeFile.java     |   13 +-
 .../hdfs/server/namenode/TestLeaseManager.java  |    4 +-
 .../hdfs/server/namenode/TestMalformedURLs.java |    1 +
 .../hdfs/server/namenode/TestMetaSave.java      |   58 +-
 .../namenode/TestMetadataVersionOutput.java     |    1 +
 .../TestNameNodeMetadataConsistency.java        |   61 +-
 .../namenode/TestNameNodeRetryCacheMetrics.java |    1 +
 .../namenode/TestNameNodeRpcServerMethods.java  |   86 +
 .../server/namenode/TestNamenodeRetryCache.java |    5 +-
 .../server/namenode/TestQuotaByStorageType.java |    1 +
 .../namenode/TestQuotaWithStripedBlocks.java    |    1 +
 .../namenode/TestRecoverStripedBlocks.java      |    5 +-
 .../hdfs/server/namenode/TestSaveNamespace.java |    6 +-
 .../hdfs/server/namenode/TestStartup.java       |    4 +-
 .../server/namenode/TestXAttrConfigFlag.java    |    1 +
 .../hdfs/server/namenode/ha/HATestUtil.java     |    2 +-
 .../namenode/ha/TestBootstrapStandby.java       |   12 +
 .../ha/TestBootstrapStandbyWithQJM.java         |    2 +
 .../hdfs/server/namenode/ha/TestDNFencing.java  |    6 +-
 .../namenode/ha/TestDelegationTokensWithHA.java |    1 +
 .../server/namenode/ha/TestEditLogTailer.java   |    2 +
 .../ha/TestFailoverWithBlockTokensEnabled.java  |    1 +
 .../namenode/ha/TestFailureToReadEdits.java     |   44 +-
 .../server/namenode/ha/TestGetGroupsWithHA.java |    1 +
 .../hdfs/server/namenode/ha/TestHASafeMode.java |   12 +-
 .../namenode/ha/TestInitializeSharedEdits.java  |    1 +
 .../server/namenode/ha/TestNNHealthCheck.java   |    1 +
 .../ha/TestPendingCorruptDnMessages.java        |    2 +-
 .../namenode/ha/TestPipelinesFailover.java      |   43 +-
 .../server/namenode/ha/TestQuotasWithHA.java    |   15 +-
 .../namenode/ha/TestRetryCacheWithHA.java       |    1 +
 .../namenode/ha/TestSeveralNameNodes.java       |    8 +-
 .../namenode/ha/TestStandbyCheckpoints.java     |    1 +
 .../server/namenode/ha/TestXAttrsWithHA.java    |    1 +
 .../TestNNMetricFilesInGetListingOps.java       |    5 +-
 .../namenode/metrics/TestNameNodeMetrics.java   |    5 +-
 .../snapshot/TestFileContextSnapshot.java       |    1 +
 .../TestGetContentSummaryWithSnapshot.java      |    1 +
 ...tINodeFileUnderConstructionWithSnapshot.java |    1 +
 .../namenode/snapshot/TestNestedSnapshots.java  |    1 +
 .../snapshot/TestOpenFilesWithSnapshot.java     |    2 +
 .../snapshot/TestRenameWithSnapshots.java       |    1 +
 .../snapshot/TestSetQuotaWithSnapshot.java      |    1 +
 .../server/namenode/snapshot/TestSnapshot.java  |    1 +
 .../snapshot/TestSnapshotBlocksMap.java         |    1 +
 .../namenode/snapshot/TestSnapshotDeletion.java |    1 +
 .../snapshot/TestSnapshotDiffReport.java        |    1 +
 .../namenode/snapshot/TestSnapshotListing.java  |    1 +
 .../namenode/snapshot/TestSnapshotMetrics.java  |    1 +
 .../namenode/snapshot/TestSnapshotRename.java   |    1 +
 .../snapshot/TestSnapshotReplication.java       |    1 +
 .../snapshot/TestSnapshottableDirListing.java   |    1 +
 .../apache/hadoop/hdfs/tools/TestDFSAdmin.java  |  162 +-
 .../hdfs/tools/TestDFSHAAdminMiniCluster.java   |    5 +-
 .../hdfs/tools/TestDFSZKFailoverController.java |    8 +-
 .../apache/hadoop/hdfs/tools/TestGetGroups.java |    5 +-
 .../hdfs/tools/TestStoragePolicyCommands.java   |    2 +
 .../hadoop/hdfs/util/TestStripedBlockUtil.java  |    4 +-
 .../hadoop/hdfs/web/TestHttpsFileSystem.java    |    4 +-
 .../org/apache/hadoop/hdfs/web/TestWebHDFS.java |  189 ++
 .../hdfs/web/TestWebHdfsFileSystemContract.java |    2 +-
 .../hadoop/hdfs/web/TestWebHdfsTimeouts.java    |   14 +-
 .../hadoop/hdfs/web/TestWebHdfsTokens.java      |    6 +-
 .../apache/hadoop/hdfs/web/TestWebHdfsUrl.java  |    5 +-
 .../TestWebHdfsWithAuthenticationFilter.java    |    8 +-
 .../apache/hadoop/security/TestPermission.java  |   23 +-
 .../security/TestRefreshUserMappings.java       |    2 +
 .../org/apache/hadoop/tools/TestJMXGet.java     |   17 +-
 .../org/apache/hadoop/tracing/TestTracing.java  |    5 +-
 hadoop-mapreduce-project/CHANGES.txt            |  184 +-
 .../dev-support/findbugs-exclude.xml            |    2 +
 .../org/apache/hadoop/mapred/YarnChild.java     |    4 +
 .../jobhistory/JobHistoryEventHandler.java      |   18 +-
 .../hadoop/mapreduce/v2/app/MRAppMaster.java    |    7 +-
 .../v2/app/TaskAttemptFinishingMonitor.java     |    2 +-
 .../v2/app/job/impl/TaskAttemptImpl.java        |   13 +-
 .../v2/app/local/LocalContainerAllocator.java   |    6 +
 .../v2/app/rm/RMContainerAllocator.java         |   12 +
 .../mapreduce/v2/app/webapp/ConfBlock.java      |    3 +-
 .../mapreduce/v2/app/webapp/TaskPage.java       |    2 +-
 .../mapreduce/v2/app/webapp/TasksPage.java      |    2 +-
 .../mapred/TestTaskAttemptFinishingMonitor.java |    2 +-
 .../mapred/TestTaskAttemptListenerImpl.java     |    4 +-
 .../jobhistory/TestJobHistoryEventHandler.java  |   14 +-
 .../apache/hadoop/mapreduce/v2/app/MRApp.java   |   10 +-
 .../mapreduce/v2/app/TestMRAppMaster.java       |   26 +-
 .../hadoop/mapreduce/v2/app/TestRecovery.java   |    2 +-
 .../mapreduce/v2/app/TestRuntimeEstimators.java |    2 +-
 .../v2/app/TestTaskHeartbeatHandler.java        |    2 +-
 .../app/commit/TestCommitterEventHandler.java   |    2 +-
 .../mapreduce/v2/app/job/impl/TestJobImpl.java  |   10 +-
 .../v2/app/job/impl/TestShuffleProvider.java    |    2 +-
 .../v2/app/job/impl/TestTaskAttempt.java        |   28 +-
 .../impl/TestTaskAttemptContainerRequest.java   |    2 +-
 .../mapreduce/v2/app/job/impl/TestTaskImpl.java |    2 +-
 .../app/local/TestLocalContainerAllocator.java  |    5 +-
 .../v2/app/rm/TestRMContainerAllocator.java     |   14 +-
 .../apache/hadoop/mapreduce/TypeConverter.java  |   48 +-
 .../v2/jobhistory/FileNameIndexUtils.java       |  171 +-
 .../org/apache/hadoop/mapred/TestJobClient.java |   10 +
 .../hadoop/mapreduce/TestTypeConverter.java     |    4 +
 .../v2/jobhistory/TestFileNameIndexUtils.java   |  199 +-
 .../org/apache/hadoop/mapred/JobClient.java     |    3 +-
 .../java/org/apache/hadoop/mapred/JobConf.java  |   92 +-
 .../org/apache/hadoop/mapred/JobPriority.java   |    6 +
 .../org/apache/hadoop/mapred/JobStatus.java     |    2 +-
 .../java/org/apache/hadoop/mapred/Merger.java   |    6 +-
 .../org/apache/hadoop/mapreduce/Cluster.java    |   67 +-
 .../java/org/apache/hadoop/mapreduce/Job.java   |   73 +-
 .../apache/hadoop/mapreduce/JobPriority.java    |    7 +-
 .../apache/hadoop/mapreduce/MRJobConfig.java    |   21 +-
 .../mapreduce/jobhistory/EventReader.java       |   39 +-
 .../lib/input/UncompressedSplitLineReader.java  |    5 +
 .../org/apache/hadoop/mapreduce/tools/CLI.java  |   70 +-
 .../src/main/resources/mapred-default.xml       |  186 +-
 .../hadoop/mapreduce/JobCounter.properties      |    8 +-
 .../src/site/markdown/MapReduceTutorial.md      |    6 +-
 .../org/apache/hadoop/mapred/TestJobConf.java   |   47 +-
 .../hadoop/mapred/TestLineRecordReader.java     |  230 +-
 .../org/apache/hadoop/mapred/TestTaskLog.java   |   22 +-
 .../org/apache/hadoop/mapreduce/TestJob.java    |    2 +-
 .../lib/input/TestLineRecordReader.java         |  237 +-
 .../apache/hadoop/mapreduce/tools/TestCLI.java  |   31 +-
 .../mapreduce/v2/hs/HistoryFileManager.java     |   39 +-
 .../mapreduce/v2/hs/JobHistoryServer.java       |    7 +-
 .../mapreduce/v2/hs/webapp/HsTaskPage.java      |    2 +-
 .../mapreduce/v2/hs/webapp/HsTasksPage.java     |    2 +-
 .../mapreduce/v2/hs/TestHistoryFileManager.java |    5 +-
 .../mapreduce/v2/hs/TestJobHistoryServer.java   |    1 -
 .../mapreduce/v2/hs/webapp/TestHSWebApp.java    |   26 +
 .../org/apache/hadoop/mapred/ClientCache.java   |   24 +-
 .../hadoop/mapred/ClientServiceDelegate.java    |   16 +
 .../hadoop/mapred/ResourceMgrDelegate.java      |    4 +-
 .../org/apache/hadoop/mapred/YARNRunner.java    |   35 +-
 .../mapred/YarnClientProtocolProvider.java      |    5 +-
 .../java/org/apache/hadoop/fs/TestDFSIO.java    |   23 +-
 .../java/org/apache/hadoop/hdfs/NNBench.java    |  134 +-
 .../hadoop/mapred/TestMiniMRChildTask.java      |   68 +-
 .../apache/hadoop/mapred/TestYARNRunner.java    |   72 +-
 .../hadoop/mapreduce/TestMRJobClient.java       |    5 +-
 .../TestYarnClientProtocolProvider.java         |    6 +-
 .../apache/hadoop/mapreduce/v2/TestMRJobs.java  |   63 +
 .../v2/TestSpeculativeExecutionWithMRApp.java   |    4 +-
 .../hadoop-mapreduce-client-nativetask/pom.xml  |   49 +-
 .../maven/plugin/cmakebuilder/CompileMojo.java  |  266 ++
 .../maven/plugin/cmakebuilder/TestMojo.java     |  392 +++
 .../apache/hadoop/maven/plugin/util/Exec.java   |   52 +-
 hadoop-project-dist/pom.xml                     |   88 +-
 hadoop-project/pom.xml                          |    8 +-
 .../apache/hadoop/tools/HadoopArchiveLogs.java  |   18 +-
 .../hadoop/tools/HadoopArchiveLogsRunner.java   |   66 +-
 .../src/site/markdown/HadoopArchiveLogs.md      |   17 +
 .../hadoop/tools/TestHadoopArchiveLogs.java     |   34 +-
 .../tools/TestHadoopArchiveLogsRunner.java      |   21 +-
 hadoop-tools/hadoop-archives/pom.xml            |   11 -
 hadoop-tools/hadoop-aws/pom.xml                 |   18 +-
 .../hadoop/fs/s3/Jets3tFileSystemStore.java     |    8 +-
 .../org/apache/hadoop/fs/s3/S3FileSystem.java   |   58 +-
 .../org/apache/hadoop/fs/s3/S3InputStream.java  |   17 +-
 .../org/apache/hadoop/fs/s3a/Constants.java     |    2 +
 .../main/java/org/apache/hadoop/fs/s3a/S3A.java |   47 +
 .../org/apache/hadoop/fs/s3a/S3AFileStatus.java |   27 +-
 .../org/apache/hadoop/fs/s3a/S3AFileSystem.java |   17 +-
 .../src/site/markdown/tools/hadoop-aws/index.md |   12 +-
 .../hadoop/fs/contract/s3/S3Contract.java       |   40 +
 .../fs/contract/s3/TestS3ContractCreate.java    |   32 +
 .../fs/contract/s3/TestS3ContractDelete.java    |   31 +
 .../fs/contract/s3/TestS3ContractMkdir.java     |   32 +
 .../fs/contract/s3/TestS3ContractOpen.java      |   32 +
 .../fs/contract/s3/TestS3ContractRename.java    |   32 +
 .../fs/contract/s3/TestS3ContractRootDir.java   |   34 +
 .../fs/contract/s3/TestS3ContractSeek.java      |   32 +
 .../org/apache/hadoop/fs/s3a/S3ATestUtils.java  |   21 +
 .../fs/s3a/fileContext/TestS3AFileContext.java  |   23 +
 .../TestS3AFileContextCreateMkdir.java          |   35 +
 .../TestS3AFileContextMainOperations.java       |   60 +
 .../TestS3AFileContextStatistics.java           |   60 +
 .../s3a/fileContext/TestS3AFileContextURI.java  |   43 +
 .../s3a/fileContext/TestS3AFileContextUtil.java |   34 +
 .../org/apache/hadoop/fs/s3a/yarn/TestS3A.java  |   83 +
 .../fs/s3a/yarn/TestS3AMiniYarnCluster.java     |  144 +
 .../src/test/resources/contract/s3.xml          |  104 +
 .../hadoop-aws/src/test/resources/core-site.xml |   47 +-
 .../fs/azure/AzureNativeFileSystemStore.java    |   23 +-
 .../hadoop/fs/azure/BlockBlobAppendStream.java  |  775 +++++
 .../hadoop/fs/azure/NativeAzureFileSystem.java  |  591 +++-
 .../fs/azure/NativeAzureFileSystemHelper.java   |  107 +
 .../hadoop/fs/azure/NativeFileSystemStore.java  |    2 +
 .../hadoop/fs/azure/PageBlobOutputStream.java   |   17 +-
 .../hadoop/fs/azure/StorageInterface.java       |   89 +-
 .../hadoop/fs/azure/StorageInterfaceImpl.java   |   33 +-
 .../hadoop-azure/src/site/markdown/index.md     |   20 +-
 .../fs/azure/ExceptionHandlingTestHelper.java   |   67 +
 .../hadoop/fs/azure/MockStorageInterface.java   |   34 +-
 .../fs/azure/NativeAzureFileSystemBaseTest.java |   57 +
 ...estFileSystemOperationExceptionHandling.java |  177 +-
 ...perationsExceptionHandlingMultiThreaded.java |  184 +-
 .../azure/TestNativeAzureFileSystemAppend.java  |  362 +++
 .../fs/azure/TestNativeAzureFileSystemLive.java |   22 +
 hadoop-tools/hadoop-datajoin/pom.xml            |    5 +-
 .../java/org/apache/hadoop/tools/DistCp.java    |   11 +-
 .../apache/hadoop/tools/DistCpOptionSwitch.java |    2 +-
 .../apache/hadoop/tools/RegexCopyFilter.java    |   10 +-
 .../apache/hadoop/tools/SimpleCopyListing.java  |   14 +-
 .../hadoop/tools/mapred/CopyCommitter.java      |   10 +-
 .../hadoop/tools/mapred/CopyOutputFormat.java   |    5 +-
 .../tools/mapred/RetriableFileCopyCommand.java  |    6 +-
 .../tools/mapred/UniformSizeInputFormat.java    |    6 +-
 .../apache/hadoop/tools/util/DistCpUtils.java   |   21 +-
 .../hadoop/tools/util/ProducerConsumer.java     |   65 +-
 .../hadoop/tools/util/ThrottledInputStream.java |    7 +-
 .../hadoop/tools/util/WorkRequestProcessor.java |    5 +-
 .../src/site/markdown/DistCp.md.vm              |    8 +-
 .../apache/hadoop/tools/TestOptionsParser.java  |    3 +-
 .../hadoop/tools/mapred/TestCopyMapper.java     |   22 +-
 .../hadoop/tools/util/TestDistCpUtils.java      |    1 +
 .../hadoop/tools/util/TestProducerConsumer.java |   84 +
 .../org/apache/hadoop/tools/TestDistCh.java     |    3 +-
 hadoop-tools/hadoop-gridmix/pom.xml             |    5 +-
 .../gridmix/DistributedCacheEmulator.java       |    4 +-
 .../hadoop/mapred/gridmix/CommonJobTest.java    |    2 +-
 .../gridmix/DummyResourceCalculatorPlugin.java  |    2 +-
 .../mapred/gridmix/TestPseudoLocalFs.java       |    2 +-
 hadoop-tools/hadoop-pipes/pom.xml               |   69 +-
 .../apache/hadoop/tools/rumen/JobBuilder.java   |   11 +-
 .../src/main/data/2jobs2min-rumen-jh.json       |  606 ++++
 .../org/apache/hadoop/yarn/sls/SLSRunner.java   |    6 +
 .../hadoop/yarn/sls/appmaster/AMSimulator.java  |    2 +-
 .../hadoop/yarn/sls/nodemanager/NodeInfo.java   |   11 +
 .../yarn/sls/scheduler/RMNodeWrapper.java       |   14 +-
 .../sls/scheduler/ResourceSchedulerWrapper.java |   12 +-
 .../apache/hadoop/yarn/sls/utils/SLSUtils.java  |   17 +-
 .../yarn/sls/nodemanager/TestNMSimulator.java   |    2 +-
 .../hadoop/yarn/sls/utils/TestSLSUtils.java     |    5 +
 .../typedbytes/TypedBytesWritableInput.java     |   13 +-
 .../typedbytes/TypedBytesWritableOutput.java    |    6 +-
 .../src/site/markdown/HadoopStreaming.md.vm     |    6 +-
 .../apache/hadoop/streaming/DelayEchoApp.java   |    2 +-
 hadoop-yarn-project/CHANGES.txt                 |  445 ++-
 .../dev-support/findbugs-exclude.xml            |   20 +
 .../UpdateApplicationPriorityResponse.java      |   18 +-
 .../yarn/api/records/AMBlackListingRequest.java |   67 +
 .../records/ApplicationSubmissionContext.java   |   23 +
 .../yarn/api/records/ContainerStatus.java       |   24 +
 .../hadoop/yarn/api/records/ExecutionType.java  |   43 +
 .../api/records/FinalApplicationStatus.java     |    5 +-
 .../hadoop/yarn/api/records/NodeReport.java     |   25 +
 .../hadoop/yarn/api/records/QueueInfo.java      |   16 +-
 .../yarn/api/records/ResourceUtilization.java   |  150 +
 .../records/timeline/TimelineEntityGroupId.java |  163 +
 .../hadoop/yarn/conf/YarnConfiguration.java     |  206 +-
 .../InvalidLabelResourceRequestException.java   |   49 +
 .../yarn/server/api/ContainerContext.java       |   22 +
 .../src/main/proto/yarn_protos.proto            |   21 +
 .../src/main/proto/yarn_service_protos.proto    |    8 +-
 .../yarn/conf/TestYarnConfigurationFields.java  |    7 +
 .../distributedshell/ApplicationMaster.java     |   25 +-
 .../hadoop/yarn/client/api/YarnClient.java      |    4 +-
 .../yarn/client/api/impl/YarnClientImpl.java    |    4 +-
 .../hadoop/yarn/client/cli/ApplicationCLI.java  |   76 +-
 .../apache/hadoop/yarn/client/cli/NodeCLI.java  |   97 +-
 .../apache/hadoop/yarn/client/cli/QueueCLI.java |    6 +
 .../hadoop/yarn/client/cli/RMAdminCLI.java      |   13 +-
 .../hadoop/yarn/client/ProtocolHATestBase.java  |    4 +-
 ...stHedgingRequestRMFailoverProxyProvider.java |   98 +
 .../api/impl/TestAMRMClientOnRMRestart.java     |    1 +
 .../hadoop/yarn/client/cli/TestRMAdminCLI.java  |   18 +-
 .../hadoop/yarn/client/cli/TestYarnCLI.java     |  343 ++-
 .../impl/pb/AllocateResponsePBImpl.java         |    4 +-
 ...UpdateApplicationPriorityResponsePBImpl.java |   63 +
 .../impl/pb/AMBlackListingRequestPBImpl.java    |  104 +
 .../pb/ApplicationSubmissionContextPBImpl.java  |   40 +
 .../records/impl/pb/ContainerStatusPBImpl.java  |   31 +-
 .../api/records/impl/pb/NodeReportPBImpl.java   |   73 +
 .../yarn/api/records/impl/pb/ProtoUtils.java    |   12 +
 .../api/records/impl/pb/QueueInfoPBImpl.java    |   13 +
 .../impl/pb/ResourceUtilizationPBImpl.java      |  104 +
 .../ConfiguredRMFailoverProxyProvider.java      |    6 +-
 .../org/apache/hadoop/yarn/client/NMProxy.java  |    9 +-
 .../org/apache/hadoop/yarn/client/RMProxy.java  |   50 +-
 .../RequestHedgingRMFailoverProxyProvider.java  |  194 ++
 .../apache/hadoop/yarn/client/ServerProxy.java  |    1 +
 .../hadoop/yarn/client/api/TimelineClient.java  |   43 +
 .../client/api/impl/DirectTimelineWriter.java   |   66 +
 .../api/impl/FileSystemTimelineWriter.java      |  847 ++++++
 .../client/api/impl/TimelineClientImpl.java     |  124 +-
 .../yarn/client/api/impl/TimelineWriter.java    |  142 +
 .../hadoop/yarn/event/AsyncDispatcher.java      |    7 +-
 .../nodelabels/CommonNodeLabelsManager.java     |   18 +-
 .../nodelabels/FileSystemNodeLabelsStore.java   |   71 +-
 .../hadoop/yarn/nodelabels/NodeLabelsStore.java |   16 +-
 .../NonAppendableFSNodeLabelStore.java          |  134 +
 .../hadoop/yarn/security/AccessRequest.java     |   70 +
 .../yarn/security/ConfiguredYarnAuthorizer.java |   44 +-
 .../yarn/security/ContainerTokenIdentifier.java |   35 +-
 .../apache/hadoop/yarn/security/Permission.java |   47 +
 .../security/YarnAuthorizationProvider.java     |   30 +-
 .../yarn/util/AbstractLivelinessMonitor.java    |    4 +
 .../apache/hadoop/yarn/util/MonotonicClock.java |   46 +
 .../yarn/util/ProcfsBasedProcessTree.java       |    4 +-
 .../yarn/util/ResourceCalculatorPlugin.java     |   15 +-
 .../apache/hadoop/yarn/util/SystemClock.java    |   16 +-
 .../yarn/util/WindowsBasedProcessTree.java      |   51 +-
 .../hadoop/yarn/webapp/view/JQueryUI.java       |   21 +-
 .../src/main/proto/yarn_security_token.proto    |    1 +
 .../webapps/static/dt-sorting/natural.js        |   54 +
 .../src/main/resources/yarn-default.xml         |  143 +
 .../hadoop/yarn/api/TestPBImplRecords.java      |   14 +-
 .../yarn/api/TestTimelineEntityGroupId.java     |   52 +
 .../client/api/impl/TestTimelineClient.java     |   68 +-
 .../api/impl/TestTimelineClientForATS1_5.java   |  225 ++
 .../DummyCommonNodeLabelsManager.java           |    6 +-
 .../TestFileSystemNodeLabelsStore.java          |   53 +-
 .../yarn/security/TestYARNTokenIdentifier.java  |   13 +-
 .../hadoop/yarn/util/ControlledClock.java       |    2 +-
 .../yarn/util/TestProcfsBasedProcessTree.java   |    9 +-
 .../yarn/util/TestWindowsBasedProcessTree.java  |   25 +-
 .../apache/hadoop/yarn/webapp/TestWebApp.java   |    4 +-
 .../pom.xml                                     |   11 +
 ...pplicationHistoryManagerOnTimelineStore.java |    7 +
 .../ApplicationHistoryServer.java               |   14 +-
 .../FileSystemApplicationHistoryStore.java      |   17 +-
 .../webapp/AppAttemptPage.java                  |    2 +-
 .../webapp/AppPage.java                         |    2 +-
 .../timeline/KeyValueBasedTimelineStore.java    |  574 ++++
 .../server/timeline/MemoryTimelineStore.java    |  491 +--
 .../server/timeline/TimelineDataManager.java    |    7 +-
 .../timeline/TimelineDataManagerMetrics.java    |   11 +-
 .../timeline/TimelineStoreMapAdapter.java       |   60 +
 .../yarn/server/timeline/util/LeveldbUtils.java |    7 +
 .../timeline/webapp/TimelineWebServices.java    |    2 +
 .../TestApplicationHistoryClientService.java    |    1 +
 ...pplicationHistoryManagerOnTimelineStore.java |    1 +
 .../TestApplicationHistoryServer.java           |    1 -
 .../webapp/TestAHSWebApp.java                   |   50 +-
 .../webapp/TestAHSWebServices.java              |    1 +
 .../timeline/TestTimelineDataManager.java       |    1 +
 .../webapp/TestTimelineWebServices.java         |   21 +
 .../webapp/TestTimelineWebServicesWithSSL.java  |   21 +-
 .../hadoop/yarn/server/api/ServerRMProxy.java   |   22 +-
 .../impl/pb/NMContainerStatusPBImpl.java        |   14 +-
 .../pb/RegisterNodeManagerRequestPBImpl.java    |   75 +-
 .../yarn/server/api/records/NodeStatus.java     |    1 +
 .../server/api/records/ResourceUtilization.java |  133 -
 .../api/records/impl/pb/NodeStatusPBImpl.java   |    5 +-
 .../impl/pb/ResourceUtilizationPBImpl.java      |  104 -
 .../metrics/ApplicationMetricsConstants.java    |    6 +
 .../hadoop/yarn/server/utils/BuilderUtils.java  |   15 +-
 .../hadoop/yarn/server/webapp/WebPageUtils.java |    6 +-
 .../main/proto/yarn_server_common_protos.proto  |    5 -
 .../hadoop-yarn-server-nodemanager/pom.xml      |   45 +-
 .../server/nodemanager/ContainerExecutor.java   |   24 +-
 .../nodemanager/DockerContainerExecutor.java    |   11 +-
 .../nodemanager/LinuxContainerExecutor.java     |   32 +-
 .../yarn/server/nodemanager/NodeManager.java    |    7 +-
 .../server/nodemanager/NodeResourceMonitor.java |    2 +-
 .../nodemanager/NodeResourceMonitorImpl.java    |    6 +-
 .../nodemanager/NodeStatusUpdaterImpl.java      |   10 +-
 .../containermanager/ContainerManagerImpl.java  |    6 +
 .../container/ContainerImpl.java                |   10 +-
 .../launcher/ContainerLaunch.java               |  180 +-
 .../launcher/RecoveredContainerLaunch.java      |    7 +-
 .../CGroupsCpuResourceHandlerImpl.java          |  235 ++
 .../linux/resources/CGroupsHandler.java         |   13 +-
 .../linux/resources/CGroupsHandlerImpl.java     |    2 +-
 .../CGroupsMemoryResourceHandlerImpl.java       |  156 +
 .../linux/resources/CpuResourceHandler.java     |   32 +
 .../linux/resources/MemoryResourceHandler.java  |   27 +
 .../linux/resources/ResourceHandlerModule.java  |   64 +-
 .../DelegatingLinuxContainerRuntime.java        |   12 +-
 .../runtime/DockerLinuxContainerRuntime.java    |   49 +-
 .../runtime/LinuxContainerRuntimeConstants.java |    4 +
 .../localizer/ResourceLocalizationService.java  |    2 +-
 .../logaggregation/AppLogAggregatorImpl.java    |    6 +-
 .../monitor/ContainersMonitor.java              |    2 +-
 .../monitor/ContainersMonitorImpl.java          |    2 +-
 .../executor/ContainerStartContext.java         |   24 +
 .../util/CgroupsLCEResourcesHandler.java        |   70 +-
 .../util/DefaultLCEResourcesHandler.java        |    1 +
 .../nodemanager/util/LCEResourcesHandler.java   |    1 +
 .../nodemanager/webapp/AllApplicationsPage.java |    9 +-
 .../nodemanager/webapp/AllContainersPage.java   |    8 +-
 .../container-executor/impl/configuration.c     |    2 +-
 .../test/test-container-executor.c              |    7 +
 .../nodemanager/TestLinuxContainerExecutor.java |    9 +
 .../nodemanager/TestNodeManagerResync.java      |    3 +
 .../nodemanager/TestNodeManagerShutdown.java    |    3 +
 .../nodemanager/TestNodeStatusUpdater.java      |   99 +-
 .../amrmproxy/MockResourceManagerFacade.java    |    6 +-
 .../containermanager/TestNMProxy.java           |   34 +-
 .../container/TestContainer.java                |   59 +-
 .../launcher/TestContainerLaunch.java           |  252 +-
 .../TestCGroupsCpuResourceHandlerImpl.java      |  297 ++
 .../TestCGroupsMemoryResourceHandlerImpl.java   |  172 ++
 .../runtime/TestDockerContainerRuntime.java     |   60 +-
 .../TestResourceLocalizationService.java        |   20 +-
 .../monitor/MockResourceCalculatorPlugin.java   |    2 +-
 .../util/TestCgroupsLCEResourcesHandler.java    |    1 +
 .../util/TestNodeManagerHardwareUtils.java      |    2 +-
 .../hadoop-yarn-server-resourcemanager/pom.xml  |   11 +
 .../server/resourcemanager/AdminService.java    |   49 +-
 .../server/resourcemanager/ClientRMService.java |   51 +-
 .../server/resourcemanager/ClusterMetrics.java  |   20 +-
 .../resourcemanager/LeaderElectorService.java   |  129 +
 .../resourcemanager/NMLivelinessMonitor.java    |    3 +-
 .../resourcemanager/NodesListManager.java       |   25 +-
 .../resourcemanager/RMActiveServiceContext.java |    2 +-
 .../server/resourcemanager/RMAppManager.java    |   48 +-
 .../server/resourcemanager/RMAuditLogger.java   |   76 +-
 .../yarn/server/resourcemanager/RMContext.java  |    4 +
 .../server/resourcemanager/RMContextImpl.java   |   11 +
 .../server/resourcemanager/RMServerUtils.java   |   76 +-
 .../server/resourcemanager/ResourceManager.java |  155 +-
 .../resourcemanager/ResourceTrackerService.java |   10 +-
 .../metrics/AppAttemptFinishedEvent.java        |   10 +-
 .../metrics/ApplicationCreatedEvent.java        |   11 +-
 .../metrics/SystemMetricsPublisher.java         |   55 +-
 .../ProportionalCapacityPreemptionPolicy.java   |   12 +-
 .../recovery/FileSystemRMStateStore.java        |   12 +
 .../recovery/LeveldbRMStateStore.java           |   32 +
 .../recovery/MemoryRMStateStore.java            |   13 +
 .../recovery/NullRMStateStore.java              |    6 +
 .../resourcemanager/recovery/RMStateStore.java  |   76 +-
 .../recovery/RMStateStoreEventType.java         |    1 +
 .../RMStateStoreRemoveAppAttemptEvent.java      |   37 +
 .../recovery/ZKRMStateStore.java                |  127 +-
 .../recovery/records/ApplicationStateData.java  |   30 +-
 .../impl/pb/ApplicationStateDataPBImpl.java     |   34 +
 .../reservation/CapacityOverTimePolicy.java     |   52 +-
 .../reservation/InMemoryPlan.java               |  129 +-
 .../InMemoryReservationAllocation.java          |   15 +-
 .../reservation/NoOverCommitPolicy.java         |    8 +
 .../resourcemanager/reservation/PlanView.java   |   66 +-
 .../RLESparseResourceAllocation.java            |  380 ++-
 .../reservation/ReservationAllocation.java      |   12 +-
 .../reservation/SharingPolicy.java              |   24 +-
 .../reservation/planning/IterativePlanner.java  |   22 +-
 .../reservation/planning/PlanningAlgorithm.java |   34 +-
 .../reservation/planning/StageAllocator.java    |    6 +-
 .../planning/StageAllocatorGreedy.java          |   23 +-
 .../planning/StageAllocatorLowCostAligned.java  |   17 +-
 .../server/resourcemanager/rmapp/RMApp.java     |    3 +
 .../server/resourcemanager/rmapp/RMAppImpl.java |  193 +-
 .../rmapp/attempt/AMLivelinessMonitor.java      |    3 +-
 .../rmapp/attempt/RMAppAttempt.java             |    6 +
 .../rmapp/attempt/RMAppAttemptImpl.java         |   63 +-
 .../rmcontainer/ContainerAllocationExpirer.java |    3 +-
 .../rmcontainer/RMContainerImpl.java            |   17 +-
 .../server/resourcemanager/rmnode/RMNode.java   |   15 +-
 .../resourcemanager/rmnode/RMNodeImpl.java      |  129 +-
 .../rmnode/RMNodeStatusEvent.java               |   53 +-
 .../scheduler/AbstractYarnScheduler.java        |  123 +-
 .../scheduler/AppSchedulingInfo.java            |  443 ++-
 .../scheduler/ContainerPreemptEvent.java        |   57 -
 .../scheduler/PreemptableResourceScheduler.java |    6 +-
 .../resourcemanager/scheduler/QueueMetrics.java |   56 +-
 .../scheduler/ResourceUsage.java                |   62 +-
 .../scheduler/SchedContainerChangeRequest.java  |   33 +-
 .../scheduler/SchedulerApplicationAttempt.java  |  138 +-
 .../scheduler/SchedulerNode.java                |   38 +
 .../scheduler/SchedulerUtils.java               |    6 +-
 .../scheduler/capacity/AbstractCSQueue.java     |   39 +-
 ...CSAMContainerLaunchDiagnosticsConstants.java |   35 +
 .../scheduler/capacity/CSQueue.java             |   15 +-
 .../scheduler/capacity/CapacityScheduler.java   |  240 +-
 .../CapacitySchedulerConfiguration.java         |   13 +
 .../scheduler/capacity/LeafQueue.java           |  201 +-
 .../scheduler/capacity/ParentQueue.java         |    4 +-
 .../capacity/PartitionedQueueComparator.java    |   10 +-
 .../scheduler/capacity/QueueCapacities.java     |    9 +
 .../scheduler/capacity/UserInfo.java            |    8 +-
 .../allocator/RegularContainerAllocator.java    |   16 +-
 .../scheduler/common/fica/FiCaSchedulerApp.java |  100 +-
 .../scheduler/event/ContainerPreemptEvent.java  |   56 +
 .../event/ContainerRescheduledEvent.java        |   35 -
 .../scheduler/event/SchedulerEventType.java     |   11 +-
 .../scheduler/fair/AllocationConfiguration.java |   11 +-
 .../fair/AllocationFileLoaderService.java       |   18 +-
 .../scheduler/fair/FSAppAttempt.java            |   44 +-
 .../scheduler/fair/FSParentQueue.java           |    8 +
 .../resourcemanager/scheduler/fair/FSQueue.java |   11 +-
 .../scheduler/fair/FairScheduler.java           |   50 +-
 .../scheduler/fifo/FifoScheduler.java           |   38 +-
 .../scheduler/policy/FifoComparator.java        |    7 -
 .../scheduler/policy/FifoOrderingPolicy.java    |    8 +-
 .../FifoOrderingPolicyForPendingApps.java       |   73 +
 .../scheduler/policy/PriorityComparator.java    |   43 +
 .../scheduler/policy/RecoveryComparator.java    |   33 +
 .../scheduler/policy/SchedulableEntity.java     |   10 +-
 .../security/QueueACLsManager.java              |   22 +-
 .../webapp/CapacitySchedulerPage.java           |   45 +-
 .../webapp/FairSchedulerPage.java               |    1 +
 .../webapp/MetricsOverviewTable.java            |   30 +-
 .../resourcemanager/webapp/NodesPage.java       |    3 +
 .../server/resourcemanager/webapp/RMWebApp.java |    5 +
 .../resourcemanager/webapp/RMWebAppFilter.java  |   90 +
 .../resourcemanager/webapp/RMWebServices.java   |  387 ++-
 .../webapp/dao/AppAttemptInfo.java              |    8 +
 .../webapp/dao/CapacitySchedulerInfo.java       |    2 +-
 .../dao/CapacitySchedulerLeafQueueInfo.java     |   23 +-
 .../webapp/dao/CapacitySchedulerQueueInfo.java  |   12 +-
 .../webapp/dao/ClusterMetricsInfo.java          |    6 +
 .../webapp/dao/FairSchedulerQueueInfo.java      |    7 +
 .../resourcemanager/webapp/dao/NodeInfo.java    |    8 +
 .../dao/PartitionQueueCapacitiesInfo.java       |   12 +-
 .../webapp/dao/PartitionResourceUsageInfo.java  |   89 -
 .../webapp/dao/PartitionResourcesInfo.java      |   99 +
 .../webapp/dao/QueueCapacitiesInfo.java         |   17 +-
 .../webapp/dao/ReservationDefinitionInfo.java   |   82 +
 .../dao/ReservationDeleteRequestInfo.java       |   49 +
 .../dao/ReservationDeleteResponseInfo.java      |   36 +
 .../webapp/dao/ReservationRequestInfo.java      |   78 +
 .../webapp/dao/ReservationRequestsInfo.java     |   63 +
 .../dao/ReservationSubmissionRequestInfo.java   |   60 +
 .../dao/ReservationSubmissionResponseInfo.java  |   54 +
 .../dao/ReservationUpdateRequestInfo.java       |   60 +
 .../dao/ReservationUpdateResponseInfo.java      |   37 +
 .../webapp/dao/ResourceUsageInfo.java           |   79 -
 .../webapp/dao/ResourceUtilizationInfo.java     |   89 +
 .../webapp/dao/ResourcesInfo.java               |   81 +
 .../yarn_server_resourcemanager_recovery.proto  |    2 +
 .../yarn/server/resourcemanager/MockNodes.java  |   28 +-
 .../yarn/server/resourcemanager/MockRM.java     |   35 +-
 .../server/resourcemanager/TestAppManager.java  |    3 +-
 .../resourcemanager/TestApplicationACLs.java    |    4 +-
 .../resourcemanager/TestClientRMService.java    |   76 +-
 .../TestLeaderElectorService.java               |  269 ++
 .../resourcemanager/TestRMAuditLogger.java      |   61 +-
 .../resourcemanager/TestRMDispatcher.java       |   20 +-
 .../yarn/server/resourcemanager/TestRMHA.java   |    8 +-
 .../resourcemanager/TestRMNodeTransitions.java  |  105 +-
 .../server/resourcemanager/TestRMRestart.java   |  218 +-
 .../TestWorkPreservingRMRestart.java            |    2 +-
 .../applicationsmanager/MockAsm.java            |    5 +
 .../applicationsmanager/TestAMRestart.java      |   16 +-
 .../TestRMAppLogAggregationStatus.java          |   32 +-
 .../metrics/TestSystemMetricsPublisher.java     |   39 +-
 ...estProportionalCapacityPreemptionPolicy.java |   10 +-
 .../nodelabels/NullRMNodeLabelsManager.java     |    4 +-
 .../recovery/RMStateStoreTestBase.java          |   93 +-
 .../recovery/TestFSRMStateStore.java            |   19 +-
 .../recovery/TestLeveldbRMStateStore.java       |   16 +
 .../recovery/TestZKRMStateStore.java            |   14 +
 .../recovery/TestZKRMStateStorePerf.java        |    2 +
 .../TestZKRMStateStoreZKClientConnections.java  |   22 +-
 .../TestCapacitySchedulerPlanFollower.java      |    6 +-
 .../reservation/TestInMemoryPlan.java           |   72 +-
 .../TestRLESparseResourceAllocation.java        |  353 ++-
 .../planning/TestGreedyReservationAgent.java    |   94 +-
 .../server/resourcemanager/rmapp/MockRMApp.java |    5 +
 .../rmapp/TestNodesListManager.java             |    2 +-
 .../rmapp/TestRMAppTransitions.java             |   75 +-
 .../rmapp/attempt/TestAMLivelinessMonitor.java  |    2 +-
 .../attempt/TestRMAppAttemptTransitions.java    |   91 +-
 .../rmcontainer/TestRMContainerImpl.java        |   17 +-
 .../scheduler/TestAbstractYarnScheduler.java    |  112 +
 .../scheduler/TestAppSchedulingInfo.java        |   73 +
 .../scheduler/TestQueueMetrics.java             |    8 +
 .../scheduler/TestResourceUsage.java            |   22 +-
 .../TestSchedulerApplicationAttempt.java        |   68 +-
 .../scheduler/TestSchedulerUtils.java           |   10 +-
 .../capacity/TestApplicationLimits.java         |   24 +-
 .../TestApplicationLimitsByPartition.java       |   44 +-
 .../capacity/TestApplicationPriority.java       |  171 +-
 .../capacity/TestCapacityScheduler.java         |  122 +-
 .../capacity/TestContainerResizing.java         |   87 +
 .../scheduler/capacity/TestLeafQueue.java       |   35 +-
 .../TestNodeLabelContainerAllocation.java       |   94 +-
 .../scheduler/capacity/TestQueueCapacities.java |    3 +-
 .../scheduler/capacity/TestReservations.java    |  186 +-
 .../scheduler/fair/TestFSAppAttempt.java        |   81 +
 .../scheduler/fair/TestFSParentQueue.java       |    2 +-
 .../scheduler/fair/TestFairScheduler.java       |  441 ++-
 .../scheduler/fair/TestQueueManager.java        |    2 +-
 .../scheduler/fifo/TestFifoScheduler.java       |    2 +
 .../scheduler/policy/MockSchedulableEntity.java |   17 +
 .../policy/TestFairOrderingPolicy.java          |   54 +
 .../policy/TestFifoOrderingPolicy.java          |   33 +-
 .../TestFifoOrderingPolicyForPendingApps.java   |   89 +
 .../resourcemanager/webapp/TestNodesPage.java   |    2 +-
 .../resourcemanager/webapp/TestRMWebApp.java    |    5 +
 .../webapp/TestRMWebServices.java               |    2 +-
 .../webapp/TestRMWebServicesApps.java           |    6 +-
 .../TestRMWebServicesAppsModification.java      |   10 +
 .../TestRMWebServicesForCSWithPartitions.java   |    4 +-
 .../webapp/TestRMWebServicesNodes.java          |   85 +-
 .../webapp/TestRMWebServicesReservation.java    |  517 ++++
 .../webapp/dao/TestFairSchedulerQueueInfo.java  |    2 +-
 .../src/test/resources/delete-reservation.json  |    3 +
 .../src/test/resources/submit-reservation.json  |   31 +
 .../src/test/resources/update-reservation.json  |   31 +
 .../hadoop/yarn/server/MiniYARNCluster.java     |   55 +-
 .../TestMiniYarnClusterNodeUtilization.java     |  245 ++
 .../pom.xml                                     |  140 +
 .../yarn/server/timeline/EntityCacheItem.java   |  171 ++
 .../timeline/EntityGroupFSTimelineStore.java    |  895 ++++++
 .../timeline/LevelDBCacheTimelineStore.java     |  316 ++
 .../hadoop/yarn/server/timeline/LogInfo.java    |  281 ++
 .../timeline/TimelineEntityGroupPlugin.java     |   74 +
 .../yarn/server/timeline/package-info.java      |   23 +
 .../timeline/EntityGroupPlugInForTest.java      |   56 +
 .../server/timeline/PluginStoreTestUtils.java   |  208 ++
 .../TestEntityGroupFSTimelineStore.java         |  332 +++
 .../timeline/TestLevelDBCacheTimelineStore.java |   94 +
 .../yarn/server/timeline/TestLogInfo.java       |  253 ++
 .../yarn/server/webproxy/WebAppProxyServer.java |    9 +-
 .../hadoop-yarn/hadoop-yarn-server/pom.xml      |    1 +
 .../src/site/markdown/CapacityScheduler.md      |   54 +-
 .../src/site/markdown/NodeManager.md            |    2 +-
 .../src/site/markdown/TimelineServer.md         |   78 +
 .../site/markdown/WritingYarnApplications.md    |    8 +-
 .../src/site/markdown/YarnCommands.md           |    2 +
 1113 files changed, 45523 insertions(+), 18921 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/hdfs.proto
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
----------------------------------------------------------------------
diff --cc hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
index cbe0fb5,587e6b6..718cecc
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
@@@ -294,21 -307,10 +308,20 @@@ public class BlockManager implements Bl
    /** Check whether there are any non-EC blocks using StripedID */
    private boolean hasNonEcBlockUsingStripedID = false;
  
-   /** Keeps track of how many bytes are in Future Generation blocks. */
-   private AtomicLong numberOfBytesInFutureBlocks;
+   private final BlockIdManager blockIdManager;
  
-   /** Reports if Name node was started with Rollback option. */
-   private boolean inRollBack = false;
 +
-   public BlockManager(final Namesystem namesystem, final Configuration conf)
++  public BlockManager(final Namesystem namesystem,  boolean haEnabled ,
++                      final Configuration conf)
 +      throws IOException {
 +    // Compute the map capacity by allocating 2% of total memory
-     this(namesystem, conf, new BlocksMap(
++    this(namesystem, haEnabled, conf, new BlocksMap(
 +        LightWeightGSet.computeCapacity(2.0, "BlocksMap")));
 +  }
 +
-   public BlockManager(final Namesystem namesystem, final Configuration conf,
+   public BlockManager(final Namesystem namesystem, boolean haEnabled,
 -      final Configuration conf) throws IOException {
++                      final Configuration conf,
 +      BlocksMap blocksMap) throws IOException {
      this.namesystem = namesystem;
      datanodeManager = new DatanodeManager(this, namesystem, conf);
      heartbeatManager = datanodeManager.getHeartbeatManager();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlocksMap.java
----------------------------------------------------------------------
diff --cc hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlocksMap.java
index e4e50e3,47a21fe..753fee7
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlocksMap.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlocksMap.java
@@@ -17,12 -17,10 +17,11 @@@
   */
  package org.apache.hadoop.hdfs.server.blockmanagement;
  
 -import java.util.Iterator;
 -
 +import com.google.common.base.Preconditions;
 +import com.google.common.base.Predicate;
 +import com.google.common.collect.Iterables;
  import org.apache.hadoop.hdfs.protocol.Block;
  import org.apache.hadoop.hdfs.server.namenode.INodeId;
- import org.apache.hadoop.hdfs.server.protocol.DatanodeStorage;
  import org.apache.hadoop.util.GSet;
  import org.apache.hadoop.util.LightWeightGSet;
  

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPOfferService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockPoolManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockSender.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
----------------------------------------------------------------------
diff --cc hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
index c4b20a9,6cd47ae..044def6
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
@@@ -46,9 -48,8 +48,10 @@@ import static org.apache.hadoop.hdfs.DF
  import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_MAX_NUM_BLOCKS_TO_LOG_KEY;
  import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_METRICS_LOGGER_PERIOD_SECONDS_DEFAULT;
  import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_DATANODE_METRICS_LOGGER_PERIOD_SECONDS_KEY;
 +import static org.apache.hadoop.ozone.OzoneConfigKeys.DFS_OBJECTSTORE_ENABLED_DEFAULT;
 +import static org.apache.hadoop.ozone.OzoneConfigKeys.DFS_OBJECTSTORE_ENABLED_KEY;
  import static org.apache.hadoop.util.ExitUtil.terminate;
+ import org.apache.hadoop.hdfs.protocol.proto.ReconfigurationProtocolProtos.ReconfigurationProtocolService;
  
  import java.io.BufferedOutputStream;
  import java.io.ByteArrayInputStream;
@@@ -127,7 -125,7 +129,8 @@@ import org.apache.hadoop.hdfs.protocol.
  import org.apache.hadoop.hdfs.protocol.DatanodeLocalInfo;
  import org.apache.hadoop.hdfs.protocol.ExtendedBlock;
  import org.apache.hadoop.hdfs.protocol.HdfsConstants;
 +import org.apache.hadoop.hdfs.protocol.RecoveryInProgressException;
+ import org.apache.hadoop.hdfs.protocol.ReconfigurationProtocol;
  import org.apache.hadoop.hdfs.protocol.datatransfer.BlockConstructionStage;
  import org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtocol;
  import org.apache.hadoop.hdfs.protocol.datatransfer.IOStreamPair;
@@@ -1292,9 -1243,9 +1341,10 @@@ public class DataNode extends Reconfigu
      // global DN settings
      registerMXBean();
      initDataXceiver(conf);
 +    initObjectStoreHandler(conf);
      startInfoServer(conf);
-     pauseMonitor = new JvmPauseMonitor(conf);
+     pauseMonitor = new JvmPauseMonitor();
+     pauseMonitor.init(conf);
      pauseMonitor.start();
    
      // BlockPoolTokenSecretManager is required to create ipc server.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataStorage.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java
----------------------------------------------------------------------
diff --cc hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java
index 922733d,190e69c..c9132f5
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java
@@@ -524,19 -518,12 +525,19 @@@ class DataXceiver extends Receiver impl
        final CachingStrategy cachingStrategy) throws IOException {
      previousOpClientName = clientName;
      long read = 0;
+     updateCurrentThreadName("Sending block " + block);
      OutputStream baseStream = getOutputStream();
-     DataOutputStream out = new DataOutputStream(new BufferedOutputStream(
-         baseStream, smallBufferSize));
+     DataOutputStream out = getBufferedOutputStream();
      checkAccess(out, true, block, blockToken,
          Op.READ_BLOCK, BlockTokenIdentifier.AccessMode.READ);
 -  
 +
 +    final FsDatasetSpi<?> dataset =
 +        (FsDatasetSpi<?>) datanode.getDataset(block.getBlockPoolId());
 +    if (dataset == null) {
 +      throw new IOException(
 +          "Unknown or unitialized blockpool " + block.getBlockPoolId());
 +    }
 +
      // send the block
      BlockSender blockSender = null;
      DatanodeRegistration dnR = 
@@@ -645,14 -631,11 +645,17 @@@
      allowLazyPersist = allowLazyPersist &&
          (dnConf.getAllowNonLocalLazyPersist() || peer.isLocal());
      long size = 0;
 -    // reply to upstream datanode or client 
 +    final FsDatasetSpi<?> dataset =
 +        (FsDatasetSpi<?>) datanode.getDataset(block.getBlockPoolId());
 +    if (dataset == null) {
 +      throw new IOException(
 +          "Unknown or unitialized blockpool " + block.getBlockPoolId());
 +    }
- 
-     // check single target for transfer-RBW/Finalized 
++    // reply to upstream datanode or client
+     final DataOutputStream replyOut = getBufferedOutputStream();
+     checkAccess(replyOut, isClient, block, blockToken,
+         Op.WRITE_BLOCK, BlockTokenIdentifier.AccessMode.WRITE);
 -    // check single target for transfer-RBW/Finalized 
++    // check single target for transfer-RBW/Finalized
      if (isTransfer && targets.length > 0) {
        throw new IOException(stage + " does not support multiple targets "
            + Arrays.asList(targets));
@@@ -955,24 -929,16 +955,23 @@@
      checkAccess(out, true, block, blockToken,
          Op.BLOCK_CHECKSUM, BlockTokenIdentifier.AccessMode.READ);
      // client side now can specify a range of the block for checksum
 +    final FsDatasetSpi<?> dataset =
 +        (FsDatasetSpi<?>) datanode.getDataset(block.getBlockPoolId());
 +    if (dataset == null) {
 +      throw new IOException(
 +          "Unknown or unitialized blockpool " + block.getBlockPoolId());
 +    }
 +
      long requestLength = block.getNumBytes();
      Preconditions.checkArgument(requestLength >= 0);
 -    long visibleLength = datanode.data.getReplicaVisibleLength(block);
 +    long visibleLength = dataset.getReplicaVisibleLength(block);
      boolean partialBlk = requestLength < visibleLength;
  
-     updateCurrentThreadName("Reading metadata for block " + block);
-     final LengthInputStream metadataIn = dataset.getMetaDataInputStream(block);
-     
+     final LengthInputStream metadataIn = datanode.data
+         .getMetaDataInputStream(block);
 -    
++
      final DataInputStream checksumIn = new DataInputStream(
          new BufferedInputStream(metadataIn, ioFileBufferSize));
-     updateCurrentThreadName("Getting checksum for block " + block);
      try {
        //read metadata file
        final BlockMetadataHeader header = BlockMetadataHeader
@@@ -1019,30 -985,12 +1018,19 @@@
    @Override
    public void copyBlock(final ExtendedBlock block,
        final Token<BlockTokenIdentifier> blockToken) throws IOException {
 +    final FsDatasetSpi<?> dataset =
 +        (FsDatasetSpi<?>) datanode.getDataset(block.getBlockPoolId());
 +    if (dataset == null) {
 +      throw new IOException(
 +          "Unknown or unitialized blockpool " + block.getBlockPoolId());
 +    }
 +
      updateCurrentThreadName("Copying block " + block);
-     // Read in the header
-     if (datanode.isBlockTokenEnabled) {
-       try {
-         datanode.blockPoolTokenSecretManager.checkAccess(blockToken, null, block,
-             BlockTokenIdentifier.AccessMode.COPY);
-       } catch (InvalidToken e) {
-         LOG.warn("Invalid access token in request from " + remoteAddress
-             + " for OP_COPY_BLOCK for block " + block + " : "
-             + e.getLocalizedMessage());
-         sendResponse(ERROR_ACCESS_TOKEN, "Invalid access token");
-         return;
-       }
+     DataOutputStream reply = getBufferedOutputStream();
+     checkAccess(reply, true, block, blockToken,
+         Op.COPY_BLOCK, BlockTokenIdentifier.AccessMode.COPY);
  
-     }
-     
-     if (dataset.getPinning(block)) {
+     if (datanode.data.getPinning(block)) {
        String msg = "Not able to copy block " + block.getBlockId() + " " +
            "to " + peer.getRemoteAddressString() + " because it's pinned ";
        LOG.info(msg);
@@@ -1065,12 -1012,9 +1052,9 @@@
      try {
        // check if the block exists or not
        blockSender = new BlockSender(block, 0, -1, false, false, true, datanode, 
 -          null, CachingStrategy.newDropBehind());
 +          dataset, null, CachingStrategy.newDropBehind());
  
-       // set up response stream
        OutputStream baseStream = getOutputStream();
-       reply = new DataOutputStream(new BufferedOutputStream(
-           baseStream, smallBufferSize));
  
        // send status first
        writeSuccessWithChecksumInfo(blockSender, reply);
@@@ -1113,28 -1057,10 +1097,17 @@@
        final Token<BlockTokenIdentifier> blockToken,
        final String delHint,
        final DatanodeInfo proxySource) throws IOException {
 +    final FsDatasetSpi<?> dataset =
 +        (FsDatasetSpi<?>) datanode.getDataset(block.getBlockPoolId());
 +    if (dataset == null) {
 +      throw new IOException(
 +          "Unknown or unitialized blockpool " + block.getBlockPoolId());
 +    }
 +
      updateCurrentThreadName("Replacing block " + block + " from " + delHint);
- 
-     /* read header */
-     if (datanode.isBlockTokenEnabled) {
-       try {
-         datanode.blockPoolTokenSecretManager.checkAccess(blockToken, null, block,
-             BlockTokenIdentifier.AccessMode.REPLACE);
-       } catch (InvalidToken e) {
-         LOG.warn("Invalid access token in request from " + remoteAddress
-             + " for OP_REPLACE_BLOCK for block " + block + " : "
-             + e.getLocalizedMessage());
-         sendResponse(ERROR_ACCESS_TOKEN, "Invalid access token");
-         return;
-       }
-     }
+     DataOutputStream replyOut = new DataOutputStream(getOutputStream());
+     checkAccess(replyOut, true, block, blockToken,
+         Op.REPLACE_BLOCK, BlockTokenIdentifier.AccessMode.REPLACE);
  
      if (!dataXceiverServer.balanceThrottler.acquire()) { // not able to start
        String msg = "Not able to receive block " + block.getBlockId() +

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DirectoryScanner.java
----------------------------------------------------------------------
diff --cc hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DirectoryScanner.java
index 0a1d3ca,083ca31..b388a3a
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DirectoryScanner.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DirectoryScanner.java
@@@ -45,10 -47,9 +47,10 @@@ import org.apache.hadoop.conf.Configura
  import org.apache.hadoop.hdfs.DFSConfigKeys;
  import org.apache.hadoop.hdfs.protocol.Block;
  import org.apache.hadoop.hdfs.protocol.HdfsConstants;
 +import org.apache.hadoop.hdfs.server.datanode.dataset.DatasetSpi;
  import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsDatasetSpi;
  import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi;
+ import org.apache.hadoop.io.IOUtils;
  import org.apache.hadoop.util.Daemon;
  import org.apache.hadoop.util.StopWatch;
  import org.apache.hadoop.util.Time;

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hadoop/blob/16440b83/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/DatanodeHttpServer.java
----------------------------------------------------------------------
diff --cc hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/DatanodeHttpServer.java
index a31b325,fc24fae..a3b7dec
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/DatanodeHttpServer.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/DatanodeHttpServer.java
@@@ -41,7 -41,7 +41,8 @@@ import org.apache.hadoop.hdfs.DFSUtil
  import org.apache.hadoop.hdfs.server.common.JspHelper;
  import org.apache.hadoop.hdfs.server.datanode.BlockScanner;
  import org.apache.hadoop.hdfs.server.datanode.DataNode;
 +import org.apache.hadoop.hdfs.server.datanode.ObjectStoreHandler;
+ import org.apache.hadoop.hdfs.server.datanode.web.webhdfs.DataNodeUGIProvider;
  import org.apache.hadoop.http.HttpConfig;
  import org.apache.hadoop.http.HttpServer2;
  import org.apache.hadoop.net.NetUtils;