Apache Rya 安装指南

Apache Rya 4.0.1 安装指南:JDK8+Maven 准备、源码下载解压、mvn clean install 构建(BUILD SUCCESS、69 构件入本地仓库)、关键产物与依赖核查。

Apache RyaApache Rya2026/10/13

Apache Rya 安装指南

目标:完成 Apache Rya 4.0.1 的安装。Rya 是 Java Maven 多模块库(sail/web/dao/spark/extras),无独立 standalone 模式,「安装」即源码构建并把 69 个构件安装进本地 Maven 仓库,供应用工程以依赖方式使用。本文给出 JDK 8 + Maven 3.6.3 环境准备、源码下载解压、mvn clean install -DskipTests 构建(真实回显 BUILD SUCCESS)、产物与依赖核查、卸载流程,全部在 Ubuntu 22.04 + JDK 8 环境实测。

⚠️ 受限前置说明:Rya 主存储必须为 Accumulo(含 ZooKeeper、Hadoop 依赖),查询引擎面向 Accumulo 表,本指南为库形态安装(构建 jar 进 Maven 仓库);运行侧验证依赖 Accumulo 后端,可行路径为 MiniAccumuloCluster 伪集群(见《构建并运行示例应用指南》篇实测);正式生产需自行部署 Accumulo 1.6.4 + ZooKeeper 3.4.6 + Hadoop 2.5.0 集群,该步骤在本批受限标注未实测。

一、环境信息

  • 操作系统:Ubuntu 22.04 LTS
  • Java:OpenJDK 1.8.0_504(Rya 4.0.1 必须 JDK 8)
  • 构建工具:Apache Maven 3.6.3
  • Rya 版本:4.0.1(2020-12 发布,source release 4.9M)
  • 源码目录:/opt/rya/rya-project/
  • 演示账号:root

二、前置条件

安装 JDK 8 与 Maven:

apt-get update && apt-get install -y openjdk-8-jdk maven unzip

切换环境变量并验证(注意:Ubuntu 22.04 默认 Java 为 11,必须显式切换到 JDK 8):

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
java -version
mvn -version

回显:

openjdk version "1.8.0_504"
OpenJDK Runtime Environment (build 1.8.0_504-8u504-ga-1ubuntu1~22.04.3-b01)
OpenJDK 64-Bit Server VM (build 25.504-b01, mixed mode)
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 1.8.0_504, vendor: Ubuntu
Default locale: en_US, platform encoding: ANSI_X3.4-1968

三、下载源码

mkdir -p /opt/rya && cd /opt/rya
wget https://downloads.apache.org/rya/rya-4.0.1/rya-project-4.0.1-source-release.zip
ls -lh rya-project-4.0.1-source-release.zip
# -rw-r--r-- 1 root root 4.9M Dec 22  2020 rya-project-4.0.1-source-release.zip

解压(zip 内顶层目录名为 rya-project-4.0.1):

unzip rya-project-4.0.1-source-release.zip
mv rya-project-4.0.1 rya-project

源码顶层结构(10 个模块目录 + 根 pom):

rya-project/
├── pom.xml        # 父 POM:锁定 accumulo 1.6.4 / hadoop 2.5.0 / zookeeper 3.4.6 / RDF4J 2.3.1
├── common         # rya.api / rya.api.model / rya.api.evaluation / rya.common / rya.dao
├── dao            # accumulo.rya / mongodb.rya
├── sail           # rya.sail / rya.sail.factory
├── spark          # rya.spark
├── mapreduce      # rya.mapreduce
├── osgi           # rya.osgi
├── pig            # accumulo.pig
├── test           # rya.test.accumulo / rya.test.mongo / rya.test.rdf / rya.test.kafka
├── extras         # shell(RyaShell CLI)/ indexingExample / rya.export.* / rya.indexing.pcj 等
├── web            # web.rya(war 形态 REST 服务)
└── src            # 构建资源

四、Maven 构建

设置 HADOOP_HOME 可消除 HADOOP_HOME or hadoop.home.dir are not set 提示(该异常被内部捕获、不影响构建,设置后日志干净):

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/opt/rya/hadoop
cd /opt/rya/rya-project
mvn clean install -DskipTests

构建真实回显(尾部汇总,完整耗时 09:54 min):

[INFO] Apache Rya Web Projects ............................ SUCCESS [  0.379 s]
[INFO] Apache Rya Web Implementation ...................... SUCCESS [ 10.375 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  09:54 min
[INFO] Finished at: 2026-10-13T00:43:51Z
[INFO] ------------------------------------------------------------------------

可选构建 profiles(README.md 说明):

Profile用途
geoindexing构建 geomesa/lucene 地理索引相关模块
mongodb以 MongoDB 配置构建(默认 Accumulo)

五、构建产物与依赖核查

5.1 关键产物

产物路径尺寸
web.rya warweb/web.rya/target/web.rya.war88M
RyaShell 全量 jarextras/shell/target/rya.shell-4.0.1-shaded.jar100M
RyaShell 本体extras/shell/target/rya.shell-4.0.1.jar76K
核心 APIcommon/rya.api/target/rya.api-4.0.1.jar224K

5.2 构件安装核查

构建后 69 个 org.apache.rya 构件安装进本地仓库 /root/.m2/repository/org/apache/rya/:

ls /root/.m2/repository/org/apache/rya/
# accumulo.pig  accumulo.rya  alx.rya  alx.rya.console  camel.rya  mongodb.rya  rya-project
# rya.api  rya.api.evaluation  rya.api.model  rya.common  rya.dao  rya.export.*  rya.extras
# rya.forwardchain  rya.indexing  rya.indexing.example  rya.indexing.pcj  rya.kafka.connect.*
# rya.manual  rya.mapreduce  rya.merger  rya.osgi  rya.pcj.fluo.*  rya.sail  rya.spark  ...
ls /root/.m2/repository/org/apache/rya/rya.api/4.0.1/
# rya.api-4.0.1.jar  rya.api-4.0.1-sources.jar  rya.api-4.0.1-tests.jar  rya.api-4.0.1.pom

5.3 依赖版本(root pom.xml 锁定)

依赖版本
Apache Accumulo(accumulo-core)1.6.4
Apache Hadoop(hadoop-common / hdfs)2.5.0
Apache ZooKeeper3.4.6
Eclipse RDF4J2.3.1
Lucene(索引模块)5.5.4

六、验证安装

应用工程以 Maven 依赖方式引用(如 rya.api / rya.sail / accumulo.rya),验证依赖可解析:

mvn -q dependency:resolve

在含上述依赖的工程中执行返回 BUILD SUCCESS 即安装可用;更完整的运行验证(MiniAccumuloCluster 伪集群写入 + SPARQL 查询)见《Apache Rya 构建并运行示例应用指南》。

七、受限说明:后端依赖与运行路径

⚠️ 受限前置说明:

  1. Rya 无独立 standalone 服务,必须挂载到 Accumulo 后端才能读写与查询;仅构建 jar 不构成可运行服务。
  2. 运行验证的可行路径是 MiniAccumuloCluster 伪集群(rya.test.accumulo 提供),内置 ZooKeeper + Master + TabletServer + GC,root/q1w2e3r4,实测全链路通过。
  3. 正式生产部署需自行准备 Accumulo 1.6.4 + ZooKeeper 3.4.6 + Hadoop 2.5.0(与 Rya 4.0.1 锁定的版本匹配),并将 accumulo.* 配置指向集群(键位见《Apache Rya 配置参数详解》)。
  4. web.rya 为 war 形态(88M),部署到 Servlet 容器后通过 classpath 下 environment.properties 指向 Accumulo 实例。

八、卸载

卸载即删除源码与本地仓库构件:

rm -rf /opt/rya/rya-project /opt/rya/rya-project-4.0.1-source-release.zip
rm -rf /root/.m2/repository/org/apache/rya

若安装了 Rya 实例(Accumulo 内),需在 RyaShell 中 uninstall 卸载实例:

rya/miniInstance:rya_shell_demo> uninstall

九、常见问题

Q1:mvn clean install 报类版本错误 / 编译失败? JAVA_HOME 未指向 JDK 8。Ubuntu 22.04 默认 Java 11,必须 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 并确认 java -version 显示 1.8.0_x 后再构建。

Q2:构建日志出现 HADOOP_HOME or hadoop.home.dir are not set? 设置 export HADOOP_HOME=<目录> 后重新构建;该异常被内部捕获,不阻断构建成功。

Q3:需要 web.rya 的 war 吗? 默认构建即产出 web/web.rya/target/web.rya.war(88M);不需要 Web 服务时忽略该产物即可。

Q4:能否不构建全部模块只构建部分? 可以:如只需 RyaClient 相关 API,mvn clean install -DskipTests -pl common/rya.api,dao/accumulo.rya,sail/rya.sail -am(-am 同时构建依赖模块);RyaShell 为 extras/shell。

Q5:下载链接 404? Rya 4.0.1 官方下载地址 https://downloads.apache.org/rya/rya-4.0.1/rya-project-4.0.1-source-release.zip;若镜像同步延迟可换 https://archive.apache.org/dist/rya/rya-4.0.1/。