143.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 など) のコピーをバンドルルートに保持することです。

143.6.1. 手動で定義されたルートでこのコンポーネントを使用する

以下の 2 つのオプションがあります。

  1. /META-INF/services/org.apache.hadoop.fs.FileSystem リソースを、ルートを定義するバンドルとともにパッケージ化します。このリソースには、必要な Hadoop 2.x ファイルシステムの実装がすべてリストされている必要があります。
  2. org.apache.hadoop.fs.FileSystem クラス内に内部の静的キャッシュを設定するボイラープレート初期化コードを提供します。
Copy to Clipboard Toggle word wrap
org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
conf.setClass("fs.file.impl", org.apache.hadoop.fs.LocalFileSystem.class, FileSystem.class);
conf.setClass("fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class, FileSystem.class);
...
FileSystem.get("file:///", conf);
FileSystem.get("hdfs://localhost:9000/", conf);
...

143.6.2. ブループリントコンテナーでこのコンポーネントを使用する

2 つのオプション:

  1. /META-INF/services/org.apache.hadoop.fs.FileSystem リソースをブループリント定義を含むバンドルでパッケージ化します。
  2. 以下をブループリント定義ファイルに追加します。
Copy to Clipboard Toggle word wrap
<bean id="hdfsOsgiHelper" class="org.apache.camel.component.hdfs2.HdfsOsgiHelper">
   <argument>
      <map>
         <entry key="file:///" value="org.apache.hadoop.fs.LocalFileSystem"  />
         <entry key="hdfs://localhost:9000/" value="org.apache.hadoop.hdfs.DistributedFileSystem" />
         ...
      </map>
   </argument>
</bean>

<bean id="hdfs2" class="org.apache.camel.component.hdfs2.HdfsComponent" depends-on="hdfsOsgiHelper" />

このようにして、Hadoop 2.x は URI スキームをファイルシステム実装に正しくマッピングします。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.