ChecksumDistributedFileSystem.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:4k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.hdfs;
  19. import java.io.*;
  20. import java.net.*;
  21. import org.apache.hadoop.fs.*;
  22. 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;
  23. /**
  24.  * An implementation of ChecksumFileSystem over DistributedFileSystem. 
  25.  * Note that as of now (May 07), DistributedFileSystem natively checksums 
  26.  * all of its data. Using this class is not be necessary in most cases.
  27.  * Currently provided mainly for backward compatibility and testing.
  28.  */
  29. public class ChecksumDistributedFileSystem extends ChecksumFileSystem {
  30.   
  31.   public ChecksumDistributedFileSystem() {
  32.     super( new DistributedFileSystem() );
  33.   }
  34.   /** @deprecated */
  35.   public ChecksumDistributedFileSystem(InetSocketAddress namenode,
  36.                                        Configuration conf) throws IOException {
  37.     super( new DistributedFileSystem(namenode, conf) );
  38.   }
  39.   
  40.   /** Any extra interface that DistributeFileSystem provides can be
  41.    * accessed with this.*/
  42.   DistributedFileSystem getDFS() {
  43.     return (DistributedFileSystem)fs;
  44.   }
  45.   /** Return the total raw capacity of the filesystem, disregarding
  46.    * replication .*/
  47.   public long getRawCapacity() throws IOException{
  48.     return getDFS().getRawCapacity();
  49.   }
  50.   /** Return the total raw used space in the filesystem, disregarding
  51.    * replication .*/
  52.   public long getRawUsed() throws IOException{
  53.     return getDFS().getRawUsed();
  54.   }
  55.   /** Return statistics for each datanode. */
  56.   public DatanodeInfo[] getDataNodeStats() throws IOException {
  57.     return getDFS().getDataNodeStats();
  58.   }
  59.     
  60.   /**
  61.    * Enter, leave or get safe mode.
  62.    *  
  63.    * @see org.apache.hadoop.hdfs.protocol.ClientProtocol#setSafeMode(FSConstants.SafeModeAction)    */
  64.   public boolean setSafeMode(FSConstants.SafeModeAction action) 
  65.     throws IOException {
  66.     return getDFS().setSafeMode(action);
  67.   }
  68.   /*
  69.    * Refreshes the list of hosts and excluded hosts from the configured 
  70.    * files.  
  71.    */
  72.   public void refreshNodes() throws IOException {
  73.     getDFS().refreshNodes();
  74.   }
  75.   /**
  76.    * Finalize previously upgraded files system state.
  77.    */
  78.   public void finalizeUpgrade() throws IOException {
  79.     getDFS().finalizeUpgrade();
  80.   }
  81.   public UpgradeStatusReport distributedUpgradeProgress(UpgradeAction action
  82.                                                         ) throws IOException {
  83.     return getDFS().distributedUpgradeProgress(action);
  84.   }
  85.   /*
  86.    * Dumps dfs data structures into specified file.
  87.    */
  88.   public void metaSave(String pathname) throws IOException {
  89.     getDFS().metaSave(pathname);
  90.   }
  91.   /**
  92.    * We need to find the blocks that didn't match.  Likely only one 
  93.    * is corrupt but we will report both to the namenode.  In the future,
  94.    * we can consider figuring out exactly which block is corrupt.
  95.    */
  96.   public boolean reportChecksumFailure(Path f, 
  97.                                        FSDataInputStream in, long inPos, 
  98.                                        FSDataInputStream sums, long sumsPos) {
  99.     return getDFS().reportChecksumFailure(f, in, inPos, sums, sumsPos);
  100.   }
  101.   
  102.   
  103.   /**
  104.    * Returns the stat information about the file.
  105.    */
  106.   @Override
  107.   public FileStatus getFileStatus(Path f) throws IOException {
  108.     return getDFS().getFileStatus(f);
  109.   }
  110. }