HDFSソースコード分析(2)---- HDFSソース構造



Hdfs Source Code Analysis Hdfs Source Structure



  1. 転送元:http://blog.csdn.net/gaoxingnengjisuan/article/details/11177049

    HDFSソースコードは16のディレクトリに配布されており、次の4つのカテゴリに分類できます。




    基本パッケージ(ツールキットとセキュリティパックを含む)



    ツールとセキュリティパックが含まれています。その中で、hdfs.utilには、HDFSへの安全なアクセスを提供するためにHadoopのセキュリティフレームワークと組み合わせたHDFS実装hdfs.security.token.blockおよびhdfs.security.token.delegationに必要ないくつかの補助データ構造が含まれています。

    Hdfs.util(一部のHDFS実装に必要な補助データ構造)

    AtomicFileOutputStream.java ----継承実装クラス:アトミックファイル出力ストリームクラス
    DataTransferThrottler.java ----独立したメモリクラス:このクラスのデータ転送用のパラメータ設定テーブルはスレッドセーフであり、複数のスレッドで共有できます
    LightWeightGSet.java ----継承実装クラス:メモリ使用量の少ない実装クラス



    Hdfs.security.token.block(HDFSメカニズムへの安全なアクセス)

    BlockKey.java ----継承実装クラス:キーは、ブロックのトークンを生成およびチェックするために使用されます
    BlockTokenIdentifier.java ----継承実装クラス:ブロックトークンの識別子
    BlockTokenSecretManager.java ----継承実装クラス:ブロックトークン管理クラスBlockTokenSecretManagerは、メインモードとスレーブモードの2つのモードにインスタンス化できます。マスターノードは、新しいブロックキーを生成し、そのブロックキーをスレーブノードにエクスポートできます。スレーブノードは、マスターノードから受信したブロックキーのみをインポートして使用できます。マスターとスレーブの両方がブロックトークンを生成および検証できます。
    BlockTokenSelector.java ----継承実装クラス:HDFSのブロックトークン選択
    ExportedBlockKeys.java ----継承された実装クラス:ブロックキーオブジェクトを渡します
    InvalidBlockTokenException.java ----継承された実装クラス:アクセストークンの検証に失敗しました

    Hdfs.security.token.delegation(HDFSメカニズムへの安全なアクセス)

    DelegationTokenIdentifier.java ----継承実装クラス:HDFS代表トークンに固有の識別子
    DelegationTokenRenewer.java ----継承実装クラス:これは、次のファイルシステム接続の待機を実装するデーモンです。
    DelegationTokenSecretManager.java ----継承実装クラス:このクラスは、HDFS固有の承認トークンの管理を実装します。この管理クラスは、各トークンのパスワードの生成と受け入れを実装します。
    DelegationTokenSelector.java ----継承実装クラス:HDFS専用のトークン

    2.HDFSエンティティ実装パッケージ

    これはコード分析の焦点であり、8つのパッケージで構成されています。

    Hdfs.server.commonには、システムアップグレードやストレージスペース情報など、名前ノードとデータノードで共有されるいくつかの機能が含まれています。

    Hdfs.protocolとhdfs.server.protocolは、HDFSエンティティ間のHDC相互作用を通じて、インターフェースの定義と実装を提供します。

    Hdfs.server.namenode、hdfs.server.datanode、およびhdfsには、それぞれ名前ノード、データノード、およびクライアントの実装が含まれています。上記のコードは、HDFSコード分析の焦点です。

    Hdfs.server.namenode.metricsとhdfs.server.datanode.metricsは、名前ノードとデータノードでメトリックデータの収集を実装します。メトリックデータには、ネームノードプロセスとデータノードプロセスでのイベントの数が含まれます。例えば、データノードは、書き込まれたバイト数、コピーされるブロック数などに関する情報を収集することができる。

    Hdfs.server.common(名前ノードとデータノード間のいくつかの共有関数)

    GenerationStamp.java ----継承実装クラス:タイムスタンプと読み取り/書き込みアクセスクラスを生成する関数
    HdfsConstants.java ----インターフェイスクラス:HDFSHdfs定数フィールド内のいくつかの定数と値の定義
    InconsistentFSStateException.java ----継承実装クラス:一貫性のないファイルシステムステータス例外ファイルステータスチェックエラーメッセージ
    IncorrectVersionException.java ----継承実装クラス:バージョンが誤ってチェックされた場合の誤ったバージョン例外プロンプトメッセージ
    Storage.java ----継承実装クラス:ストア情報ファイルローカルストレージ情報は、ノードタイプ、ストレージレイアウトバージョン、名前空間ID、およびファイルシステム状態の作成時刻現在の名前ノードインデックス情報とステータス情報を含む別のファイルバージョンに保存されます(ファイルが開いているかどうか)メモリ内の拡張テーブルレコードに記録されます
    StorageInfo.java ----独立したメモリクラス:情報を格納するための一般的なクラスファイルインデックス情報の基本テーブルをメモリに格納する基本機能は、ファイルシステムのメタ情報を格納することです
    Upgradeable.java ---- interfaceクラス:分散アップグレードオブジェクトの一般的なインターフェイスオブジェクトアップグレードインターフェイスメソッドセット定義
    UpgradeManager.java ----独立したメモリクラス、抽象化:ユニバーサルアップグレード管理
    UpgradeObject.java ----継承実装クラス:一般的なインターフェイスメソッドの抽象アップグレードオブジェクト実装スケーラブルオブジェクトのインターフェイスメソッドの実装
    UpgradeObjectCollection.java ----独立したメモリクラス:アップグレード可能なオブジェクトのコレクションコンテナの実装。アップグレードオブジェクトは、使用する前に登録する必要があります。
    UpgradeStatusReport.java ----継承実装クラス:システムアップグレード基本クラスアップグレードプロセスステータス情報テーブル定義
    Util.java ----独立したメモリクラス:現在のシステム時刻を取得します

    Hdfs.protocol(HDCを介してIPCと対話するためのインターフェイス)

    AlreadyBeingCreatedException.java ----継承実装クラス:ファイルが異常に作成されました
    Block.java ----継承実装クラス:HDFS Bolckメモリのデータブロックの抽象化基本的なブロック構造の定義と読み取り/書き込みアクセスこのクラスは、多数のデータブロック関連クラスです。クライアントインターフェイスに基づいて、このようなクラスUniqueBlock、LocateBlocks、およびBlockLocalPathInfoがあります。
    BlockListAsLongs.java ----独立したメモリクラス:このクラスは、ブロックリストにアクセスするためのインターフェイスを提供します。Bolckブロックのインデックスは配列を構成します。このクラスの役割は、blcokArray内のブロックをブロックすることです。データ「untouched」は変換されます。長い型の配列blockListに
    BlockLocalPathInfo.java ----継承実装クラス:HDFS読み取りファイルのデータノードのローカル読み取り最適化のためにClientDatanodeProtocolインターフェースに適用されます。クライアントは、読み取っているデータブロックと同じホスト上にあることを検出すると、データノードを経由せずにデータファイルを読み取ることができますが、ローカルファイルを直接読み取ってデータブロックのコンテンツを取得します。これにより、対応するデータノードの負荷が大幅に軽減されます。
    ClientDatanodeProtocol.java ----インターフェイスクラス:クライアントとデータノード間のインターフェイス。これは、クライアントとデータノード間の相互作用に使用されます。このインターフェースはあまり使用されません。クライアントとデータノード間の主な相互作用は、ストリームインターフェイスを介してファイルデータを読み書きすることです。エラーが発生した場合、クライアントはデータノードと連携して回復する必要があります。または、クライアントがローカルファイル読み取りの最適化を実行する場合は、IPCイン​​ターフェイスを介して情報を取得する必要があります。
    ClientProtocol.java ----インターフェイスクラス:クライアントとネームノード間のインターフェイスは、HDFSクライアントがファイルシステムにアクセスするためのエントリです。クライアントは、このインターフェイス、操作ファイル、またはディレクトリのメタデータ情報を介してネームノードにアクセスします。読み取りファイルと書き込みファイルも、最初に名前ノードにアクセスしてから、データノードと対話してファイルデータを操作する必要があります。さらに、分散ファイルシステムの全体的な実行状態情報の一部を名前ノードから取得できます。 NameNodeへのアクセスに使用されるインターフェースベース。ファイルの観点からHDFS機能が含まれています。 GFSと同様に、HDFSはPOSIXスタイルのインターフェイスを提供しませんが、代わりにプライベートインターフェイスを使用します。一般に、プログラマーはorg.apache.hadoop.fs.FileSystemを介してHDFSを操作し、このインターフェースを直接使用する必要はありません。
    DatanodeID.java ----継承実装クラス:HDFSクラスター内のデータノードを決定するために使用されます
    DatanodeInfo.java ----継承実装クラス:DatanodeIDに基づいて、DatanodeIDから継承され、データノードのデータノード状態情報構造定義およびアクセス読み取りおよび書き込みクラスに関するいくつかのメトリック情報を提供します。
    DataTransferProtocol.java ---- interfaceクラス:クライアントとデータノード間のアプリケーションストリームプロトコル送信データの実装
    DirectoryListing.java ----継承実装クラス:一度に1つのディレクトリの下にある複数のファイル/サブディレクトリの属性を返すために使用されます
    DSQuotaExceededException.java ----継承実装クラス:ディスク領域がクォータ例外クラスを超えています
    FSConstants.java ----インターフェイスクラス:いくつかの便利な定数
    HdfsFileStatus.java ----継承実装クラス:HDFSファイル/ディレクトリのプロパティを保存します
    LayoutVersion.java ----独立したメモリクラス:このクラスは、HDFSレイアウトバージョンの変更情報を追跡します。
    LocateBlock.java ----継承実装クラス:保存場所を確認したデータブロックを使用して、一度に複数のデータブロックを見つけることができます
    LocateBlocks.java ----継承実装クラス:ブロックの場所とファイルの長さのコレクションデータブロックとファイルの長さの説明情報テーブルの定義と読み取りと書き込みのセット
    NSQuotaExceededException.java ----継承実装クラス:名前空間がクォータ例外クラスを超えています
    QuotaExceededException.java ----継承実装クラス:クォータ超過例外
    UnregisteredDatanodeException.java ----継承実装クラス:未登録データノード例外

    Hdfs.server.protocol(HDFSエンティティ間のインターフェースの実装)

    BalancerBandwidthCommand.java ----継承実装クラス:管理者は、「dfsadmin -setBalanacerBandwidth newbandwidth」を呼び出して、バランサーの帯域幅パラメーターを動的に調整します。
    BlockCommand.java ----継承実装クラス:BlockCommandクラスは、データノードのデータブロックコマンド定義と実装クラスの制御下でブロックの命令を実装します。
    BlockMetaDataInfo.java ----継承実装クラス:ブロック定義のメタデータ情報とデータブロックのメタデータ情報の実装
    BlockRecoveryInfo.java ----継承実装クラス:ブロック回復操作情報
    BlocksWithLocations.java ----継承実装クラス:BlockLocationsシーケンスの実装クラス位置付きのブロック情報の読み取りと書き込み
    DatanodeCommand.java ----抽象クラス:データノードコマンドデータノード基本情報の定義と実装
    DatanodeProtocol.java ----インターフェースクラス:サーバー間インターフェース-データノードと名前ノードの間のインターフェース。 HDFSのマスタースレーブアーキテクチャでは、データノードはスレーブノードとして機能し、インターフェイスのプライマリノードの名前ノードを介して一部の情報を継続的に報告し、その情報を名前ノードに同期します。同時に、インターフェイスの一部のメソッドでは、メソッドの戻り値によって名前が返されます。データノードがローカルディスク上のデータのブロックを移動、削除、または復元する、またはその他の操作を実行するノード命令。
    DatanodeRegistration.java ----継承実装クラス:DatanodeRegistrationクラスには、データノードを識別および検証するための名前ノードのすべての情報が含まれ、データノードの登録情報の読み取りおよび書き込みメソッドの定義と実装が含まれます。
    DisallowedDatanodeException.java ----継承実装クラス:許可されていないデータノード例外
    InterDatanodeProtocol.java ----インターフェイスクラス:サーバー間のインターフェイス-データノードとデータノード間のインターフェイス。このインターフェースを介して、データノードは他のデータノードと通信してデータブロックを回復し、データの整合性を確保します。
    KeyUpdateCommand.java ----継承実装クラス:キーアップグレードコマンド
    NamenodeProtocol.java ----インターフェイスクラス:サービス中のインターフェイス-2番目の名前ノード、HDFSイコライザー、および名前ノード間のインターフェイス。 2番目の名前ノードは、名前ノードの特定のポイントで名前空間ミラーとミラー変更ログを取得し続け、次にマージして新しいイメージを取得し、結果を名前ノードに送り返します。その過程で、名前ノードはこのインターフェースを使用して、メタデータと2番目の名前ノードのマージを完了します。このインターフェースは、HDFSイコライザーバランサーの通常の操作に関する情報も提供します。
    NamespaceInfo.java ----継承実装クラス:NamespaceInfoクラスは、データノードの名前ノードを返すハンドシェイクを実装します。
    UpgradeCommand.java ----継承実装クラス:これは、一般的な分散アップグレードコマンドクラスのアップグレードデータブロックの名前付けの実装です。

    Hdfs.server.namenode(名前ノードの実装)

    BlockPlacementPolicy.java ---- abstract class:このインターフェースは、ブロックのコピーを配置するために必要な数のターゲットディスクを選択するために使用されます
    BlockPlacementPolicyDefault.java ----継承実装クラス:このクラスは、ブロックのコピーを選択するために必要な数のターゲットディスクを実装します
    BlockPlacementPolicyWithNodeGroup.java ----継承実装クラス:このクラスは、ブロックのコピーを選択するために必要な数のターゲットディスクをノードグループレイヤーに実装します。
    BlockInfo.java ----独立したメモリクラス:このクラスは、ブロックのメタデータへのマッピングを維持します
    CancelDelegationTokenServlet.java ----継承実装クラス:キャンセルはトークンサービスを表します
    CheckpointSignature.java ----継承実装クラス:保存された情報のチェックポイント署名クラス署名情報テーブル定義
    ContentSummaryServlet.java ----継承実装クラス:ファイル検証サービス
    CorruptReplicasMap.java ----独立したメモリクラス:ファイルシステム内のすべての破損したブロックに関する情報を格納します
    DatanodeDescriptor.java ----継承実装クラス:DatanodeDescriptorクラスは、使用可能なストレージスペース、最終更新時刻など、特定のデータノードに関する情報を追跡およびカウントします。状態情報の定義と実装
    DecommissionManager.java ----独立したメモリクラス:管理ノードのリリース
    DfsServlet.java ----抽象クラス:DFSサービスの基本クラスは、WebモードのDFSのプロキシモードです。
    EditLogInputStream.java ---- abstractクラス:汎用抽象クラスは、永続ストレージクラスメソッド定義からのログデータの読み取りと編集、およびログデータの読み取りの実装をサポートするために使用されます。
    EditLogOutputStream.java ----継承実装クラス:汎用抽象クラスは、永続ストレージレコードクラスメソッド定義からのログデータの編集とログデータの書き込みの実装をサポートするために使用されます
    FileChecksumServlets.java ----独立したメモリクラス:Web操作コマンドのファイル検証サービスファイル比較エージェントの実装
    FileDataServlet.java ----継承実装クラス:ファイルデータWeb操作コマンドのプロキシ実装
    FsckServlet.java ----継承実装クラス:ネームノードファイルシステム上のfsck Webサービスは、Web操作コマンドのプロキシ実装をチェックします
    FSClusterStats.java ----インターフェイスクラス:このインターフェイスは、クラスター関連の統計を取得するために使用されます
    FSDirectory.java ----継承実装クラス:クラスFSDirectoryは、ストレージファイルシステム定義のディレクトリ状態とファイルディレクトリ構造の実装を実装します。
    FSEditLog.java ----独立したメモリクラス:FSEditLogクラスは、名前空間を維持するためのロギングを実装し、ファイルシステムログテーブルの定義を変更します
    FSImage.java ----継承実装クラス:FSImageは、名前空間編集ファイルシステムディレクトリ、ファイル、データインデックス、および関係情報定義のチェックポイント操作とログレコード操作を実装します。
    FSInodeInfo.java ----インターフェイスクラス:ファイルシステム関連情報
    FSNamesystem.java ----継承実装クラス:FSNamesystemクラスは、データノードの実際のアカウンティングを実装し、データノードの情報構造定義を実装します。
    FSPermissionChecker.java ----独立したメモリクラス:ファイルシステムのアクセス許可を検出するためのクラスを実装します
    GetDelegationTokenServlet.java ----継承実装クラス:デリゲートトークンサービスを取得します
    GetImageServlet.java ----継承実装クラス:このクラスは、画像を取得するための2番目の名前ノードおよび定期的な検出ポイントに通常使用されるネーミングシステムでファイルを取得するために使用されます。ファイルを編集します。
    Host2NodesMap.java ----独立したメモリクラス:ホストからノードへのマッピング
    INode.java ----継承実装クラス:この抽象クラスには、ファイルおよびディレクトリのインデックスノードノードの基本的な情報構造定義の共通フィールドが含まれます。
    INodeDirectory.java ----継承クラス:ディレクトリのインデックスノードを表すクラス
    INodeDirectoryWithQuota.java ----継承実装クラス:クォータ制限のあるディレクトリインデックスノードクラス
    INodeFile.java ----継承実装クラス:ディレクトリインデックスノードファイルファイルノード情報構造体の定義
    INodeFileUnderConstruction.java ----継承実装クラス:作成中のディレクトリインデックスノードファイルファイルノード情報構造定義を作成します
    JspHelper.java ----独立したメモリクラス:JSP実装補助クラス
    LeaseExpiredException.java ----継承実装クラス:作成されたファイルの有効期限が切れています例外
    LeaseManager.java ----独立したメモリクラス:LeaseManagerは、書き込みファイルのリース管理を実装します。このクラスは、リース回復コントラクト情報構造の定義と実装に役立つ静的メソッドも提供します。
    ListPathsServlet.java ----継承実装クラス:ファイルシステムのメタ情報を取得します
    MetaRecoveryContext.java ----独立したメモリクラス:進行中の名前ノード回復プロセスのコンテキストデータ
    NameCache.java ----独立したメモリクラス:再利用のために頻繁に使用される名前をキャッシュします
    NameNode.java ----継承実装クラス:名前ノード関数管理および実装クラス名前ノードのコアサーバークラス
    NamenodeFsck.java ----独立したメモリクラス:このクラスは、ネームノードのDFSボリュームシステム検出クラスの基本的な検出を提供します
    NameNodeMXBean.java ----インターフェースクラス:このクラスは、ネームノード情報のJMX管理インターフェースです。
    NotReplicatedYetException.java ----継承実装クラス:ファイルに例外クラスが割り当てられていません
    PresidentingReplicationBlocks.java ----独立したメモリクラス:このクラスPendingReplicationBlocksは、コピーされるデータブロックの情報テーブル定義のすべての高速コピーレコードを実装します
    PermissionChecker.java ----独立したメモリクラス:このクラスは、実行権限チェック操作を実装します。権限チェックテーブルの構造の定義と実装
    RenewDelegationTokenServlet.java ----継承実装クラス:更新トークンサービス
    SafeModeException.java ----継承実装クラス:名前ノードがセーフモードの場合、クライアントはセーフモードが閉じられるまで名前空間を変更できない場合にこの例外をスローします
    SecondaryNameNode.java ----継承実装クラス:2番目の名前ノード関数の管理および実装クラス
    SerialNumberManager.java ----独立したメモリクラス:ユーザーとグループのシリアル番号への名前のマッピングを管理します
    StreamFile.java ----継承実装クラス:ストリームファイルクラスの実装
    TransferFsImage.java ----継承実装クラス:このクラスは、名前ノードから指定されたファイルを取得する機能を実装します。ファイルの画像情報はhttpメソッドによって取得されます。
    UnderReplicatedBlocks.java ----継承実装クラス:コピー完了後のブロック情報テーブルのコピーブロック定義のクラスの実装
    UnsupportedActionException.java ----継承クラス:操作でサポートされていない例外
    UpgradeManagerNamenode.java ----継承実装クラス:ネームノードアップグレードの管理
    UpgradeObjectNamenode.java ----抽象クラス:名前ノードオブジェクトの更新クラスデータノードの更新は、名前ノードの別のスレッドアップグレードオブジェクト情報で実行されます

    Hdfs.server.datanode(データノードの実装)

    BlockAlreadyExistsException.java ----継承実装クラス:ターゲットブロックにはすでに例外があります
    BlockMetadataHeader.java ----独立したメモリクラス:データブロックヘッダー構造の定義と実装
    BlockReceiver.java ----継承実装クラス:このクラスは、ブロックを受信して​​独自のディスクに書き込む機能を実装し、別のディスクデータブロック受信にコピーすることもできます。コンテナ情報の構造と実装はディスクに書き込まれます。データブロックは受信されてローカルディスクに書き込まれ、他のノードにコピーされる場合があります
    BlockSender.java ----継承実装クラス:ディスクからブロックを読み取り、受信先に送信します。ディスクからデータブロックを読み取り、対応する受信者に送信します。
    BlockTransferThrottler.java ----独立したメモリクラス:データブロックの送信を調整します。ブロックが送信されるときに調整パラメータ構成テーブルを調整します。
    DataBlockScanner.java ----継承実装クラス:データブロックスキャンツールの実装DataBlockScannerには独自のスレッドがあり、現在のDataNodeによって管理されているデータブロックファイルから定期的に検証できます。実際、最も重要なメソッドはverifyBlockDataBlockScannerの他の補助メソッドです。 DataBlockScannerによって管理されるデータブロックファイル情報を追加/削除およびソートするために使用されます
    DataNode.java ----継承実装クラス:データブロックのデータノードコアマネージャーの機能の管理と実装
    DatanodeBlockInfo.java ----独立したメモリクラス:このクラスは、データブロックからそのメタデータへのマッピングを維持して、ブロックファイルとそれが属するFSVolumeを作成するためにデータノードによって使用されます。間のマッピング関係
    DataNodeMXBean.java ----インターフェイスクラス:データノード情報用のJMX管理インターフェイスの実装
    DataStorage.java ----継承実装クラス:データストレージ情報ファイル
    DataXceiver.java ----継承実装クラス:入力/出力データストリームを処理するためのスレッド
    DataXceiverServer.java ----継承実装クラス:データブロックを送受信するためのサービス
    FSDataset.java ----継承実装クラス:FSDatasetクラスは、データブロックコレクションを管理する機能を実装します。
    FSDatasetAsyncDiskService.java ----独立したメモリクラス:このクラスは、各ボリュームに複数のスレッドプールのコンテナを実装するため、データごとに非同期ディスク操作を簡単にスケジュールできます。ブロックディレクトリはスレッドプールを作成し、それをスレッドグループとして使用します。プールの最小値は1、最大値は4です。現在のバージョンでは、削除操作のみが非同期処理のためにスレッドプールを介してタスクをスケジュールし、読み取りおよび書き込み操作はすべてファイル転送です。操作は同期されて実行されます
    FSDatasetInterface.java ----インターフェイスクラス:これは、データノードストレージブロックの基盤となるストレージを実装するインターフェイスです。FSDatasetInterfaceは、ボトムオフィス用のDataNodeのストレージを抽象化したものです。
    SecureDataNodeStarter.java ----継承実装クラス:このクラスは、セキュアクラスターにデータノードを実装し、コミットする前に特権リソースを必要とし、それらをデータノードに送信します。
    UpgradeManagerDatanode.java ----継承実装クラス:このクラスは、データノードのアップグレード管理を実装します
    UpgradeObjectDatanode.java ---- abstract class:このクラスは、データノードのアップグレードが別のスレッドで実行されるデータノードのアップグレードオブジェクトの基本クラスです。

    Hdfs(クライアント実装)

    BlockReader.java ----インターフェイスクラス:このインターフェイスは、ローカルおよびリモートのブロック読み取りおよび共有用です。
    BlockReaderLocal.java ----継承実装クラス:ローカルブロック読み取り
    ByteRangeInputStream.java ----抽象クラス:HTTPバイトストリームをサポートするには、HTTPサービスへの新しい接続を毎回確立する必要があります
    ChecksumDistributedFileSystem.java ----継承実装クラス:分散ファイルシステムの検出
    DFSClient.java ----独立したメモリクラス:DFSClientクラスは、Hadoopファイルシステムに接続して、基本的なファイル操作を実行できます。
    DFSConfigKeys.java ----継承実装クラス:このクラスには、HDFSで使用される定数が含まれています
    DFSUtil.java ----独立したメモリクラス:DFSユーティリティ
    DistributedFileSystem.java ----継承実装クラス:DFSシステムの抽象ファイルシステム実装分散ファイルシステム機能の実装
    HftpFileSystem.java ----継承実装クラス:HTTPを介してファイルシステムのプロトコルを実行し、HTTPプロトコルを使用してHDFSファイルにアクセスします
    HsftpFileSystem.java ----継承実装クラス:HTTPSを介してファイルシステムのプロトコルを実行し、HTTPSプロトコルを使用してHDFSファイルにアクセスします
    LeaseRenewer.java ----独立したメモリクラス:リースを更新

    Hdfs.server.namenode.metrics(名前ノードのメトリックデータのコレクション)

    FSNamesystemMBean.java ----インターフェイスクラス:このインターフェイスは、名前ノードのファイル状態情報を取得して、名前ノードのFSNamesystem状態を取得する方法を定義します。
    NameNodeInstrumentation.java ----継承実装クラス:名前ノード仕様クラス

    Hdfs.server.datanode.metrics(データノード上のメトリックデータのコレクション)

    DataNodeInstrumentation.java ----継承実装クラス:データノードのいくつかの仕様
    FSDatasetMBean.java ----インターフェイスクラス:このインターフェイスは、データノードのFSDatasetの状態を取得するメソッドを定義します。データセットの関数定義

    3.アプリケーションパッケージ

    hdfs.toolsとhdfs.server.balancerを含むこれら2つのパッケージは、HDFSステータス情報ツールdfsadmin、ファイルシステムチェックツールfsck、およびHDFSイコライザーバランサー(start-balancer.shで開始)の実装を提供します。

    Hdfs.tools(HDFSステータス情報ツールdfsadminのクエリ、ファイルシステムチェックツールfsckの実装)

    DelegationTokenFetcher.java ----独立したメモリクラス:このクラスは、現在の名前ノードからのDelegationTokenの取得を実装し、指定されたファイルに格納します。
    DFSAdmin.java ----継承実装クラス:このクラスは、管理者コマンドの実装にいくつかのDFSアクセス管理を実装します。
    DFSck.java ----継承実装クラス:このクラスは、DFSボリュームの基本的なチェックを実装しますファイルシステムチェックコマンドの実装
    HDFSConcat.java ----独立したメモリクラス:HDFS連結

    Hdfs.server.balancer(HDFSイコライザーバランサーの実装)

    Balancer.java ----継承実装クラス:負荷分散プロセス。タスクバランスバランスに基づく各ノードは、一部のデータノードがすべて使用されるか、新しいノードがクラスターに追加されるときに使用されるツールです。 HDFSクラスターのディスクスペース使用量のバランスをとる

    4.WebHDFS関連パッケージ

    hdfs.web.resources、hdfs.server.namenode.metrics.web.resources、hdfs.server.datanode.web.resources、hdfs.webを含めて合計4つのパッケージ。

    WebHDFSは、HDFS 1.0で導入された新機能であり、HTTPを介してHDFSにアクセスするための完全なメカニズムを提供します。読み取り専用のhftpファイルシステムと比較して、WebHDFSはHTTPを介してHDFSを読み書きする機能を提供し、これに基づいて、HDFSにアクセスするCクライアントおよびユーザースペースファイルシステム(FUSE)を実装します。


    参照:

    Hadoopテクノロジーインサイダー-HadoopCommonおよびHDFSアーキテクチャの設計と実装の原則の詳細な分析