HBase集群搭建与调优(持续更新)

摘 要

hbase集群搭建与调优。

前言

本文持续更新中,主要因为我也是在工作中逐渐探索中,所以在工作中遇到的配置调优,都将第一时间更新到本文中,用作以后标准配置。

版本介绍

本文基于当前最稳定兼容版本如下:

hadoop-2.7.3

hbase-1.2.5

zookeeper-3.4.10

配置文件介绍

Apache HBase使用与Apache Hadoop相同的配置系统,所有配置文件都位于conf/目录中。该目录需要与集群中的每个节点保持同步。

backup-masters

纯文本文件,用于描述备用主机,一行一个主机。

hadoop-metrics2-hbase.properties

用于连接HBase Hadoop的Metrics2框架。

hbase-env.sh & hbase-env.cmd

用于Windows和Linux / Unix环境的脚本,用于设置HBase的工作环境,包括Java,Java选项和其他环境变量的位置。该文件包含许多注释的例子来提供指导。

hbase-policy.xml

RPC服务器使用的默认策略配置文件对客户端请求做出授权决策。仅在启用HBase安全性时使用。

hbase-site.xml

主要的HBase配置文件。该文件指定了覆盖HBase的默认配置的配置选项。

log4j.properties

HBase记录的配置文件log4j

regionservers

一个纯文本文件,其中包含应该在HBase集群中运行RegionServer的主机列表。

集群配置

HDFS DataNode在任何一个时间都会提供的文件数量上限。在进行任何加载之前,请确保已配置Hadoop的conf/hdfs-site.xml,将该dfs.datanode.max.transfer.threads值设置为至少以下值:

<property>
 <name>dfs.datanode.max.transfer.threads</name>
 <value>4096</value>
</property>

进行上述配置后,请务必重新启动HDFS。

编辑 hbase-env.sh

#修改jdk安装位置
 export JAVA_HOME=/usr/java/jdk1.7.0/
#设置hbase堆内存,默认情况下为1G,但最优情况下为8G~16G
 export HBASE_HEAPSIZE=8G
#修改master的jvm参数,master不参与实际计算,酌情修改。默认值:128m
 export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=2g -XX:MaxPermSize=2g"
#修改regionserver的jvm参数,由于该参数直接影响数据存储及计算节点。适当调大。默认值为:128m
 export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=8g -XX:MaxPermSize=8g"
#hbase pid存储位置,默认存放于系统/tmp目录
 export HBASE_PID_DIR=/var/hadoop/pids
#同时启动zk实例,建议关闭。
 export HBASE_MANAGES_ZK=false

编辑 hbase-site.xml

<configuration>
 <property>
 <name>hbase.rootdir</name>
 <value>hdfs://master:9000/hbase</value>
 </property>
 <property>
 <name>hbase.cluster.distributed</name>
 <value>true</value>
 </property>
 <property>
 <name>hbase.zookeeper.quorum</name>
 <value>zookeeper1,zookeeper2,zookeeper3</value>
 </property>
 <!-- 设置hbase临时目录,默认系统目录/tmp-->
 <property>
 <name>hbase.tmp.dir</name>
 <value>/data/dfs/hbase</value>
 </property>
 <!--在RegionServers上旋转的RPC侦听器实例的计数。主人使用相同的属性来计算主处理程序。 默认30-->
 <property>
 <name>hbase.regionserver.handler.count</name>
 <value>100</value>
 </property>
 <!-- 设置心跳时间,默认三分钟,时间越短,代表故障节点更早的发现。-->
 <property>
 <name>zookeeper.session.timeout</name>
 <value>60000</value>
 </property>

</configuration>

配置 regionserver

worker1 worker2 ……

设置backup-masters

master1 master2 ……

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

基于Linux下 Oracle 备份策略(RMAN)

对于 Oracle 数据库的备份与恢复,尽管存在热备,冷备以及逻辑备份之外,使用最多的莫过于使用RMAN进行备份与恢复。而制定RMAN备份策

10920
来自专栏Seebug漏洞平台

GitLab 任意文件读取漏洞 (CVE-2016-9086) 和任意用户 token 泄露漏洞

Author:dawu,LG(知道创宇404安全实验室) Data:2016-10-09 0x00 漏洞概述 1.漏洞简介 GitLab 是一个利用Ruby o...

47770
来自专栏牛肉圆粉不加葱

Spark - 图解 Broadcast 工作原理

Broadcast 是 Spark 常用的特性,本文不打算介绍什么是 Broadcast 及如何使用它,只希望能以下面这张图对 Broadcast 的基础知识和...

22030
来自专栏Hadoop实操

如何通过CM迁移Zookeeper服务

在使用CDH集群过程中由于角色划分不合理或Zookeeper服务所在节点压力大等问题,需要对Zookeeper服务做迁移等操作。本篇文章Fayson主要介绍如何...

41540
来自专栏杨建荣的学习笔记

Oracle主备架构下的逻辑备份考虑

今天想到一个问题,如果有一个环境是一主一备架构,根据业务需要做逻辑备份,该怎么规划和考虑。数据库版本为10g,11g ? 这个问题如果在考虑性能的前提下,我...

37050
来自专栏程序员叨叨叨

一招搞定Windows无法安装到GPT分区形式磁盘疑难

今天给堂弟的电脑重装系统时,遇到了以往USB安装系统经常出现的问题,“Windows无法安装到这个磁盘。选中的磁盘采用GPT分区形式”。之前在CSDN的博客上有...

9120
来自专栏python全栈布道师

处理只想本地修改配置文件不想提交到远程的shell脚本(修改版)

31450
来自专栏我的博客

logstash之input配置file类型详解

监听文件变化,记录一个.sincedb的数据库文件跟踪监听文件读取位置(记录的是时间戳) 配置案例 input { file { path => ["/d...

35950
来自专栏Hadoop实操

CM部署客户端配置失败异常分析

在Cloudera Manager修改了服务的客户端配置后,执行部署客户配置报如下异常:

46230
来自专栏IT笔记

JavaWeb项目架构之NFS文件服务器

当用户A通过互联网上传文件时,经过负载均衡,随机或者定向分配到某个节点。但是当用户B去下载这个文件的时候,并不确定会向哪个节点发送请求,这样会导致用户存在一定几...

57790

扫码关注云+社区

领取腾讯云代金券