145.7. 在 OSGi 中使用此组件
在用于发现不同的 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)的副本。
145.7.1. 将这个组件与手动定义的路由一起使用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
有两个选项:
-
使用定义路由的捆绑包,打包
/META-INF/services/org.apache.hadoop.fs.FileSystem资源。此资源应列出所有所需的 Hadoop 2.x 文件系统实施。 -
提供 boilerplate 初始化代码,在
org.apache.hadoop.fs.FileSystem类中填充内部静态缓存:
145.7.2. 将此组件与 Blueprint 容器一起使用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
两个选项:
-
带有包含蓝图定义的捆绑包,打包
/META-INF/services/org.apache.hadoop.fs.FileSystem资源。 - 在蓝图定义文件中添加以下:
这样,Hadoop 2.x 将具有正确的 URI 方案映射到文件系统实施。