大数据高可用集群环境安装与配置(07)——安装HBase高可用集群
1. 下载安装包
登录官网获取HBase安装包下载地址 https://hbase.apache.org/downloads.html
2. 执行命令下载并安装
cd /usr/local/src/
wget http://archive.apache.org/dist/hbase/2.0.0/hbase-2.0.0-bin.tar.gz
tar -zxvf hbase-2.0.-bin.tar.gz
mv hbase-2.0. /usr/local/hbase/
PS:Phoenix5.0只支持HBase2.0版本,HBase即使用了更高一点的小版本,在创建二级索引时也会出现异常。当然不使用二级索引的话,2.1.8版也可以正常使用
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>
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>hbase.region.server.rpc.scheduler.factory.class</name>
<value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
<description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>
</property>
<property>
<name>hbase.rpc.controllerfactory.class</name>
<value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>
<description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
<description>开启phoenix命名空间配置</description>
</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. 配置Phoenix方式访问hbase
cd /usr/local/src/
wget http://www.apache.org/dyn/closer.lua/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
tar -zxvf apache-phoenix-5.0.-HBase-2.0-bin.tar.gz
mv apache-phoenix-5.0.-HBase-2.0-bin /usr/local/phoenix
cd /usr/local/phoenix # 复制phoenix服务插件到hbase目录下
cp phoenix-5.0.-HBase-2.0-server.jar /usr/local/hbase/lib/
cp phoenix-core-5.0.-HBase-2.0.jar /usr/local/hbase/lib/
cp phoenix-5.0.-HBase-2.0-queryserver.jar /usr/local/hbase/lib/ # 修改phoneix配置
vi /usr/local/phoenix/bin/hbase-site.xml
# 在配置中添加下面内容
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
10.将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/
11.配置Phoenix主节点
在master和master-backup节点的hbase-site.xml添加下面配置
vi /usr/local/hbase/conf/hbase-site.xml
在配置中添加下面代码
<property>
<name>hbase.master.loadbalancer.class</name>
<value>org.apache.phoenix.hbase.index.balancer.IndexLoadBalancer</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value>
</property>
12. 让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-
13. 启动服务
在master服务器启动HBase服务
/usr/local/hbase/bin/start-hbase.sh
关闭服务
/usr/local/hbase/bin/stop-hbase.sh
14. 检查服务是否已正常启动
在master与master-backup中输入
jps
如果显示下面服务,则表示服务已正常启动
HMaster
在各个node节点服务器中输入jps,检查是否已运行下面服务
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/
大数据高可用集群环境安装与配置(07)——安装HBase高可用集群的更多相关文章
- 大数据入门第五天——离线计算之hadoop(上)概述与集群安装
一.概述 根据之前的凡技术必登其官网的原则,我们当然先得找到它的官网:http://hadoop.apache.org/ 1.什么是hadoop 先看官网介绍: The Apache™ Hadoop® ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十)安装hadoop2.9.0搭建HA
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(八)安装zookeeper-3.4.12
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二)安装hadoop2.9.0
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- CentOS6安装各种大数据软件 第三章:Linux基础软件的安装
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...
- Redis安装与配置Redis安装与配置
今天在使用Redis的时候遇到了一些问题,这个问题的解决,发现很多人使用Redis的时候没有一点安全意识.所以又重温了一下Redis,觉得应该写一下Redis的安全和配置. Redis安装与配置Red ...
- 二进制搭建kubernetes多master集群【三、配置k8s master及高可用】
前面两篇文章已经配置好了etcd和flannel的网络,现在开始配置k8s master集群. etcd集群配置参考:二进制搭建kubernetes多master集群[一.使用TLS证书搭建etcd集 ...
- 大数据项目之_15_帮助文档_NTP 配置时间服务器+Linux 集群服务群起脚本+CentOS6.8 升级到 python 到 2.7
一.NTP 配置时间服务器1.1.检查当前系统时区1.2.同步时间1.3.检查软件包1.4.修改 ntp 配置文件1.5.重启 ntp 服务1.6.设置定时同步任务二.Linux 集群服务群起脚本2. ...
随机推荐
- mabatis--查询缓存
1.mybatis提供查询缓存,用于减轻数据库压力,提高数据库性能. 2.mybatis提供一级缓存.二级缓存: 3.一级缓存是SqlSession级别的缓存.在SqlSession对象中,存在一个数 ...
- UDP打洞实验
依云 posted @ 2 年前 in 网络 with tags python 网络 socat UDP , 7095 阅读 本文来自依云's Blog,转载请注明. 两台没有外网 IP.在 NAT ...
- ubuntu18.04 LAMP DVWA
一.基本擦作: sudo apt-get install lamp-server^ sudo chmod 777 /var/www #也有可能是/var/www/html,访问127.0.0.1验证是 ...
- 最新版本GIT安装
版本问题,最直接的解决办法就是重新编辑安装git吧: 1. 下载:# wget -O git.zip https://github.com/git/git/archive/master.zip 2. ...
- Windows进程通信-共享内存空间
三个模块 1,game.exe,三个方法,控制台输入指令('A','B','R')分别控制三个方法的调用: 2,WGDll.dll,要注入到game进程中的dll文件: 3,myconsole.exe ...
- 使用命令行连接远程DB2数据库
1. 打开命令窗口 win + r 输入 db2cmd 2. 首先在客户机上对远程节点进行编目 CATALOG TCPIP //编目一个TCP/IP节点NOD ...
- loadBeanDefinitions方法源码跟踪(一)
看这篇文章之前可以先了解之前的跟踪流程,https://www.jianshu.com/p/4934233f0ead 代码过宽,可以shift + 鼠标滚轮 左右滑动查看 AbstractBeanDe ...
- Python Sphinx使用踩坑记录
描述 使用 pip 安装sphinx后,按照教程建立了一个新的py文件,如下 # run.py def run(name): """ this is how we run ...
- 020、MySQL创建一个存储过程,显示存储过程,调用存储过程,删除存储过程
一.我们创建一个MySQL储存过程,在SQL代码区写入以下内容,并执行就可以了 #编写一个存储过程 CREATE PROCEDURE ShowDate ( ) BEGIN #输出当前时间 SELECT ...
- canon 打印机 连接不上 netgear 路由器
解决方法很简单,只要把信道设置到 10以内即可.