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

相关推荐
devilnumber2 小时前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
asdfg12589634 小时前
JavaBean是什么?怎么理解?有什么用途?
java·开发语言
睡不醒男孩0308235 小时前
中启乘数 CLup 6.x Apache Doris 存算一体集群管理技术文档
apache·doris·clup
摇滚侠5 小时前
SpringMVC 入门到实战 文件上传 75-77
java·后端·spring·maven·intellij-idea
GIS数据转换器6 小时前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
华如锦6 小时前
面了很多 Java转AI Agent方向,一些面试题总结
java·开发语言·人工智能·python·ai
睡不醒男孩0308236 小时前
CLup 6.x 版本中针对StarRocks 存算一体集群的完整操作手册
java·服务器·网络·clup
程序员黑豆7 小时前
Java中怎么实现字符串拼接呢【AI全栈开发】
java
java1234_小锋8 小时前
LangChain4j 开发Java Agent智能体- 多模态支持
java·开发语言·langchain4j