hadoop MountTableManager 源码

  • 2022-10-20
  • 浏览 (230)

haddop MountTableManager 代码

文件路径:/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableManager.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.server.federation.resolver;

import java.io.IOException;

import org.apache.hadoop.hdfs.server.federation.store.protocol.AddMountTableEntryRequest;
import org.apache.hadoop.hdfs.server.federation.store.protocol.AddMountTableEntryResponse;
import org.apache.hadoop.hdfs.server.federation.store.protocol.GetDestinationRequest;
import org.apache.hadoop.hdfs.server.federation.store.protocol.GetDestinationResponse;
import org.apache.hadoop.hdfs.server.federation.store.protocol.GetMountTableEntriesRequest;
import org.apache.hadoop.hdfs.server.federation.store.protocol.GetMountTableEntriesResponse;
import org.apache.hadoop.hdfs.server.federation.store.protocol.RefreshMountTableEntriesRequest;
import org.apache.hadoop.hdfs.server.federation.store.protocol.RefreshMountTableEntriesResponse;
import org.apache.hadoop.hdfs.server.federation.store.protocol.RemoveMountTableEntryRequest;
import org.apache.hadoop.hdfs.server.federation.store.protocol.RemoveMountTableEntryResponse;
import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateMountTableEntryRequest;
import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateMountTableEntryResponse;

/**
 * Manage a mount table.
 */
public interface MountTableManager {

  /**
   * Add an entry to the mount table.
   *
   * @param request Fully populated request object.
   * @return True if the mount table entry was successfully committed to the
   *         data store.
   * @throws IOException Throws exception if the data store is not initialized.
   */
  AddMountTableEntryResponse addMountTableEntry(
      AddMountTableEntryRequest request) throws IOException;

  /**
   * Updates an existing entry in the mount table.
   *
   * @param request Fully populated request object.
   * @return True if the mount table entry was successfully committed to the
   *         data store.
   * @throws IOException Throws exception if the data store is not initialized.
   */
  UpdateMountTableEntryResponse updateMountTableEntry(
      UpdateMountTableEntryRequest request) throws IOException;

  /**
   * Remove an entry from the mount table.
   *
   * @param request Fully populated request object.
   * @return True the mount table entry was removed from the data store.
   * @throws IOException Throws exception if the data store is not initialized.
   */
  RemoveMountTableEntryResponse removeMountTableEntry(
      RemoveMountTableEntryRequest request) throws IOException;

  /**
   * List all mount table entries present at or below the path. Fetches from the
   * state store.
   *
   * @param request Fully populated request object.
   *
   * @return List of all mount table entries under the path. Zero-length list if
   *         none are found.
   * @throws IOException Throws exception if the data store cannot be queried.
   */
  GetMountTableEntriesResponse getMountTableEntries(
      GetMountTableEntriesRequest request) throws IOException;

  /**
   * Refresh mount table entries cache from the state store. Cache is updated
   * periodically but with this API cache can be refreshed immediately. This API
   * is primarily meant to be called from the Admin Server. Admin Server will
   * call this API and refresh mount table cache of all the routers while
   * changing mount table entries.
   *
   * @param request Fully populated request object.
   * @return True the mount table entry was updated without any error.
   * @throws IOException Throws exception if the data store is not initialized.
   */
  RefreshMountTableEntriesResponse refreshMountTableEntries(
      RefreshMountTableEntriesRequest request) throws IOException;

  /**
   * Get the destination subcluster (namespace) of a file/directory.
   *
   * @param request Fully populated request object including the file to check.
   * @return The response including the subcluster where the input file is.
   * @throws IOException Throws exception if the data store is not initialized.
   */
  GetDestinationResponse getDestination(
      GetDestinationRequest request) throws IOException;
}

相关信息

hadoop 源码目录

相关文章

hadoop ActiveNamenodeResolver 源码

hadoop FederationNamenodeContext 源码

hadoop FederationNamenodeServiceState 源码

hadoop FederationNamespaceInfo 源码

hadoop FileSubclusterResolver 源码

hadoop MembershipNamenodeResolver 源码

hadoop MountTableResolver 源码

hadoop MultipleDestinationMountTableResolver 源码

hadoop NamenodePriorityComparator 源码

hadoop NamenodeStatusReport 源码

0  赞