Apache Rya 安装指南
Apache Rya 4.0.1 安装指南:JDK8+Maven 准备、源码下载解压、mvn clean install 构建(BUILD SUCCESS、69 构件入本地仓库)、关键产物与依赖核查。
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 war | web/web.rya/target/web.rya.war | 88M |
| RyaShell 全量 jar | extras/shell/target/rya.shell-4.0.1-shaded.jar | 100M |
| RyaShell 本体 | extras/shell/target/rya.shell-4.0.1.jar | 76K |
| 核心 API | common/rya.api/target/rya.api-4.0.1.jar | 224K |
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 ZooKeeper | 3.4.6 |
| Eclipse RDF4J | 2.3.1 |
| Lucene(索引模块) | 5.5.4 |
六、验证安装
应用工程以 Maven 依赖方式引用(如 rya.api / rya.sail / accumulo.rya),验证依赖可解析:
mvn -q dependency:resolve
在含上述依赖的工程中执行返回 BUILD SUCCESS 即安装可用;更完整的运行验证(MiniAccumuloCluster 伪集群写入 + SPARQL 查询)见《Apache Rya 构建并运行示例应用指南》。
七、受限说明:后端依赖与运行路径
⚠️ 受限前置说明:
- Rya 无独立 standalone 服务,必须挂载到 Accumulo 后端才能读写与查询;仅构建 jar 不构成可运行服务。
- 运行验证的可行路径是 MiniAccumuloCluster 伪集群(
rya.test.accumulo提供),内置 ZooKeeper + Master + TabletServer + GC,root/q1w2e3r4,实测全链路通过。- 正式生产部署需自行准备 Accumulo 1.6.4 + ZooKeeper 3.4.6 + Hadoop 2.5.0(与 Rya 4.0.1 锁定的版本匹配),并将
accumulo.*配置指向集群(键位见《Apache Rya 配置参数详解》)。- 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/。