hbase集群搭建

hbase集群安装部署

1.上传并解压安装包:tar -zxvf hbase-2.4.12-bin.tar.gz -C /export/server/

2.配置hbase环境变量 sudo vim /etc/profile

#配置hbase环境变量

export HBASE_HOME=/export/server/hbase-2.4.12

export PATH=$PATH:$HBASE_HOME/bin

export PATH=$PATH:$HBASE_HOME/sbin

分发到其他节点 xsync /etc/profile 使文件生效 source /etc/profile

3.修改hbase配置文件

  1)进入/export/server/hbase-2.4.12/conf修改配置文件(4个)

(hbase-env.sh、hbase-site.xml、regionservers、backup-masters)

①修改hbase-env.sh

export JAVA_HOME=/export/server/jdk1.8.0_131

# 指定hbase使用外部的zk

export HBASE_MANAGES_ZK=false

export HBASE_LOG_DIR=/export/server/hbase-2.4.12/logs

# 指定hbase进程id存储位置

export HBASE_PID_DIR=/export/server/hbase-2.4.12/pids

# 防止启动时hbase的jar包与hadoop的jar包有冲突

export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

②修改 hbase-site.xml

<configuration>

    

    <property>

        <name>hbase.rootdir</name>

        <!-- hadoop引入JQM负载均衡时,这里配置dfs.nameservices指定的集群逻辑名称(与hdfs namenode主机一致) -->

        <value>hdfs://node1:8020/hbase</value>

        <!-- 指定Hbase master服务器的写法,hbase监听hdfs默认的端口是9000,这里的配置端口要与hdfs namenode主机一致 -->

    </property>

<!-- 指定hbase集群为分布式集群 -->

    <property>

        <name>hbase.cluster.distributed</name>

        <value>true</value>

    </property>

<!-- 指定zookeeper集群,有多个用英文逗号分隔 -->

    <property>

        <name>hbase.zookeeper.quorum</name>

        <value>node1:2181,node2:2181,node3:2181,node4:2181</value>

    </property>

    <!-- 备份的副本数(不会放在同一节点上),不能超过datanode的节点数。注意hadoop的hdfs-site.xml配置文件中也有dfs.replication这个参数,跟hbase-site.xml的dfs.replication参数是不同的,hbase的数据备份数需要在hbase-site.xml配置文件中单独设置!否则hbase写入的数据regionServer只会保存一份! -->

    <property>

        <name>dfs.replication</name>

        <value>3</value>

    </property>

    <!-- Zookeeper元数据快照的存储目录(需要和Zookeeper的zoo.cfg 配置文件中的属性一致)  -->

    <property>

        <name>hbase.zookeeper.property.dataDir</name>

        <value>/export/server/apache-zookeeper-3.8.0-bin/data</value>

    </property>

    <!-- 指定HBase Master web页面访问端口,默认端口号16010 -->

    <property>

        <name>hbase.master.info.port</name>

        <value>16010</value>

    </property>

    <!-- 指定HBase RegionServer web页面访问端口,默认端口号16030 -->

       <property>

              <name>hbase.regionserver.info.port</name>

              <value>16030</value>

       </property>

    <!-- 解决启动HMaster无法初始化WAL的问题 -->

    <property>

        <name>hbase.unsafe.stream.capability.enforce</name>

        <value>false</value>

    </property>

</configuration>

③修改 regionservers文件

node1

node2

node3

node4

④修改backup-masters(该文件是不存在的,先自行创建,指定备用主节点不 要与hbase-site.xml中<name>hbase.rootdir</name>配置项中的主机一样,这个文件的作用是指定备用master,当主节点master挂掉后启用)

node3

2)将配置好的文件传给其他虚拟机。

       sudo xsync /export/server/hbase-2.4.12

4.启动HBase集群 start-hbase.sh

按照以下顺序进行启动

启动zookeeper集群-启动Hadoop集群-启动HBase集群

5. 查看hbase集群管理网页 node:16010端口

6. 进入HBase的控制台hbase shell

7. 在控制台中使用命令“create ‘表名’,列名1’,‘列名2’,…”创建表

8.exit退出HBase的控制台

9. 关闭HBase集群 stop-hbase.sh

关闭顺序

关闭HBase集群-关闭Hadoop集群-关闭zookeeper集群

(关闭HBase时,输入stop-hbase.sh命令一直处于等待状态,解决办法是:先输入hbase-daemons.sh stop master命令,hbase-daemons.sh stop regionserver命令,再输入stop-hbase.sh命令)

总结:在搭建集群的时候,本人使用systemctl disable firewalld 这一命令导致了后续搭建的Hadoop集群hbase集群的web页面无法用hostname(域名)访问只能用IP访问

猜想是移除的文件中包含着使用hostnamed的访问连接方法,故无法用hostname进行访问

我们可以使用systemctl enable firewalld进行文件重建

然后再用systemctl stop firewalld 关闭防火墙,或者可以设置要开放的端口号,以下为开放方法

#开放端口2888/3888(add为添加,remove为移除)

firewall-cmd --zone=public –add/remove-port=2888/tcp --permanent

firewall-cmd --zone=public –add/remove-port=3888/tcp --permanent

# 并重载入添加的端口:

firewall-cmd --reload

# 再次查询端口开放情况,确定2888和3888开放

firewall-cmd --zone=public --list-ports

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值