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

相关推荐
|CXHAO|1 分钟前
使用tomcat本地部署draw.io
java·tomcat·draw.io
祈祷苍天赐我java之术10 分钟前
Maven 从入门到精通
java·maven
没有bug.的程序员12 分钟前
Redis 内存管理机制:深度解析与性能优化实践
java·数据库·redis·性能优化·内存管理机制
小蒜学长21 分钟前
基于SpringBoot+Vue的健身房管理系统的设计与实现(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端
Seven9723 分钟前
Redis是如何高效管理有限内存的?
java
勇往直前plus26 分钟前
Milvus快速入门以及用 Java 操作 Milvus
java·spring boot·embedding·milvus
失散1326 分钟前
分布式专题——2 深入理解Redis线程模型
java·数据库·redis·分布式·架构
王伯安呢1 小时前
Java开发环境配置入门指南
java·开发语言·jvm·eclipse·环境搭建·新手
rockmelodies1 小时前
Java安全体系深度研究:技术演进与攻防实践
java·开发语言·安全
代码栈上的思考2 小时前
深入解析 Java 内存可见性问题:从现象到 volatile 解决方案
java·开发语言