IDEA 搭建 Apache Omid 源码 DEBUG 环境
Apache Omid 在 Apache HBase 之上提供了多行分布式事务的能力,支持全局 MVCC 功能。简单介绍编译过程。
1.下载 HBase2 并启动
https://dlcdn.apache.org/hbase/
配置环境变量
1 2
| export HBASE_HOME=/xxx/hbase-2.4.18 export PATH=$PATH:$HBASE_HOME/bin:
|
2.编译
代码编译
1
| git clone https://github.com/apache/phoenix-omid
|
基于最新的 master af8e377affcd76b1cbde5cab3513731b23bd51fc
编译。
maven 依赖处理
有几处编译报错,处理如下:
根 pom 里添加:
1 2 3 4 5
| <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.el</artifactId> <version>3.0.1-b06</version> </dependency>
|
hbase-common 里添加:
1 2 3 4 5 6
| <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.el</artifactId> <version>3.0.1-b06</version> <scope>test</scope> </dependency>
|
timestamp-storage 模块里添加依赖:
1 2 3 4 5 6
| <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>5.1.0</version> <scope>compile</scope> </dependency>
|
1 2 3 4 5
| # 编译 mvn clean install -Phbase-2 -DskipTests # 查看 tso-server/target/tso-server-<VERSION>-bin.tar.gz 编译产物并解压 # 进入编译产物的 tso-server-<VERSION> 目录 cd tso-server-<VERSION>
|
创建 Omid tables
1 2
| 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,结果运行成功。
1 2
| create 'MY_TX_TABLE', {NAME => 'MY_CF', VERSIONS => '2147483647', TTL => '2147483647'}
|
BasicExample: 在 HBase 中执行包含多行修改的事务,保证原子性
SnapshotIsolationExample: 展示 Omid 在并发事务访问共享数据时如何保证快照隔离
ConfigurationExample: 展示 Omid 客户端配置选项的基本示例
参考
omid-quickstart