大数据高可用集群环境安装与配置(07)——安装HBase高可用集群

1. 下载安装包

登录官网获取HBase安装包下载地址 https://hbase.apache.org/downloads.html

2. 执行命令下载并安装

cd /usr/local/src/
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.1.8/hbase-2.1.8-bin.tar.gz
tar -zxvf hbase-2.1.8-bin.tar.gz
mv hbase-2.1.8 /usr/local/hbase/

3. 修改服务器系统环境变量

所有服务器都需要按要求修改配置

vi /etc/profile

在尾部添加下面配置

export HBASE_HOME=/usr/local/hbase/
export PATH=$PATH:$HBASE_HOME/bin

保存退出后,运行命令,让配置马上生效

source /etc/profile

4. 配置HBase的Java安装路径

vi /usr/local/hbase/conf/hbase-env.sh

在尾部添加下面配置

export JAVA_HOME=/usr/local/java/jdk
export HBASE_MANAGES_ZK=false

5. 配置hbase-site.xml

官方文档配置说明:https://hbase.apache.org/book.html

vi /usr/local/hbase/conf/hbase-site.xml

在配置中添加下面代码

<configuration>
    <!-- hbase在hadoop的HDFS中的存储路径 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://nameservice/hbase</value>
    </property>
    <!-- 设置zookeeper集群地址 -->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master,master-backup</value>
    </property>
    <!-- 设置zookeeper的数据存放目录 -->
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/usr/local/zookeeper</value>
    </property>
    <!-- 是否开启完全分布式配置 -->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <!-- RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管 -->
    <property>
        <name>zookeeper.session.timeout</name>
        <value>180000</value>
    </property>
    <!-- Client端与zk发送心跳的时间间隔 -->
    <property>
        <name>hbase.zookeeper.property.tickTime</name>
        <value>6000</value>
    </property>
    <!-- 在当前ReigonServer上单个Reigon的最大存储空间,单个Region超过该值时,这个Region会被自动split成更小的region -->
    <property>
        <name>hbase.hregion.max.filesize</name>
        <value>5368709120</value>
    </property>
    <!-- 在flush时,当一个region中的Store(Coulmn Family)内有超过7个storefile时,则block所有的写请求进行compaction,以减少storefile数量。 -->
    <property>
        <name>hbase.hstore.blockingStoreFiles</name>
        <value>30</value>
    </property>
    <!-- block的等待时间 -->
    <property>
        <name>hbase.hstore.blockingWaitTime</name>
        <value>90000</value>
    </property>
    <!-- 减少因内存碎片导致的Full GC,提高整体性能 -->
    <property>
        <name>hbase.hregion.memstore.mslab.enabled</name>
        <value>true</value>
    </property>
    <!-- memstore大小,当达到该值则会flush到外存设备 -->
    <property>
        <name>hbase.hregion.memstore.flush.size</name>
        <value>268435456</value>
    </property>
    <!-- 强制刷新之前,RegionServer中所有memstore的最大大小(默认值为:hbase.regionserver.global.memstore.size 的95%),当由于内存限制而导致更新被阻塞时,系统会以尽可能小的刷新量刷新数据,此值中的默认值特意设置为空,以遵守旧的 hbase.regionserver.global.memstore.lowerLimit 属性 -->
    <property>
        <name>hbase.regionserver.global.memstore.size.lower.limit</name>
        <value>0.36</value>
    </property>
    <!-- hbase.hregion.memstore.flush.size 这个参数的作用是当单个Region内所有的memstore大小总和超过指定值时,flush该region的所有memstore。RegionServer的flush是通过将请求添加一个队列,模拟生产消费模式来异步处理的。那这里就有一个问题,当队列来不及消费,产生大量积压请求时,可能会导致内存陡增,最坏的情况是触发OOM。这个参数的作用是防止内存占用过大,当ReigonServer内所有region的memstores所占用内存总和达到heap的40%时,HBase会强制block所有的更新并flush这些region以释放所有memstore占用的内存。 -->
    <property>
        <name>hbase.regionserver.global.memstore.upperLimit</name>
        <value>0.4</value>
    </property>
    <!-- 当一个region里的memstore占用内存大小超过hbase.hregion.memstore.flush.size两倍的大小时,block该region的所有请求,进行flush,释放内存。虽然我们设置了region所占用的memstores总内存大小,比如64M,但想象一下,在最后63.9M的时候,我Put了一个200M的数据,此时memstore的大小会瞬间暴涨到超过预期的hbase.hregion.memstore.flush.size的几倍。这个参数的作用是当memstore的大小增至超过hbase.hregion.memstore.flush.size 2倍时,block所有请求,遏制风险进一步扩大 -->
    <property>
        <name>hbase.hregion.memstore.block.multiplier:</name>
        <value>2</value>
    </property>
    <!-- RegionServer的请求处理IO线程数 -->
    <property>
        <name>hbase.regionserver.handler.count</name>
        <value>30</value>
    </property>
    <!-- 每次获取行锁的超时时间,默认为30s -->
    <property>
        <name>hbase.rowlock.wait.duration</name>
        <value>90000</value>
    </property>
    <!-- 客户端每次获得rs一次socket时间 -->
    <property>
        <name>hbase.regionserver.lease.period</name>
        <value>180000</value>
    </property>
    <!-- rpc超时时间 -->
    <property>
        <name>hbase.rpc.timeout</name>
        <value>180000</value>
    </property>
    <!-- 客户端每次scan|get的超时时间 -->
    <property>
        <name>hbase.client.scanner.timeout.period</name>
        <value>180000</value>
    </property>
    <!-- 客户端每次scan的一个next,获得多少行,默认1  -->
    <property>
        <name>hbase.client.scanner.caching</name>
        <value>100</value>
    </property>
</configuration>

6. 配置节点服务器地址

vi /usr/local/hbase/conf/regionservers

修改为下面配置

node1
node2
node3

7. 复制hdfs-site.xml到HBase的配置路径下

cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/

8. 创建backup-masters

echo ‘master-backup‘ > /usr/local/hbase/conf/backup-masters

9.将hbase同步到其他服务器

rsync -avz /usr/local/hbase/ master-backup:/usr/local/hbase/
rsync -avz /usr/local/hbase/ node1:/usr/local/hbase/
rsync -avz /usr/local/hbase/ node2:/usr/local/hbase/
rsync -avz /usr/local/hbase/ node3:/usr/local/hbase/

8. 让hbase支持LZ4压缩,减少磁盘空间的占用

每台服务器都运行下面代码,安装lz4

yum install lz4
yum install lz4-devel -y
mkdir /usr/local/hbase/lib/native
ln -s /usr/local/hadoop/lib/native /usr/local/hbase/lib/native/Linux-amd64-64

9. 启动服务

在master服务器启动HBase服务

/usr/local/hbase/bin/start-hbase.sh

关闭服务

/usr/local/hbase/bin/stop-hbase.sh

10. 检查服务是否已正常启动

在master与master-backup中输入

jps

如果显示下面服务,则表示服务已正常启动

4669 HMaster

在各个node节点服务器中输入jps,检查是否已运行下面服务

11224 HRegionServer

打开浏览器,检查hbase是否启动成功

  • master

http://192.168.10.90:16010/master-status

  • backup-master

http://192.168.10.91:16010/master-status

版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

作者博客:http://www.cnblogs.com/EmptyFS/

原文地址:https://www.cnblogs.com/EmptyFS/p/12113155.html

时间: 2024-10-12 04:46:11

大数据高可用集群环境安装与配置(07)——安装HBase高可用集群的相关文章

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(八)安装zookeeper-3.4.12

如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.> 如何安装hadoop2.9.0请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二)安装hadoop2.9.0> 如何安装spark2.2.1请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1

如何配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.> 如何安装hadoop2.9.0请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二)安装hadoop2.9.0> 安装spark的服务器: 192.168.0.120 master 192.168.0.121 slave1 192.168.0.122 slave

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.> 如何安装hadoop2.9.0请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二)安装hadoop2.9.0> 如何安装spark2.2.1请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1

Spark修炼之道(基础篇)——Linux大数据开发基础:第一节、Linux介绍、安装及使用初步

本节主要内容 Linux简史 Linux特点 Ubuntu Linux安装 Linux使用初步 1. Linux简史 要讲述大名鼎鼎的Linux,必然要先从UNIX系统谈起,下面这幅图给出了Unix系统的进化图: 图片来源:http://baike.baidu.com/link?url=QfoqWtWGs-BjpnfEy_AUk7Bm3XHuf6JbN92HCOoUBfFfj8BuSDkbwmldtmUEmGRDUwqsQMIV4jCKHvdkSPr3Lq 从进化图中可以看到,目前所有的主流操作

项目进阶 之 集群环境搭建(三)多管理节点MySQL集群

上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点MySQL集群和多管理节点MySQL集群 上一篇的博客中,我们搭建的MySQL集群架构中,只存在一个管理节点,这样搭建的集群可以用如下所示的结构表示. 仔细分析上图就会发现,上图所示的单管理节点MySQL集群存在当唯一的管理节点由于网络.断电.压力过大等各种原因宕机后,数据节点和SQL节点将会各自为

Redis安装与配置Redis安装与配置

今天在使用Redis的时候遇到了一些问题,这个问题的解决,发现很多人使用Redis的时候没有一点安全意识.所以又重温了一下Redis,觉得应该写一下Redis的安全和配置. Redis安装与配置Redis安装与配置 安装 下载,解压,编译: $ wget http://download.redis.io/releases/redis-4.0.10.tar.gz $ tar xzf redis-4.0.10.tar.gz $ mv redis-4.0.10 /usr/local/redis $ c

Spring XD简介:大数据应用的运行时环境

简介 Spring XD(eXtreme Data,极限数据)是Pivotal的大数据产品.它结合了Spring Boot和Grails,组成Spring IO平台的执行部分.尽管Spring XD利用了大量现存的Spring项目,但它是一种运行时环境,而不是一个类库或者框架,它包含带有服务器的bin目录,你可以通过命令行启动并与之交互.运行时可以运行在开发机上.客户端自己的服务器上.AWS EC2上或者Cloud Foundry上. Spring XD中的关键组件是管理和容器服务器(Admin

大数据入门——搭建Hadoop处理环境

由于Hadoop需要运行在Linux环境中,而且是分布式的,因此个人学习只能装虚拟机,本文都以VMware Workstation为准,安装CentOS7,具体的安装此处不作过多介绍,只作需要用到的知识介绍. VMware的安装,装好一个虚拟机后利用复制虚拟机的方式创建后面几个虚拟机,省时省力,需要注意的是需要修改每个虚拟机的IP与主机名. 所有虚拟机采用NAT模式上网,而且要保证与物理主机的IP互相能访问. 需要注意的几个问题.nat如果上网首先需要查看物理机(pc机)这个服务器已经启动.上网

大数据学习实践总结(2)--环境搭建,JAVA引导,HADOOP搭建

PS:后续的文章会把我实践的内容分解成为一个个的小模块,方便大家的学习,交流.文未我也会附上相关的代码.一起加油!    学有三年的大数据原理,一直没有实践过.最近准备离职,正好把自己所学的大数据内容全部实践一下,也不至于只会纯理论.面对实践,首先要有空杯心态,倒空自己之后,才能学到更多,加油!也希望大家多关注,以后会更多注重实践跟原理的结合. 环境搭建 对于大数据,重点在于Hadoop的底层架构.虽说现在spark架构用的还是比较多.但hadoop还是基础.还有就是为什么要以Linux为基础,

大数据高性能数据库Redis在Windows上的配置

Redis学习笔记----Redis在windows上的安装和配置 Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcach