136.6. このコンポーネントを OSGi で使用する
このコンポーネントを OSGi 環境で実行する場合、Hadoop 2.x がさまざまな org.apache.hadoop.fs.FileSystem 実装を検出するために使用するメカニズムに関連するいくつかの特異な点があります。Hadoop 2.x は、利用可能なファイルシステムのタイプと実装を定義する /META-INF/services/org.apache.hadoop.fs.FileSystem ファイルを探す java.util.ServiceLoader を使用します。OSGi 内で実行している場合、これらのリソースは使用できません。
camel-hdfs コンポーネントと同様に、デフォルトの設定ファイルはバンドルクラスローダーから見える必要があります。これに対処する一般的な方法は、core-default.xml (および hdfs-default.xml など) のコピーをバンドルルートに保持することです。
136.6.1. 手動で定義されたルートでこのコンポーネントを使用する リンクのコピーリンクがクリップボードにコピーされました!
以下の 2 つのオプションがあります。
-
/META-INF/services/org.apache.hadoop.fs.FileSystemリソースを、ルートを定義するバンドルとともにパッケージ化します。このリソースには、必要な Hadoop 2.x ファイルシステムの実装がすべてリストされている必要があります。 -
org.apache.hadoop.fs.FileSystemクラス内に内部の静的キャッシュを設定するボイラープレート初期化コードを提供します。
136.6.2. ブループリントコンテナーでこのコンポーネントを使用する リンクのコピーリンクがクリップボードにコピーされました!
2 つのオプション:
-
/META-INF/services/org.apache.hadoop.fs.FileSystemリソースをブループリント定義を含むバンドルでパッケージ化します。 - 以下をブループリント定義ファイルに追加します。
このようにして、Hadoop 2.x は URI スキームをファイルシステム実装に正しくマッピングします。