Hadoop Java APIを使用してHDFSの領域割り当てを設定しようとしていますが、ContentSummaryクラスでのみgetSpaceQuotaメソッドを見つけることができます。基本的には、コードはsudo -u hdfs hdfs dfsadmin -setSpaceQuota 1k /quotasdir
コマンドと同じ機能を達成したい。スペースクォータ方式を設定したAPIはありますか?それとも良いアイデアですか?前もって感謝します。JavaのHDFSのスペース割り当てを設定する
2
A
答えて
1
Apache Hadoopコードベースでは、hdfs dfsadmin -setSpaceQuota
コマンドのコードはDFSAdmin
クラスです。そのコードを読んだら、最終的にDistributedFileSystem#setQuota
メソッドに委譲されていることがわかります。このメソッドは、クォータを変更するためにNameNodeへのRPCを実装します。
独自のJavaプログラムでこの機能を再実装する場合は、FileSystem
のインスタンスを取得し、DistributedFileSystem
にダウンキャストしてからDistributedFileSystem#setQuota
にコールする必要があります。
Apache Hadoopは、DistributedFileSystem
クラスに対して強力な下位互換性保証を提供していないことにご注意ください。つまり、新しいHadoopバージョンへのアップグレード後にコードが壊れる可能性があります。このクラスにはLimitedPrivate
とUnstable
と注釈が付けられています。 Apache Hadoop Compatibilityのドキュメントでは、これらのアノテーションの意味について詳しく説明しています。現在、カスタムプログラムからクォータを変更するための、公開された安定したAPIは保証されていません。
関連する問題
- 1. HDFSスペース割り当て(サイズ/使用/使用可能)
- 2. 特定のインスタンスをEC2でHDFSに割り当てる方法
- 3. パーズサーバーを設定してユーザーACLを割り当て、ロールを割り当てる
- 4. バッチオブジェクトの割り当てJava
- 5. Java割り当てのヘルプ
- 6. Javaの割り当て
- 7. デフォルトのリストのユーザータスク割り当て担当者タスクを設定する方法Java対応のAlfresco activiti
- 8. Java非ブロッキングメモリ割り当て
- 9. ng2スマートテーブル設定のプロパティを割り当てる方法
- 10. 犬のクラスJavaの割り当て
- 11. Javaでの配列の割り当て
- 12. インタフェースへのJavaメソッドリファレンスの割り当て
- 13. JavaScriptを設定するJavaScriptタスク割り当て先
- 14. 特定のメソッドでのJavaオブジェクトの割り当て/割り当て解除の監視
- 15. オブジェクトの割り当てとその値の設定の違い
- 16. Javaの奇妙な割り当てルール
- 17. コロンでJava Droolsオブジェクトの割り当て?
- 18. Java文字列の割り当て
- 19. Java - メモリ割り当ての問題(GC_FOR_ALLOC)
- 20. Javaメモリの割り当て解除
- 21. Java - ボタン配列の割り当て
- 22. IF-Else Javaの割り当て
- 23. Javaマッピングストリーム変数の再割り当て
- 24. Java Webstartアプリケーションのメモリ割り当て
- 25. Biztalkの設定BizTalkメッセージのWCF MessageHeadersメッセージの割り当て
- 26. 配列のためのスペースの割り当て
- 27. 割り当ての最適化/設定のカバー
- 28. RStudio ServerのC-スタックメモリ割り当ての設定
- 29. Googleマップマーカーの設定と境界の割り当て - Android
- 30. 設定ファイルに値を割り当てる
明示的な回答ありがとうございます!それは動作します! 'DistributedFileSystem#setQuota'に関するちょっとした質問ですが、スペースクォータだけを設定したいのであれば、' dfs.setQuota(path、Long.MAX_VALUE、some_number) 'を呼び出すことはできますか?スペースクォータをクリアするメソッドを実装したい場合は、 'dfs.setQuota(path、Long.MAX_VALUE、Long.MAX_VALUE)'を呼び出すだけです。再度、感謝します。 – Firechaser
クォータのいずれかを設定することについての理解は正しいです。 'Long.MAX_VALUE'を渡すことができます。ただし、クォータをクリアするには、 '-1L'を渡す必要があります。 ['HdfsConstants'](https://github.com/apache/hadoop/blob/release-2.7.2-RC2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop) /hdfs/protocol/HdfsConstants.java#L56-L58)クラスは、「このクォータを変更しない」と「クォータをリセットする」という特殊な定数を定義します。 –