新聞中心
1 HBase介紹
HBase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫,就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫。另一個(gè)不同的是HBase基于列的而不是基于行的模式。它是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了重慶免費(fèi)建站歡迎大家使用!
HBase的常見使用場(chǎng)景如下:
1、大數(shù)據(jù)量(100s TB級(jí)數(shù)據(jù))且有快速隨機(jī)訪問的需求。例如淘寶的交易歷史記錄,數(shù)據(jù)量巨大無容置疑,面向普通用戶的請(qǐng)求必然要即時(shí)響應(yīng)。
2、容量的優(yōu)雅擴(kuò)展。大數(shù)據(jù)驅(qū)使下的動(dòng)態(tài)擴(kuò)展系統(tǒng)容量是必須的。
3、業(yè)務(wù)場(chǎng)景簡(jiǎn)單,不需要關(guān)系數(shù)據(jù)庫中很多特性(例如交叉列、交叉表,事務(wù),連接等等)。
4、合理設(shè)計(jì)rowkey。因?yàn)閔base的查詢用rowkey是最高效的,也幾乎是生產(chǎn)環(huán)境下唯一可行的方式。
2 集群規(guī)劃
在搭建HBase高可用集群時(shí),將HBase的RegionServer部署在HDFS的3個(gè)DataNode節(jié)點(diǎn)上,HBase的HMaster服務(wù)部署在HDFS的2個(gè)NameNode(Active和Standby)節(jié)點(diǎn)上,部署2個(gè)HMaster保證集群的高可用性,防止單點(diǎn)問題。這里使用了獨(dú)立的ZooKeeper集群,未使用HBase自帶的ZooKeeper。下面給出HBase的集群搭建架構(gòu)圖:
搭建HBase HA集群需要首先搭建Hadoop HA集群,其方法可參考我的上一篇文章《Hadoop2.0 HA高可用集群配置詳解》。在其基礎(chǔ)上加入HBaseHA,規(guī)劃整個(gè)集群由5臺(tái)主機(jī)組成,具體情況如下表所示:
| 主機(jī)名 | 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 |
顯示詳細(xì)信息
3 企業(yè)級(jí)系統(tǒng)參數(shù)配置
// 查看linux系統(tǒng)最大進(jìn)程數(shù)和最大文件打開數(shù)
$ ulimit-a
img
// 設(shè)置linux系統(tǒng)最大進(jìn)程數(shù)和最大文件打開數(shù)(設(shè)置完重新登錄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
// 調(diào)整linux內(nèi)核參數(shù)
\# 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節(jié)點(diǎn)解壓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
// 進(jìn)入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
\# 設(shè)置HBase的日志目錄
exportHBASE_LOG_DIR=${HBASE_HOME}/logs
\# 設(shè)置HBase的pid目錄
exportHBASE_PID_DIR=${HBASE_HOME}/pids
\# 使用獨(dú)立的ZooKeeper集群
exportHBASE_MANAGES_ZK=false
\# 優(yōu)化配置項(xiàng)
\# 設(shè)置HBase內(nèi)存堆的大小
exportHBASE_HEAPSIZE=1024
\# 設(shè)置HMaster最大可用內(nèi)存
exportHBASE_MASTER_OPTS="-Xmx512m"
\# 設(shè)置HRegionServer最大可用內(nèi)存
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
// 創(chuàng)建hbase的緩存文件目錄
$ cd/home/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/
$ mkdirtmp
// 創(chuàng)建hbase的日志文件目錄
$ mkdirlogs
// 創(chuàng)建hbase的pid文件目錄
$ mkdirpids
// 將hbase工作目錄同步到集群其它節(jié)點(diǎn)
$ 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/
// 在集群各節(jié)點(diǎn)上修改用戶環(huán)境變量
$ 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
網(wǎng)站名稱:企業(yè)級(jí)高可用HBase部署方案
URL分享:http://m.5511xx.com/article/ccoccio.html


咨詢
建站咨詢
