目录
一、在主节点和从节点完成一下操作:
(一)环境准备
Java环境配置
HBase依赖Java环境,需确保JDK 1.8已正确安装并配置环境变量。
操作步骤:
# 编辑环境变量配置文件
vim ~/.bashrc
# 添加以下内容(替换为实际Java路径)
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH
# 使配置生效
source ~/.bashrc
# 验证配置
java -version
输出应为:
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
注意事项与解决办法:
问题:
java -version
显示版本不一致,或echo $JAVA_HOME
为空。原因:环境变量未生效或路径错误。
解决:
检查
JAVA_HOME
路径是否与Java实际安装路径一致。执行
source ~/.bashrc
重新加载配置。若仍无效,尝试重启终端或系统。
(二)HBase的安装
HBase单机版安装
1. 下载与解压
从HBase官网下载2.4.11版本,解压到/usr/local
目录:
sudo tar -zxf ~/Downloads/hbase-2.4.11-bin.tar.gz -C /usr/local
sudo mv /usr/local/hbase-2.4.11 /usr/local/hbase
2. 配置环境变量
vim ~/.bashrc
# 添加HBase路径
export PATH=$PATH:/usr/local/hbase/bin
# 生效配置
source ~/.bashrc
# 验证安装
hbase version
输出HBase版本信息即表示安装成功。
注意事项与解决办法:
问题:执行
hbase version
提示command not found
。原因:环境变量未正确配置或未生效。
解决:
检查
~/.bashrc
中PATH
是否包含/usr/local/hbase/bin
。执行
source ~/.bashrc
重新加载配置。使用绝对路径验证:
/usr/local/hbase/bin/hbase version
。
3. 权限配置
cd /usr/local
sudo chown -R hadoop ./hbase
4. 配置文件修改
1. 配置hbase-env.sh
:
vim /usr/local/hbase/conf/hbase-env.sh
# 设置Java路径和ZooKeeper管理
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151
export HBASE_MANAGES_ZK=true
2. 配置hbase-site.xml
:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///usr/local/hbase/hbase-tmp</value> <!-- 注意路径拼写 -->
</property>
</configuration>
注意事项与解决办法:
问题:启动HBase时报错
/path/to/your/jdk/bin/java: No such file or directory
。原因:HBase启动脚本或配置文件中Java路径错误。
解决:
检查
hbase-env.sh
中的JAVA_HOME
是否正确。修改HBase启动脚本(
/usr/local/hbase/bin/hbase
)中的Java路径。确保所有路径无拼写错误(如
habse
写成hbase
)。
5. 启动与验证
# 启动HBase
start-hbase.sh
# 进入HBase Shell
hbase shell
# 停止HBase
stop-hbase.sh
注意事项与解决办法:
问题:
start-hbase.sh
启动后无进程或报错。解决:
检查日志文件
/usr/local/hbase/logs/hbase-*.log
。确保
hbase.rootdir
路径存在且权限正确(需提前创建目录)。若端口冲突,修改
hbase-site.xml
中的hbase.master.info.port
。
HBase完全分布式安装
1. Hadoop环境适配
需使用Hadoop 2.8.5版本,将Hadoop 3.x的配置文件迁移至2.8.5:
复制
core-site.xml
、hdfs-site.xml
、yarn-site.xml
、mapred-site.xml
和workers
(旧版为slaves
)到Hadoop 2.8.5的配置目录。修改路径参数,例如
hadoop.tmp.dir
指向Hadoop 2.8.5的安装路径。
注意事项与解决办法:
问题:Hadoop 2.8.5与HBase 2.4.11版本不兼容。
解决:确保HBase版本与Hadoop版本匹配(参考HBase官方兼容性矩阵)。
2. HBase配置文件
1. hbase-env.sh
:
export JAVA_HOME=/usr/lib/jvm/java8/jdk1.8.0_181
export HBASE_CLASSPATH=/usr/local/hbase/conf
export HBASE_MANAGES_ZK=true
2. hbase-site.xml
:
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave01</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
</configuration>
3. 配置regionservers
:
master
slave01
4. 同步Hadoop配置文件:
cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/
注意事项与解决办法:
问题:HBase无法连接HDFS,报错
org.apache.hadoop.hdfs.server.namenode.SafeModeException
。原因:HDFS处于安全模式。
解决:执行
hdfs dfsadmin -safemode leave
退出安全模式。
问题:ZooKeeper节点未正常启动。
解决:检查
hbase.zookeeper.quorum
配置的节点是否可达,并确保防火墙已关闭。
二、HBase启动与停止
1. 启动流程
# 启动Hadoop集群
start-dfs.sh
start-yarn.sh
# 启动HBase
start-hbase.sh
# 验证进程
jps
Master节点进程:
NameNode
,SecondaryNameNode
,ResourceManager
,HQuorumPeer
,HMaster
Slave节点进程:
DataNode
,NodeManager
,HQuorumPeer
,HRegionServer
2. 停止流程
# 停止HBase
stop-hbase.sh
# 停止Hadoop集群
stop-yarn.sh
stop-dfs.sh
注意事项与解决办法:
问题:
stop-hbase.sh
无法完全停止进程。解决:手动终止残留进程:
hbase-daemon.sh stop master # 停止当前节点HMaster hbase-daemons.sh stop regionserver # 停止所有RegionServer
三、常见问题与优化建议
1. 环境变量不生效
原因:未执行
source ~/.bashrc
或路径配置错误。解决:检查路径拼写并重新加载配置。
2. HBase启动失败
检查日志:查看
/usr/local/hbase/logs
中的错误日志。端口冲突:确保
60010
端口未被占用。
3. 性能优化
内存配置:在
hbase-env.sh
中调整HBASE_HEAPSIZE
(例如export HBASE_HEAPSIZE=4G
)。ZooKeeper独立部署:生产环境中建议使用独立ZooKeeper集群。
四、总结
通过本文,您已完成从HBase单机版到完全分布式的部署。关键点包括:
Java环境配置与验证:避免路径错误和配置未生效问题。
配置文件准确性:重点关注
hbase.rootdir
和hbase.zookeeper.quorum
的配置。日志排查:通过日志快速定位启动失败原因。
动手实践,遇到问题时善用日志排查,祝您在大数据之旅中畅通无阻! (ノ◕ヮ◕)ノ*:・゚✧⚡