Apache Omid Idea Debug 环境搭建

IDEA 搭建 Apache Omid 源码 DEBUG 环境

Apache Omid 在 Apache HBase 之上提供了多行分布式事务的能力,支持全局 MVCC 功能。简单介绍编译过程。

1.下载 HBase2 并启动

https://dlcdn.apache.org/hbase/

配置环境变量

shell 复制代码
export HBASE_HOME=/xxx/hbase-2.4.18
export PATH=$PATH:$HBASE_HOME/bin:

2.编译

代码编译

shell 复制代码
git clone https://github.com/apache/phoenix-omid

基于最新的 master af8e377affcd76b1cbde5cab3513731b23bd51fc 编译。

maven 依赖处理

有几处编译报错,处理如下:

根 pom 里添加:

xml 复制代码
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.el</artifactId>
    <version>3.0.1-b06</version>
</dependency>

hbase-common 里添加:

xml 复制代码
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.el</artifactId>
    <version>3.0.1-b06</version>
    <scope>test</scope>
</dependency>

timestamp-storage 模块里添加依赖:

xml 复制代码
<dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>5.1.0</version>
    <scope>compile</scope>
</dependency>
shell 复制代码
# 编译
mvn clean install -Phbase-2 -DskipTests
# 查看 tso-server/target/tso-server-<VERSION>-bin.tar.gz 编译产物并解压
# 进入编译产物的 tso-server-<VERSION> 目录
cd tso-server-<VERSION>

创建 Omid tables

shell 复制代码
bin/omid.sh create-hbase-commit-table -numRegions 16
bin/omid.sh create-hbase-timestamp-table

3. 启动 TSO server

方式 1:bin/omid.sh tso

方式 2:运行 org.apache.omid.tso.TSOServer#main

4.Demo 验证

运行工程 examples 下的 org.apache.omid.examples.BasicExample 和 org.apache.omid.examples.SnapshotIsolationExample,结果运行成功。

sql 复制代码
-- 运行 demo 前,先通过 habase shell 创建对应的表
create 'MY_TX_TABLE', {NAME => 'MY_CF', VERSIONS => '2147483647', TTL => '2147483647'}

BasicExample: 在 HBase 中执行包含多行修改的事务,保证原子性

SnapshotIsolationExample: 展示 Omid 在并发事务访问共享数据时如何保证快照隔离

ConfigurationExample: 展示 Omid 客户端配置选项的基本示例

参考

omid-quickstart

相关推荐
晨曦中的暮雨5 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
文丑颜不良啊6 小时前
LeetCode876~900题目解析
java·leetcode
aloha_7897 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
知守观8 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅8 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
Wang's Blog8 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
SL_staff8 小时前
JVS私有化文档系统上线避坑指南:5大运维与业务协同断点及检测加固实践
java·开源·全栈
FinelyYang10 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践
java·大数据·人工智能
hhhjhl10 小时前
Yup 跨端三方库仓颉适配全流程
java·开发语言
用户31268748772010 小时前
Java 对象内存布局:压缩指针、对齐填充与 JOL 实测
java