将安装包上传至CentOS中,解压安装包到hadoop目录下
tar -zxvf hbase-1.6.0-bin.tar.gz -C /usr/hadoop配置环境变量
vi /etc/profile在末尾添加以下代码,保存退出
export HBASE_HOME=/usr/hadoop/hbase-1.6.0 export PATH=$HBASE_HOME/bin:$PATH生效配置
source /etc/profile验证
hbase version进入hbase的conf 文件夹中,编辑hbase-env.sh文件,修改Java路径,并去掉注释
export JAVA_HOME=/usr/java/jdk1.8.0_241使用hbase自带的zookeeper
export HBASE_MANAGES_ZK=false编辑hbase-site.xml文件
<configuration> <!-- 将HBase数据保存在HDFS目录中 --> <property> <name>hbase.rootdir</name> <value>hdfs://master:8020/hbase</value> </property> <!-- HBase是否是分布式环境 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 配置zookeeper地址,节点全部启用zookeeper,个数必须是奇数 --> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> <!-- zookeeper数据目录 --> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/hadoop/zookeeper-3.5.7/data</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> </configuration>修改文件regionservers,添加从节点的主机名
slave1 slave2 slave3同步master结点的HBase配置文件,至slave1、slave2、slave3
scp -r /usr/hadoop/hbase-1.6.0 slave1:/usr/hadoop scp -r /usr/hadoop/hbase-1.6.0 slave2:/usr/hadoop scp -r /usr/hadoop/hbase-1.6.0 slave3:/usr/hadoop分别配置slave1、slave2、slave3的环境变量
scp /etc/profile slave1:/etc/ scp /etc/profile slave2:/etc/ scp /etc/profile slave3:/etc/分别在slave1、slave2、slave3上生效配置
source /etc/profile启动zookeeper、启动hdfs、启动yarn
运行HBase启动命令
start-hbase.sh [root@master bin]# jps 9760 ResourceManager 9447 NameNode 13208 HMaster 13337 HRegionServer 12202 HQuorumPeer 9612 SecondaryNameNode 14414 Jps进入HBase web管理页面
http://master:16011/1.如出现以下情况,导致web管理页面无法打开
pids/hbase-root-master.pid: 没有那个文件或目录确定hdfs与hbase配置文件是否相同
hbase-site.xml下的hbase.rootdir下面的value值,必须要和hadoop配置文件core-site.xml下的fs.defaultFS下的value值,ip和端口相同!
修改hbase的pid文件保存路径
打开conf目录下的hbase-env.sh,找到以下代码
# export HBASE_PID_DIR=/var/hadoop/pids修改为自己的路径
export HBASE_PID_DIR=/usr/hadoop/hbase-1.6.0/pids2.HMaster无法启动时,hbase-site.xml中添加以下内容:
<property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> <description> Controls whether HBase will check for stream capabilities (hflush/hsync). Disable this if you intend to run on LocalFileSystem. WARNING: Doing so may expose you to additional risk of data loss! </description> </property>出处:
https://stackoverflow.com/questions/48709569/hbase-error-illegalstateexception-when-starting-master-hsync
官方解释:
https://github.com/apache/hbase/blob/master/hbase-procedure/src/test/resources/hbase-site.xml
3.显示端口已被占用时,先查看已占用,kill掉端口,重新启动
netstat -nultp kill -9 端口号