企业级高可用HBase部署方案

1 HBase介绍

HBase是一个分布式的、面向列的开源数据库,就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。它是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了重庆免费建站欢迎大家使用!

HBase的常见使用场景如下:

1、大数据量(100s TB级数据)且有快速随机访问的需求。例如淘宝的交易历史记录,数据量巨大无容置疑,面向普通用户的请求必然要即时响应。

2、容量的优雅扩展。大数据驱使下的动态扩展系统容量是必须的。

3、业务场景简单,不需要关系数据库中很多特性(例如交叉列、交叉表,事务,连接等等)。

4、合理设计rowkey。因为hbase的查询用rowkey是最高效的,也几乎是生产环境下唯一可行的方式。

2 集群规划

在搭建HBase高可用集群时,将HBase的RegionServer部署在HDFS的3个DataNode节点上,HBase的HMaster服务部署在HDFS的2个NameNode(Active和Standby)节点上,部署2个HMaster保证集群的高可用性,防止单点问题。这里使用了独立的ZooKeeper集群,未使用HBase自带的ZooKeeper。下面给出HBase的集群搭建架构图:

搭建HBase HA集群需要首先搭建Hadoop HA集群,其方法可参考我的上一篇文章《Hadoop2.0 HA高可用集群配置详解》。在其基础上加入HBaseHA,规划整个集群由5台主机组成,具体情况如下表所示:

主机名 IP地址 安装的软件 JPS
hadoop-master1 172.16.20.81 Jdk/hadoop/hbase Namenode/ZKFC/ResourceManager/JobHistoryServer/HMaster
hadoop-master2 172.16.20.82 Jdk/hadoop/hbase Namenode/ZKFC/ResourceManager/WebProxyServer/HMaster
hadoop-slave1 172.16.20.83 Jkd/hadoop/hbase/zookeepe Datanode/JournalNode/NodeManager/quorumPeerMain/HRegionServer
hadoop-slave2 172.16.20.84 Jkd/hadoop/hbase/zookeeper Datanode/JournalNode/NodeManager/quorumPeerMain/HRegionServer
hadoop-slave3 172.16.20.85 Jkd/hadoop/hbase/zookeeper Datanode/JournalNode/NodeManager/quorumPeerMain/HRegionServer

显示详细信息

3 企业级系统参数配置

// 查看linux系统最大进程数和最大文件打开数

$ ulimit-a

img

// 设置linux系统最大进程数和最大文件打开数(设置完重新登录shell)

$ suroot

\# vim/etc/security/limits.conf

root  soft  nproc 50000

root  hard  nproc 50000

root  soft  nofile 25535

root  hard  nofile 25535

hadoop  soft  nproc 50000

hadoop  hard  nproc 50000

hadoop  soft  nofile 25535

hadoop  hard  nofile 25535

// 调整linux内核参数

\# vim/etc/sysctl.conf

net.ipv4.ip_forward= 0

net.ipv4.conf.default.rp_filter= 1

net.ipv4.conf.default.accept_source_route= 0

kernel.core_users_pid= 1

net.ipv4.tcp_syncookies= 1

net.bridge.bridge-nf-call-ip6tables= 0

net.bridge.bridge-nf-call-iptables= 0

net.bridge.bridge-nf-call-arptables= 0

kernel.mggmnb= 65536

kernel.mggmax= 65536

kernel.shmmax= 68719476736

kernel.shmall= 268435456

net.ipv4.tcp_max_syn_backlog= 65000

net.core.netdev_max_backlog= 32768

net.core.somaxconn= 32768

fs.file-max= 65000

net.core.wmem_default= 8388608

net.core.rmem_default= 8388608

net.core.rmem_max= 16777216

net.core.wmem_max= 16777216

net.ipv4.tcp_timestamps= 1

net.ipv4.tcp_synack_retries= 2

net.ipv4.tcp_syn_retries= 2

net.ipv4.tcp_mem= 94500000 915000000 927000000

net.ipv4.tcp_max_orphans= 3276800

net.ipv4.tcp_tw_reuse= 1

net.ipv4.tcp_tw_recycle= 1

net.ipv4.tcp_keepalive_time= 1200

net.ipv4.tcp_syncookies= 1

net.ipv4.tcp_fin_timeout= 10

net.ipv4.tcp_keepalive_intvl= 15

net.ipv4.tcp_keepalive_probes= 3

net.ipv4.ip_local_port_range= 1024 65535

net.ipv4.conf.eml.send_redirects= 0

net.ipv4.conf.lo.send_redirects= 0

net.ipv4.conf.default.send_redirects= 0

net.ipv4.conf.all.send_redirects= 0

net.ipv4.icmp_echo_ignore_broadcasts= 1

net.ipv4.conf.eml.accept_source_route= 0

net.ipv4.conf.lo.accept_source_route= 0

net.ipv4.conf.default.accept_source_route= 0

net.ipv4.conf.all.accept_source_route= 0

net.ipv4.icmp_ignore_bogus_error_responses= 1

kernel.core_pattern= /tmp/core

vm.overcommit_memory= 1

\#sysctl -p

4 HBase HA配置

// 在hadoop-master1节点解压hadoop安装包

$ tar-xvf hbase-1.2.0-cdh5.7.1.tar.gz -C /home/hadoop/app/cdh/



// 删除安装包

$ rmhbase-1.2.0-cdh5.7.1.tar.gz



// 进入hbase的conf目录

$ cd/home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/conf/



// 修改hbase-env.sh

$ vimhbase-env.sh

\# 配置JDK安装路径

exportJAVA_HOME=/home/hadoop/app/jdk1.7.0_79

\# 配置Hadoop安装路径

exportHADOOP_HOME=/home/hadoop/app/cdh/hadoop-2.6.0-cdh5.7.1

\# 设置HBase的日志目录

exportHBASE_LOG_DIR=${HBASE_HOME}/logs

\# 设置HBase的pid目录

exportHBASE_PID_DIR=${HBASE_HOME}/pids

\# 使用独立的ZooKeeper集群

exportHBASE_MANAGES_ZK=false

\# 优化配置项

\# 设置HBase内存堆的大小

exportHBASE_HEAPSIZE=1024

\# 设置HMaster最大可用内存

exportHBASE_MASTER_OPTS="-Xmx512m"

\# 设置HRegionServer最大可用内存

exportHBASE_REGIONSERVER_OPTS="-Xmx1024m"

// 配置hbase-site.xml

$ vim hbase-site.xml


  
     
     
   
        
    
     hbase.rootdir
        
    
     hdfs://mycluster/hbase
      
       
     
   
        
    
     hbase.master.port
        
    
     16000
      
       
     
   
        
    
     hbase.master.info.port
        
    
     16010
      
       
     
   
        
    
     hbase.tmp.dir
        
    
     /home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/tmp
      
     
     
   
        
    
     hbase.cluster.distributed
        
    
     true
      
       
     
   
        
    
     hbase.zookeeper.quorum
        
    
     hadoop-slave1,hadoop-slave2,hadoop-slave3
      
       
     
   
        
    
     hbase.zookeeper.property.clientPort
        
    
     2181
      
       
     
   
        
    
     hbase.zookeeper.property.dataDir
        
    
     /home/hadoop/app/cdh/zookeeper-3.4.5-cdh5.7.1/data
      
       
     
     
   
        
    
     hbase.master.distributed.log.splitting
        
    
     false
      
       
     
   
        
    
     hbase.client.scanner.caching
        
    
     2000
      
       
     
   
        
    
     hbase.hregion.max.filesize
        
    
     10737418240
      
       
     
   
        
    
     hbase.regionserver.reginoSplitLimit
        
    
     2000
      
       
     
   
        
    
     hbase.hstore.compactionThreshold
        
    
     6
      
       
     
   
        
    
     hbase.hstore.blockingStoreFiles
        
    
     14
      
       
     
   
        
    
     hbase.hregion.memstore.block.multiplier
        
    
     20
      
       
     
   
        
    
     hbase.server.thread.wakefrequency
        
    
     500
      
       
     
   
        
    
     hbase.zookeeper.property.maxClientCnxns
        
    
     2000
      
       
     
   
        
    
     hbase.regionserver.global.memstore.lowerLimit
        
    
     0.3
      
     
   
        
    
     hbase.regionserver.global.memstore.upperLimit
        
    
     0.39
      
     
   
        
    
     hbase.block.cache.size
        
    
     0.4
      
       
     
   
        
    
     hbase.reginoserver.handler.count
        
    
     300
      
       
     
   
        
    
     hbase.client.retries.number
        
    
     5
      
       
     
   
        
    
     hbase.client.pause
        
    
     100
      
   
  

// 配置regionservers

$ vimregionservers

hadoop-slave1

hadoop-slave2

hadoop-slave3



// 新建backup-masters文件并配置

$ vimbackup-masters

hadoop-master2



// 创建hbase的缓存文件目录

$ cd/home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/

$ mkdirtmp



// 创建hbase的日志文件目录

$ mkdirlogs



// 创建hbase的pid文件目录

$ mkdirpids



// 将hbase工作目录同步到集群其它节点

$ scp-r /home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/hadoop-master2:/home/hadoop/app/cdh/

$ scp-r /home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/ hadoop-slave1:/home/hadoop/app/cdh/

$ scp-r /home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/ hadoop-slave2:/home/hadoop/app/cdh/

$ scp-r /home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/ hadoop-slave3:/home/hadoop/app/cdh/



// 在集群各节点上修改用户环境变量

$ vim .bash_profile

export HBASE_HOME=/home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1

export PATH=$PATH:$HBASE_HOME/bin

$ source.bash_profile



// 删除hbase的slf4j-log4j12-1.7.5.jar,解决hbase和hadoop的LSF4J包冲突

$ cd /home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/lib

$ mvslf4j-log4j12-1.7.5.jar slf4j-log4j12-1.7.5.jar.bk

分享题目:企业级高可用HBase部署方案
网站地址:http://www.shufengxianlan.com/qtweb/news47/399297.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联