HBase在Ubuntu上的部署步骤(伪分布式模式)
sudo apt update && sudo apt upgrade -y
HBase依赖Java环境,推荐使用OpenJDK 11:
sudo apt install openjdk-11-jdk -y
# 验证Java安装
java -version # 应输出Java版本信息(如openjdk 11.0.xx)
HBase需存储在HDFS上,需先安装Hadoop:
# 下载Hadoop(以3.3.1为例)
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
# 解压并移动到指定目录
tar -xzvf hadoop-3.3.1.tar.gz
sudo mv hadoop-3.3.1 /usr/local/hadoop
# 配置Hadoop环境变量(~/.bashrc)
echo "export HADOOP_HOME=/usr/local/hadoop" >> ~/.bashrc
echo "export PATH=\$PATH:\$HADOOP_HOME/bin" >> ~/.bashrc
source ~/.bashrc
# 配置Hadoop核心文件(core-site.xml)
cat <<EOT >> /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
EOT
选择稳定版本(如2.4.10),解压至/usr/local:
wget https://dlcdn.apache.org/hbase/2.4.10/hbase-2.4.10-bin.tar.gz
tar -xzvf hbase-2.4.10-bin.tar.gz
sudo mv hbase-2.4.10 /usr/local/hbase
# 配置HBase环境变量(~/.bashrc)
echo "export HBASE_HOME=/usr/local/hbase" >> ~/.bashrc
echo "export PATH=\$PATH:\$HBASE_HOME/bin" >> ~/.bashrc
source ~/.bashrc
hbase-env.sh编辑/usr/local/hbase/conf/hbase-env.sh,设置Java路径和Zookeeper管理:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际Java路径调整
export HBASE_MANAGES_ZK=true # 伪分布式下由HBase自带ZooKeeper
hbase-site.xml编辑/usr/local/hbase/conf/hbase-site.xml,设置核心参数:
<configuration>
<!-- HBase数据存储路径(HDFS) -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<!-- 启用分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 使用HBase自带ZooKeeper -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<!-- 关闭HDFS安全特性(避免启动错误) -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
若HBASE_MANAGES_ZK=true,HBase会自动启动内置ZooKeeper,无需额外配置。如需自定义,可编辑/usr/local/hbase/conf/hbase-site.xml添加:
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/zookeeper</value>
</property>
# 格式化HDFS(首次启动需执行)
hdfs namenode -format
# 启动HDFS
/usr/local/hadoop/sbin/start-dfs.sh
# 验证HDFS状态(jps应看到NameNode、DataNode)
jps
cd /usr/local/hbase/bin
./start-hbase.sh
# 验证HBase进程(jps应看到HMaster、HRegionServer)
jps
hbase shell
# 测试基本操作(创建表、插入数据)
create 'test_table', 'cf'
put 'test_table', 'row1', 'cf:name', 'John'
scan 'test_table'
exit
http://localhost:16010(HBase Master界面),查看集群状态。hbase shell中执行status,应显示“1 active master”。cd /usr/local/hbase/bin
./stop-hbase.sh
# 停止Hadoop集群(可选)
/usr/local/hadoop/sbin/stop-dfs.sh
hbase-site.xml中的端口(如hbase.master.port、hbase.regionserver.port)是否被占用。/usr/local/hbase/logs目录下的日志文件(如hbase-hadoop-master-ubuntu.log)。