HBase是构建于Hadoop之上的分布式NoSQL数据库,支持实时读写大规模数据。以下是在Ubuntu系统中配置HBase(伪分布式模式)的详细步骤,涵盖环境准备、安装、配置及验证。
系统要求
安装基础依赖
sudo apt update
sudo apt install -y openjdk-8-jdk hadoop openssh-server
java -version(需显示Java 1.8.x);hadoop version(需显示Hadoop版本信息)。wget命令:wget https://archive.apache.org/dist/hbase/2.5.4/hbase-2.5.4-bin.tar.gz
tar -xzvf hbase-2.5.4-bin.tar.gz
sudo mv hbase-2.5.4 /usr/local/hbase
~/.bashrc文件,添加HBase路径:echo 'export HBASE_HOME=/usr/local/hbase' >> ~/.bashrc
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> ~/.bashrc
source ~/.bashrc # 使配置生效
验证安装:hbase version(需显示HBase版本信息)。HBase的核心配置文件位于$HBASE_HOME/conf目录下,需修改以下两个文件:
hbase-env.sh(环境变量)编辑hbase-env.sh,设置Java路径和ZooKeeper管理:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # Java安装路径
export HBASE_MANAGES_ZK=true # 让HBase自带ZooKeeper(伪分布式模式推荐)
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true # 避免Hadoop依赖冲突
hbase-site.xml(核心配置)编辑hbase-site.xml,添加以下属性:
<configuration>
<!-- HBase数据存储路径(本地文件系统,伪分布式模式) -->
<property>
<name>hbase.rootdir</name>
<value>file:///usr/local/hbase/hbase-tmp</value>
</property>
<!-- 启用分布式模式(伪分布式需设为true) -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper数据目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/zookeeper</value>
</property>
<!-- 关闭HBase对Hadoop类路径的检查(避免依赖冲突) -->
<property>
<name>hbase.disable.hadoop.classpath.lookup</name>
<value>true</value>
</property>
</configuration>
注意:
hbase.rootdir需指向本地目录(伪分布式模式),若为完全分布式模式则需改为HDFS路径(如hdfs://localhost:9000/hbase)。
启动HBase服务
在$HBASE_HOME/bin目录下执行:
cd /usr/local/hbase/bin
./start-hbase.sh
启动后,通过jps命令查看进程,应看到HMaster(主节点)和HRegionServer(Region服务器)进程。
验证HBase状态
启动HBase Shell:
hbase shell
输入status命令,若显示“1 active master, 1 servers”则表示启动成功。
创建表
在HBase Shell中执行:
create 'test_table', 'cf' # 创建名为test_table的表,包含列族cf
插入数据
put 'test_table', 'row1', 'cf:col1', 'value1' # 向row1行、cf列族的col1列插入值value1
查询数据
get 'test_table', 'row1' # 获取row1行的所有数据
scan 'test_table' # 扫描表中所有数据
退出Shell
exit
停止HBase
./stop-hbase.sh
java.net.BindException: Port already in usenetstat -tulnp | grep <port>查看占用进程,杀掉冲突进程或修改HBase配置中的端口。hbase-site.xml中的hbase.rootdir路径是否存在,或是否有写入权限(chmod -R 755 /usr/local/hbase)。hbase-env.sh中HBASE_MANAGES_ZK=true,并检查hbase.zookeeper.property.dataDir目录是否存在。通过以上步骤,即可在Ubuntu系统中完成HBase的配置与基本使用。伪分布式模式适用于学习和测试场景,若需大规模部署,可扩展至完全分布式模式(需多台服务器)。