| /** | |
| * 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.dfs; | |
| import java.io.*; | |
| import java.net.*; | |
| import org.apache.hadoop.fs.*; | |
| import org.apache.hadoop.dfs.FSConstants.UpgradeAction; | |
| 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.dfs.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); | |
| } | |
| } |