ChecksumDistributedFileSystem.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:4k
源码类别:
网格计算
开发平台:
Java
- /**
- * 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;
- import java.io.*;
- import java.net.*;
- import org.apache.hadoop.fs.*;
- import org.apache.hadoop.hdfs.protocol.DatanodeInfo; import org.apache.hadoop.hdfs.protocol.FSConstants; import org.apache.hadoop.hdfs.protocol.FSConstants.UpgradeAction; import org.apache.hadoop.hdfs.server.common.UpgradeStatusReport; import org.apache.hadoop.conf.Configuration;
- /**
- * An implementation of ChecksumFileSystem over DistributedFileSystem.
- * Note that as of now (May 07), DistributedFileSystem natively checksums
- * all of its data. Using this class is not be necessary in most cases.
- * Currently provided mainly for backward compatibility and testing.
- */
- public class ChecksumDistributedFileSystem extends ChecksumFileSystem {
- public ChecksumDistributedFileSystem() {
- super( new DistributedFileSystem() );
- }
- /** @deprecated */
- public ChecksumDistributedFileSystem(InetSocketAddress namenode,
- Configuration conf) throws IOException {
- super( new DistributedFileSystem(namenode, conf) );
- }
- /** Any extra interface that DistributeFileSystem provides can be
- * accessed with this.*/
- DistributedFileSystem getDFS() {
- return (DistributedFileSystem)fs;
- }
- /** Return the total raw capacity of the filesystem, disregarding
- * replication .*/
- public long getRawCapacity() throws IOException{
- return getDFS().getRawCapacity();
- }
- /** Return the total raw used space in the filesystem, disregarding
- * replication .*/
- public long getRawUsed() throws IOException{
- return getDFS().getRawUsed();
- }
- /** Return statistics for each datanode. */
- public DatanodeInfo[] getDataNodeStats() throws IOException {
- return getDFS().getDataNodeStats();
- }
- /**
- * Enter, leave or get safe mode.
- *
- * @see org.apache.hadoop.hdfs.protocol.ClientProtocol#setSafeMode(FSConstants.SafeModeAction) */
- public boolean setSafeMode(FSConstants.SafeModeAction action)
- throws IOException {
- return getDFS().setSafeMode(action);
- }
- /*
- * Refreshes the list of hosts and excluded hosts from the configured
- * files.
- */
- public void refreshNodes() throws IOException {
- getDFS().refreshNodes();
- }
- /**
- * Finalize previously upgraded files system state.
- */
- public void finalizeUpgrade() throws IOException {
- getDFS().finalizeUpgrade();
- }
- public UpgradeStatusReport distributedUpgradeProgress(UpgradeAction action
- ) throws IOException {
- return getDFS().distributedUpgradeProgress(action);
- }
- /*
- * Dumps dfs data structures into specified file.
- */
- public void metaSave(String pathname) throws IOException {
- getDFS().metaSave(pathname);
- }
- /**
- * We need to find the blocks that didn't match. Likely only one
- * is corrupt but we will report both to the namenode. In the future,
- * we can consider figuring out exactly which block is corrupt.
- */
- public boolean reportChecksumFailure(Path f,
- FSDataInputStream in, long inPos,
- FSDataInputStream sums, long sumsPos) {
- return getDFS().reportChecksumFailure(f, in, inPos, sums, sumsPos);
- }
- /**
- * Returns the stat information about the file.
- */
- @Override
- public FileStatus getFileStatus(Path f) throws IOException {
- return getDFS().getFileStatus(f);
- }
- }