---
title: "部署 OceanBase 数据库 JAVA SDK 环境 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 部署 OceanBase 数据库 JAVA SDK 环境 OceanBase 数据库现已支持对接 JAVA SDK 对接文件系统，作为外表的第三方数据源。该功能实现使用了 JNI 框架，所以对应的 OceanBase 数据库环境需要部署 JAVA SDK 环境。 环境配置 注意 如果需要使用 HDFS/ODPS 外表…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.6.0

# 部署 OceanBase 数据库 JAVA SDK 环境

更新时间：2026-06-11 12:41:22

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/400.deploy/300.deploy-oceanbase-enterprise-edition/500.deploy-the-ob-java-sdk-environment.md)  

OceanBase 数据库现已支持对接 JAVA SDK 对接文件系统，作为外表的第三方数据源。该功能实现使用了 JNI 框架，所以对应的 OceanBase 数据库环境需要部署 JAVA SDK 环境。

## 环境配置

#### 注意

如果需要使用 HDFS/ODPS 外表功能，并且 OceanBase 数据库是分布式部署，那么对应机器节点都需要进行如下的部署配置 JAVA 环境和安装依赖，不可仅设置某一节点。

所有环境配置和依赖安装操作均需以 admin 用户身份 执行。请通过以下方式切换用户：

```bash
su - admin

```

### 部署配置 JAVA 环境

1. 通过 [下载地址](https://www.openlogic.com/openjdk-downloads) 下载 OpenJDK JAVA 安装包。

   #### 注意

   请使用 OpenJDK 11 最新版本。

   本文以下载 OpenJDK 11.0.29+7 版本为例，具体操作步骤如下：

   ```shell
   [admin@xxx /home/admin/rpm]# wget https://builds.openlogic.com/downloadJDK/openlogic-openjdk/11.0.29+7/openlogic-openjdk-11.0.29+7-linux-x64.tar.gz

   ```
 2. 通过正常解压缩对应的安装包即可。

   示例如下：

   ```shell
   [admin@xxx /home/admin/rpm]# sudo tar -zxvf openlogic-openjdk-11.0.29+7-linux-x64.tar.gz

   ```

   安装路径如下：

   ```shell
   /home/admin/rpm/openlogic-openjdk-11.0.29+7-linux-x64

   ```

   #### 注意

   该路径用于配置当前 OBServer 运行节点上的 java home 目录，即对应配置项 [ob_java_home](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685559) 的取值。

### 安装依赖

OceanBase 数据库使用 HDFS/ODPS 外表功能还需依赖以下组件：

- devdeps-hdfs-sdk RPM 包：

  该包包含 HDFS/ODPS 等外表运行时所需的动态链接库文件，提供 JVM 环境与 JNI（Java Native Interface）交互的核心接口。该组件作为 Java 虚拟机与本地外表 JAVA SDK 的通信桥梁，确保外表功能的稳定运行。
 - devdeps-java-extensions RPM 包：

  该包整合了 HDFS 外表及其他外部数据源（如 ODPS）所需的核心依赖库（JAR 文件）。该扩展包包含完整的 Java 运行时依赖链，确保外表功能在分布式场景下的兼容性与性能优化。

#### 部署配置依赖的 HDFS.so 动态库

1. 获取 devdeps-hdfs-sdk RPM 安装包。

      - 企业版用户请联系技术支持获取 devdeps-hdfs-sdk RPM 安装包。
      - 开源版用户可在 [阿里云 OceanBase 镜像](https://mirrors.aliyun.com/oceanbase/) 页面中点击 `development-kit/` 目录，进入开发工具资源目录，下载 devdeps-hdfs-sdk RPM 安装包。
 2. 获取安装包后，根据如下命令进行安装。

   ```shell
   sudo rpm -Uvh devdeps-hdfs-sdk-3.3.6-xxxxx.xxx.xxx.rpm

   ```

   示例如下：

   ```shell
   sudo rpm -Uvh devdeps-hdfs-sdk-3.3.6-112024123116.el7.x86_64.rpm

   ```
 3. 检查对应安装是否符合预期。

   需要有 `libhdfs.so` 和 `libhdfs.so.0.0.0` 文件，且对应的软链接正常。

   示例如下：

   ```shell
   $ll /usr/local/oceanbase/deps/devel/lib
   total 376
   lrwxrwxrwx 1 root root     16 Dec 24 19:49 libhdfs.so -> libhdfs.so.0.0.0
   -rwxr-xr-x 1 root root 384632 Dec 24 19:09 libhdfs.so.0.0.0

   ```

#### 部署配置依赖的 jar 包路径

1. 获取 devdeps-java-extensions RPM 安装包。

      - 企业版用户请联系技术支持获取 devdeps-java-extensions RPM 安装包。
      - 开源版用户可在 [阿里云 OceanBase 镜像](https://mirrors.aliyun.com/oceanbase/) 页面中点击 `development-kit/` 目录，进入开发工具资源目录，下载 devdeps-java-extensions RPM 安装包。

       #### 注意

            - OceanBase 数据库 V4.3.5 BP1 及之前版本：请下载 1.0.0 版本 devdeps-java-extensions RPM 安装包。
            - OceanBase 数据库 V4.3.5 BP2 及之后版本：请下载 1.0.1 版本 devdeps-java-extensions RPM 安装包。
            - OceanBase 数据库 V4.4.0 版本：请下载 1.0.1 版本 devdeps-java-extensions RPM 安装包。
            - OceanBase 数据库 V4.4.1 版本：请下载 1.0.2 版本 devdeps-java-extensions RPM 安装包。
            - OceanBase 数据库 V4.4.2 及更高版本：请下载 1.0.4 版本 devdeps-java-extensions RPM 安装包。
 2. 获取安装包后，根据如下命令进行安装。

   ```shell
   sudo rpm -Uvh devdeps-java-extensions-x.x.x-xxxxxxxxxxxx.xxx.xxxxxx.rpm --prefix=/user_install_directory

   ```

   示例如下：

   ```shell
   sudo rpm -Uvh devdeps-java-extensions-1.0.0-122025032514.el7.x86_64.rpm --prefix=/home/admin/oceanbase

   查看安装路径 `/home/admin/oceanbase/jni_packages/v1.0.0` 下 `oceanbase-odps-connector-jar-with-dependencies.jar` 文件是否存在。

   示例如下：

   ```shell
   $ll /home/admin/oceanbase/jni_packages/v1.0.0
   total 52756
   drwxr-sr-x 4 root root     4096 Dec 24 20:25 hadoop
   drwxr-xr-x 3 root root     4096 Dec 24 20:25 lib
   -rw-r--r-- 1 root root 54008720 Dec 24 19:52 oceanbase-odps-connector-jar-with-dependencies.jar

   ```

   #### 注意

   该路径用于配置 OBServer 启动的 jvm 可加载的可执行依赖 jar 包路径，即对应配置项 [ob_java_connector_path](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685672) 的取值。

## （可选）重启 observer 进程

#### 说明

- 如果是初次使用 JAVA SDK 环境，不需要重启 observer 进程。
 - 由于当前的 OBServer 支持的 JNI 相关配置项无法做到灵活的及时设置及时生效，所以如果需要尝试变更相关 java 环境变量的配置项，需要重启 observer 进程才可生效。

在使用 HDFS/ODPS 外表功能的时候，需要进行对应 OBServer 服务器的设置，设置步骤参考如下。

#### 注意

以下所有配置项均为集群配置，一次设置即可，不用所有节点单独设置。

### 步骤一：设置 JAVA 环境启动的相关配置项

#### 注意

以下设置均在 sys 租户中操作。

1. 开启 java env，用于外表的 sdk（java sdk）访问。

   **示例如下：**

   ```sql
   ALTER SYSTEM SET ob_enable_java_env = true;

   ```

   该设置的详细介绍信息，参见 [ob_enable_java_env](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685724)。
 2. 设置当前 OBServer 运行节点上的 java home 目录。

   #### 说明

   该路径来自于 OpenJDK JAVA 安装路径。

   **示例如下：**

   ```sql
   ALTER SYSTEM SET ob_java_home = "/home/admin/rpm/openlogic-openjdk-11.0.29+7-linux-x64";

   ```

   该设置的详细介绍信息，参见 [ob_java_home](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685559)。
 3. 设置 OBServer 启动的 jvm 可加载的可执行依赖 jar 包路径。

   #### 说明

   该路径来自于 jar 包 RPM 安装路径。

   **示例如下：**

   ```sql
   ALTER SYSTEM SET ob_java_connector_path = "/home/admin/oceanbase/jni_packages/v1.0.0";

   ```

   该设置的详细介绍信息，参见 [ob_java_connector_path](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685672)。
 4. 设置 java 环境启动的相关配置项

      1. 创建对应的日志文件夹路径。

        ```shell
        mkdir -p /home/user/jvmlogs
        mkdir -p /home/user/jvmlogs/heapdumps

        ```
      2. 设置 java 运行的 jvm 启动配置项。

        **示例如下：**

        ```sql
        ALTER SYSTEM SET ob_java_opts="-Xmx2048m -Xms2048m -XX:-CriticalJNINatives -Djdk.lang.processReaperUseDefaultStackSize=true -Xrs -XX:+HeapDumpOnOutOfMemoryError -Xloggc:/home/admin/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/heapdumps/ -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+TieredCompilation -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses ";

        ```

        该设置的详细介绍信息，参见 [ob_java_opts](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685656)。

        #### 注意

             - 该配置项变更需要重启 observer 进程，由于当前的 HDFS 对接使用的内存拷贝为 HDFS 数据流直接拷贝到 cpp 内存堆上，可以适当减少 `-Xmx2048m -Xms2048m` 的设置。
             - gc 日志文件仅在配置文件夹路径存在时生成；若路径不存在，则不会生成。
 5. （可选）设置 ODPS 使用 JAVA SDK 配置项。

   #### 注意

   HDFS JAVA SDK 不需要设置该配置项，其他配置项完全一样。

   如需使用 JAVA SDK，需要设置 `_use_odps_jni_connector` 为 `true`。

   ```sql
   ALTER SYSTEM SET _use_odps_jni_connector = true;

   ```

### 步骤二（可选）：无 sudo 权限下的 hdfs-sdk 包解压操作

1. 若当前环境无法获取 `sudo` 权限执行安装命令，可通过 `rpm2cpio` 命令手动解压 devdeps-hdfs-sdk RPM 安装包，您可以可根据需要自行放置需要的路径。

   **示例如下：**

   ```shell
   rpm2cpio devdeps-hdfs-sdk-3.3.6-xxxxx.xxx.xxx.rpm | cpio -idmv

   ```
 2. 指定目标路径。

   解压安装包后，可以使用 `mv` 命令将解压后的文件移动至用户可访问的自定义路径（例如 `~/hdfs_lib`）。

   **示例如下：**

   ```shell
   mv ./usr/local/oceanbase/deps/devel/lib/* ~/hdfs_lib/

   ```
 3. 获取并确认绝对路径。

   可以使用 `realpath` 命令查看自定义路径的绝对路径。

   **示例如下：**

   ```shell
   realpath ~/hdfs_lib

   ```

   返回结果如下：

   ```shell
   /home/${user_name}/hdfs_lib

   ```
 4. 配置 OceanBase 数据库路径变量。

   **示例如下：**

   登录 sys 租户，执行以下命令将自定义路径注册到系统配置。

   #### 注意

      - 在执行以下语句时请将示例中的 `${user_name}` 替换为实际的路径。
      - 路径必须是绝对路径，多个路径用冒号 `:` 分隔，不能有空格。

   ```sql
   ALTER SYSTEM SET _ob_additional_lib_path = '/home/${user_name}/hdfs_lib';

   ```

### 步骤三：重启 observer 进程

停止所有机器中的 observer 进程，然后重新启动 observer 进程。

1. 切换至 `admin` 用户。

   ```shell
   [admin@xxx /home/admin/oceanbase/etc]# su - admin

   ```
 2. 停止 observer 进程。

   ```shell
   -bash-4.2$ kill -9 `pidof observer`

   ```
 3. 重新启动 observer 进程。

   ```shell
   -bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer

   ```

   #### 说明

   再次启动 observer 进程时不需要指定启动参数，因为之前的启动参数已经写到参数文件里了。

## 相关文档

有关创建 ODPS 外表的详细介绍信息，参见 [创建外表（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685882) 或 [创建外表（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685839)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
