145.7. 在 OSGi 中使用该组件


在与 Hadoop 2.x 用于发现不同的 org.apache.hadoop.fs.FileSystem 实施机制相关的 OSGi 环境中运行该组件时,有一些要求。Hadoop 2.x 使用 java.util.ServiceLoader,查找 /META-INF/services/org.apache.hadoop.fs.FileSystem 文件定义可用文件系统类型和实施。这些资源在 OSGi 中运行时不可用。

与 camel-hdfs 组件一样,默认的配置文件需要从捆绑包类加载程序中看到。处理它的典型方法是在捆绑包 root 中保留 core-default.xml 副本(如 hdfs-default.xml)。

有两个选项:

  1. 软件包 /META-INF/services/org.apache.hadoop.fs.FileSystem 资源,其中包含定义路由的捆绑包。此资源应列出所有必需的 Hadoop 2.x 文件系统实施。
  2. 提供样板初始化代码,在 org.apache.hadoop.fs.FileSystem 类中填充内部静态缓存:
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);
...
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat