首批通过分布式安全可靠测评,为关键业务系统打造
部署 OceanBase 数据库 JAVA SDK 环境
更新时间:2026-04-24 14:12:15
OceanBase 数据库现已支持对接 JAVA SDK 对接文件系统,作为外表的第三方数据源。该功能实现使用了 JNI 框架,所以对应的 OceanBase 数据库环境需要部署 JAVA SDK 环境。
环境配置
注意
如果需要使用 HDFS/ODPS 外表功能,并且 OceanBase 数据库是分布式部署,那么对应机器节点都需要进行如下的部署配置 JAVA 环境和安装依赖,不可仅设置某一节点。
所有环境配置和依赖安装操作均需以 admin 用户身份 执行。请通过以下方式切换用户:
su - admin
部署配置 JAVA 环境
通过 下载地址 下载 OpenJDK JAVA 安装包。
注意
请使用 OpenJDK 11 最新版本。
本文以下载 OpenJDK 11.0.29+7 版本为例,具体操作步骤如下:
[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通过正常解压缩对应的安装包即可。
示例如下:
[admin@xxx /home/admin/rpm]# sudo tar -zxvf openlogic-openjdk-11.0.29+7-linux-x64.tar.gz安装路径如下:
/home/admin/rpm/openlogic-openjdk-11.0.29+7-linux-x64注意
该路径用于配置当前 OBServer 运行节点上的 java home 目录,即对应配置项 ob_java_home 的取值。
安装依赖
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 动态库
获取 devdeps-hdfs-sdk RPM 安装包。
- 企业版用户请联系技术支持获取 devdeps-hdfs-sdk RPM 安装包。
- 开源版用户可在 阿里云 OceanBase 镜像 页面中点击
development-kit/目录,进入开发工具资源目录,下载 devdeps-hdfs-sdk RPM 安装包。
获取安装包后,根据如下命令进行安装。
sudo rpm -Uvh devdeps-hdfs-sdk-3.3.6-xxxxx.xxx.xxx.rpm示例如下:
sudo rpm -Uvh devdeps-hdfs-sdk-3.3.6-112024123116.el7.x86_64.rpm检查对应安装是否符合预期。
需要有
libhdfs.so和libhdfs.so.0.0.0文件,且对应的软链接正常。示例如下:
$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 包路径
获取 devdeps-java-extensions RPM 安装包。
企业版用户请联系技术支持获取 devdeps-java-extensions RPM 安装包。
开源版用户可在 阿里云 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 安装包。
获取安装包后,根据如下命令进行安装。
sudo rpm -Uvh devdeps-java-extensions-x.x.x-xxxxxxxxxxxx.xxx.xxxxxx.rpm --prefix=/user_install_directory示例如下:
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文件是否存在。示例如下:
$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 的取值。
(可选)重启 observer 进程
说明
- 如果是初次使用 JAVA SDK 环境,不需要重启 observer 进程。
- 由于当前的 OBServer 支持的 JNI 相关配置项无法做到灵活的及时设置及时生效,所以如果需要尝试变更相关 java 环境变量的配置项,需要重启 observer 进程才可生效。
在使用 HDFS/ODPS 外表功能的时候,需要进行对应 OBServer 服务器的设置,设置步骤参考如下。
注意
以下所有配置项均为集群配置,一次设置即可,不用所有节点单独设置。
步骤一:设置 JAVA 环境启动的相关配置项
注意
以下设置均在 sys 租户中操作。
开启 java env,用于外表的 sdk(java sdk)访问。
示例如下:
ALTER SYSTEM SET ob_enable_java_env = true;该设置的详细介绍信息,参见 ob_enable_java_env。
设置当前 OBServer 运行节点上的 java home 目录。
说明
该路径来自于 OpenJDK JAVA 安装路径。
示例如下:
ALTER SYSTEM SET ob_java_home = "/home/admin/rpm/openlogic-openjdk-11.0.29+7-linux-x64";该设置的详细介绍信息,参见 ob_java_home。
设置 OBServer 启动的 jvm 可加载的可执行依赖 jar 包路径。
说明
该路径来自于 jar 包 RPM 安装路径。
示例如下:
ALTER SYSTEM SET ob_java_connector_path = "/home/admin/oceanbase/jni_packages/v1.0.0";该设置的详细介绍信息,参见 ob_java_connector_path。
设置 java 环境启动的相关配置项
创建对应的日志文件夹路径。
mkdir -p /home/user/jvmlogs mkdir -p /home/user/jvmlogs/heapdumps设置 java 运行的 jvm 启动配置项。
示例如下:
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。
注意
- 该配置项变更需要重启 observer 进程,由于当前的 HDFS 对接使用的内存拷贝为 HDFS 数据流直接拷贝到 cpp 内存堆上,可以适当减少
-Xmx2048m -Xms2048m的设置。 - gc 日志文件仅在配置文件夹路径存在时生成;若路径不存在,则不会生成。
- 该配置项变更需要重启 observer 进程,由于当前的 HDFS 对接使用的内存拷贝为 HDFS 数据流直接拷贝到 cpp 内存堆上,可以适当减少
(可选)设置 ODPS 使用 JAVA SDK 配置项。
注意
HDFS JAVA SDK 不需要设置该配置项,其他配置项完全一样。
如需使用 JAVA SDK,需要设置
_use_odps_jni_connector为true。ALTER SYSTEM SET _use_odps_jni_connector = true;
步骤二(可选):无 sudo 权限下的 hdfs-sdk 包解压操作
若当前环境无法获取
sudo权限执行安装命令,可通过rpm2cpio命令手动解压 devdeps-hdfs-sdk RPM 安装包,您可以可根据需要自行放置需要的路径。示例如下:
rpm2cpio devdeps-hdfs-sdk-3.3.6-xxxxx.xxx.xxx.rpm | cpio -idmv指定目标路径。
解压安装包后,可以使用
mv命令将解压后的文件移动至用户可访问的自定义路径(例如~/hdfs_lib)。示例如下:
mv ./usr/local/oceanbase/deps/devel/lib/* ~/hdfs_lib/获取并确认绝对路径。
可以使用
realpath命令查看自定义路径的绝对路径。示例如下:
realpath ~/hdfs_lib返回结果如下:
/home/${user_name}/hdfs_lib配置 OceanBase 数据库路径变量。
示例如下:
登录 sys 租户,执行以下命令将自定义路径注册到系统配置。
注意
- 在执行以下语句时请将示例中的
${user_name}替换为实际的路径。 - 路径必须是绝对路径,多个路径用冒号
:分隔,不能有空格。
ALTER SYSTEM SET _ob_additional_lib_path = '/home/${user_name}/hdfs_lib';- 在执行以下语句时请将示例中的
步骤三:重启 observer 进程
停止所有机器中的 observer 进程,然后重新启动 observer 进程。
切换至
admin用户。[admin@xxx /home/admin/oceanbase/etc]# su - admin停止 observer 进程。
-bash-4.2$ kill -9 `pidof observer`重新启动 observer 进程。
-bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer说明
再次启动 observer 进程时不需要指定启动参数,因为之前的启动参数已经写到参数文件里了。
相关文档
有关创建 ODPS 外表的详细介绍信息,参见 创建外表(MySQL 模式) 或 创建外表(Oracle 模式)