Francis Du

💻 Big Data Engineer | 🦀 Rustacean | 🥳 Co-organizer @GDG Beijing

28 Jul 2019

HBase源码阅读环境搭建

  1. 克隆源码
git clone [email protected]:apache/hbase.git
  1. 选择分支
git checkout branch-2.2(自己选一个分支)
  1. 修改脚本 如果你的操作系统是Windows,请修改脚本 hbase\hbase-common\src\saveVersion.sh 这里的${hostname} ${user} 都改成你的用户名,或者写死,随便都可以。 原因是因为在 cygwin 环境下执行此脚本的时候会多获取一个回车, 会导自动生成的Version.java类无法编译。
// 要修改的地方
Line 45  url="git://${hostname}{cwd}" 
Line 76  public static final String user = "${user}";

// 自动生成的 Version 类
/*
 * Generated by src/saveVersion.sh
 */
package org.apache.hadoop.hbase;

import org.apache.yetus.audience.InterfaceAudience;

@InterfaceAudience.Private
public class Version {
  public static final String version = "2.2.1-SNAPSHOT";
  public static final String revision = "ac0375685291b72f45a800ebb1cca02901042bb7";
  public static final String user = "francis";
  public static final String date = "Sun Jul 28 17:23:04     2019";
  public static final String url = "git://francis/cygdrive/d/Java/hbase";
  public static final String srcChecksum = "88f3dc17f75ffda6176faa649593b54e";
}
  1. 修改pom      如果你的操作系统是Windows,请修改pom文件 hbase\hbase-common\pom.xml
// 把这里的 bash 改成 sh,否则你的 windows 无法执行以上脚本
Line 95 <exec executable="sh" failonerror="true">
  1. 编译源码
mvn clean install -DskipTests assembly:single
  1. 调试配置
  • 配置并启动 HMaster

配置 HMaster 启动参数:如果不配置 log4j, HMaster无法启动

HMaster 启动成功

进入HBase Web UI 查看 http://localhost:16010,启动HMaster之后会默认给你启动一个Hregionserver.

  • 配置并启动 HHbase Shell

配置 HBase Shell 启动参数

HBase Shell 启动成功