欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Hbase HA 分布式搭建


一. 背景

本文所搭建的 HBase 版本為 HBase 0.98.6-cdh5.3.2。HBase 有兩種運行模式:單機模式分布式模式。本文只重點(diǎn)講解 “分布式模式“。

在搭建 HBase 0.98.6-cdh5.3.2 之前,筆者已經(jīng)在集群搭建并啟動(dòng)好 Hadoop 和 ZooKeeper 集群。具體請參考:



二. HBase 搭建前準備

在開(kāi)始安裝 HBase 之前需要做一些準備工作,這涉及到系統設置、分布式模式 Hadoop 的部署及 HBase 自身的配置,因此要確保在運行 Hbase 之前這些條件已經(jīng)具備。以下將介紹 HBase 依賴(lài)的一些重要的中間件、系統服務(wù)或配置。

2.1 主機規劃

IP 主機名 用戶(hù)名 HBase 地位 啟動(dòng)后進(jìn)程
10.6.3.43 master5 hadoop5 主 Master HMaster
10.6.3.33 master52 hadoop5 備份 Master HMaster
10.6.3.48 slave51 hadoop5 RegionServer HRegionServer
10.6.3.32 slave52 hadoop5 RegionServer HRegionServer
10.6.3.38 slave53 hadoop5 RegionServer HRegionServer



2.2 系統基本配置 (jdk + ssh + hosts)

1. 安裝 jdk 1.8.0
安裝 jdk 1.8.0 至 /usr/local/jdk1.8.0_60 ,具體請參考 “安裝 jdk1.8.0

2. 配置免密 ssh 登陸
具體請參考:Centos6.5下SSH免密碼登陸配置

3. 域名系統 DNS
Hbase 通過(guò)本地主機名 (Host Name)或 域名 (Domain Name)來(lái)獲取 IP 地址,因此要確保正向和反向 DNS 解析是正常的。在進(jìn)行 DNS 解析時(shí)會(huì )首先本地 /etc/hosts 文件,因此建議通過(guò)配置該文件指定主機名或域名到 IP 地址的映射關(guān)系而不使用域名解析服務(wù),這樣做將更易于維護,當出現主機無(wú)法識別的異常時(shí)也更加容易定位問(wèn)題出現的位置,并且通過(guò)本地 /etc/hosts 文件解析 IP 地址速度也會(huì )更快一些。

編輯 /etc/hosts 文件內容均一致,都要將集群中的各 IP 和 主機名對應起來(lái)

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain610.6.3.43       master510.6.3.33       master5210.6.3.48       slave5110.6.3.32       slave5210.6.3.36       slave53
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

當決定使用 DNS 服務(wù)的時(shí)候,還可以通過(guò)如下設置更加精確地控制 HBase 的行為。

如果有多個(gè)網(wǎng)卡,可以通過(guò)參數 hbase.regionserver.dns.interface 指定網(wǎng)卡,該配置參數的默認值是 default ,可以通過(guò)這個(gè)參數指定網(wǎng)絡(luò )接口,不過(guò)要求集群所有節點(diǎn)配置是相同的且每臺主機都使用相同的網(wǎng)卡配置,可以修改這個(gè)配置參數為 eth0 或 eth1 ,這要視具體的硬件配置而定。

另一個(gè)配置是指定 hbase.regionserver.dns,nameserver 可以選擇一個(gè)不同的 DNS 的 nameserver。

4. 本地回環(huán)地址 Loopback IP
HBase 要求將本地回環(huán)接口配置成 127.0.0.1,可以在 /etc/hosts 文件配置,通常系統安裝后都已經(jīng)包含了該配置

127.0.0.1   localhost
  • 1

2.3 網(wǎng)絡(luò )時(shí)間協(xié)議 NTP

HBase 要求集群中節點(diǎn)間的系統時(shí)間要基本一致,可以容忍一些偏差,默認相差 30s 以?xún)???梢酝ㄟ^(guò)設置參數 hbase.master.maxclockskew 屬性值修改最大容忍偏差時(shí)間。偏差時(shí)間較多時(shí)集群會(huì )產(chǎn)生一些奇怪的行為。用戶(hù)需要在集群中數據發(fā)生了一些莫名其妙的問(wèn)題,例如讀到的不是剛寫(xiě)進(jìn)集群的數據而是舊數據,這時(shí)就要檢查集群各節點(diǎn)間時(shí)間是否同步。

筆者采用的是在 10.6.3.43 上搭建 NTP 時(shí)間服務(wù)器,集群中其他節點(diǎn)都隨時(shí)與 10.6.3.43 保持時(shí)間同步。關(guān)于 NTP 服務(wù)器的搭建,可以參考:NTP 時(shí)間服務(wù)器實(shí)戰

如果不愿意搭建 NTP 服務(wù)器,可以用腳本實(shí)現在每臺主機上同時(shí)鍵入時(shí)間

date -s "2014-1-4 12:16:00"
  • 1

同時(shí)設置下 hbase.master.maxclockskew 參數,這個(gè)具體請看 附錄


2.4 安裝 ZooKeeper

ZooKeeper 是 HBase 集群的 “協(xié)調器” ,負責解決 HMaster 的單點(diǎn)問(wèn)題,以及 root 的路由,所以一個(gè)獨立的 ZooKeeper 服務(wù)時(shí)必需的。要確保事先先安裝好一個(gè) ZooKeeper 集群。具體請參考:ZooKeeper-3.4.5 安裝



三. HBase 安裝配置

以下操作均在主 Master(即 10.6.3.43)上進(jìn)行操作

3.1 下載解壓 HBase 并配置其環(huán)境變量

1. 下載安裝 HBase

不同版本的 HBase 依賴(lài)于特定的 Hadoop 版本,應該選擇最適合的 HBase 版本。筆者使用的 Hadoop-2.5.0-cdh5.3.2,ZooKeeper-3.4.5-cdh5.3.2。故本文所搭建的 HBase 版本為 HBase 0.98.6-cdh5.3.2,下載地址:http://archive.cloudera.com/cdh5/cdh/5/

下載后的 tar.gz 包先暫放在路徑 ~/softwares/tar_packages

2. 創(chuàng )建安裝目錄

sudo mkdir -p /usr/local/cluster/hbasesudo chown -R hadoop5:hadoop5 /usr/local/cluster/
  • 1
  • 2

3. 解壓至安裝目錄下

sudo tar -zxvf ~/softwares/tar_packages/hbase-0.98.6-cdh5.3.2.tar.gz -C /usr/local/cluster/hbase  --strip-components 1sudo chown -R hadoop5:hadoop5 /usr/local/cluster/hbase
  • 1
  • 2

4. 編輯環(huán)境變量并使其生效

Note:這一步在 HBase 集群中的所有節點(diǎn)上都完成

vim ~/.bash_profile
  • 1

添加如下:

export HBASE_HOME=/usr/local/cluster/hbaseexport PATH=$PATH:$HBASE_HOME/bin
  • 1
  • 2

最后:

source ~/.bash_profile
  • 1

3.2 配置 hbase-env.sh

在這個(gè)文件中還可以設置 HBase 的運行環(huán)境,諸如 Heap Size 和 其他有關(guān) JVM 的選項,比如日志保存目錄、進(jìn)程優(yōu)先級等。當然最重要的還是設置 JAVA_HOME 指向 java 安裝的路徑。

cd /usr/local/cluster/hbase/confvim hbase-env.sh
  • 1
  • 2

添加如下:

export JAVA_HOME=/usr/local/jdk1.8.0_60export HBASE_CLASSPATH=/usr/local/cluster/hadoop/etc/hadoopexport HBASE_HEAPSIZE=4000export HBASE_LOG_DIR=${HBASE_HOME}/logsexport HBASE_MANAGES_ZK=false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 其中JAVA_HOMEHBASE_CLASSPATH 根據實(shí)際情況進(jìn)行配置
  • HBASE_HEAPSIZE 的大小根據你的集群配置,默認是 1000
  • HBASE_LOG_DIR 是 HBase 日志存放位置
  • HBASE_MANAGES_ZK=false 含義為 hbase 不托管 zookeeper 的啟動(dòng)與關(guān)閉,因為筆者的 ZooKeeper 是獨立安裝的

3.3 配置 hbase-site.xml

vim hbase-site.xml
  • 1

注意:接下來(lái)的配置均在兩個(gè) configuration 之間添加完成的,如下圖所示

<property><name>hbase.rootdir</name><value>hdfs://master5:8020/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.master</name><value>60000</value></property><property><name>hbase.tmp.dir</name><value>/usr/local/cluster/data/hbase-tmp</value></property><property><name>hbase.zookeeper.quorum</name><value>slave51,slave52,slave53</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/usr/local/cluster/zookeeper/data</value></property><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property><property><name>zookeeper.session.timeout</name><value>120000</value></property><property><name>hbase.regionserver.restart.on.zk.expire</name><value>true</value></property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

更多配置請參考 :HBase 默認配置


3.4 hbase-site.xml 配置參數解析

1. hbase.rootdir
這個(gè)目錄是 RegionServer 的共享目錄,用來(lái)持久化 HBase。特別注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必須一致。

2. hbase.cluster.distributed
HBase 的運行模式。為 false 表示單機模式,為 true 表示分布式模式。若為 false,HBase 和 ZooKeeper 會(huì )運行在同一個(gè) JVM 中

3. hbase.master

  • 如果只設置單個(gè) Hmaster,那么 hbase.master 屬性參數需要設置為 master5:60000 (主機名:60000)
  • 如果要設置多個(gè) Hmaster,那么我們只需要提供端口 60000,因為選擇真正的 master 的事情會(huì )有 zookeeper 去處理

4. hbase.tmp.dir
本地文件系統的臨時(shí)文件夾??梢孕薷牡揭粋€(gè)更為持久的目錄上。(/tmp會(huì )在重啟時(shí)清除)

5. hbase.zookeeper.quorum
對于 ZooKeeper 的配置。至少要在 hbase.zookeeper.quorum 參數中列出全部的 ZooKeeper 的主機,用逗號隔開(kāi)。該屬性值的默認值為 localhost,這個(gè)值顯然不能用于分布式應用中。

6. hbase.zookeeper.property.dataDir
這個(gè)參數用戶(hù)設置 ZooKeeper 快照的存儲位置,默認值為 /tmp,顯然在重啟的時(shí)候會(huì )清空。因為筆者的 ZooKeeper 是獨立安裝的,所以這里路徑是指向了 $ZOOKEEPER_HOME/conf/zoo.cfg 中 dataDir 所設定的位置。

7. hbase.zookeeper.property.clientPort
表示客戶(hù)端連接 ZooKeeper 的端口。

8. zookeeper.session.timeout
ZooKeeper 會(huì )話(huà)超時(shí)。Hbase 把這個(gè)值傳遞改 zk 集群,向它推薦一個(gè)會(huì )話(huà)的最大超時(shí)時(shí)間

9. hbase.regionserver.restart.on.zk.expire
當 regionserver 遇到 ZooKeeper session expired , regionserver 將選擇 restart 而不是 abort。


3.5 配置 regionservers

在這里列出了希望運行的全部 Regionserver ,一行寫(xiě)一個(gè)主機名(就像 Hadoop 中的 slaves 一樣)。這里列出的 Server 會(huì )隨著(zhù)集群的啟動(dòng)而啟動(dòng),集群的停止而停止。

vim regionservers
  • 1

添加如下:

slave51slave52slave53
  • 1
  • 2
  • 3

3.6 替換 Hadoop 的 jar 包

由于 HBase 依賴(lài)于 Hadoop,因此在安裝包的 lib 文件夾下包含了一個(gè) Hadoop 的核心 jar 文件。在分布式模式下,HBase 使用的 Hadoop 版本必須和運行中的 Hadoop 集群的 jar 文件版本一致。將運行的分布式 Hadoop 版本的 jar 文件替換 HBase 的 lib 目錄下的 Hadoop 的 jar 文件,以避免版本不匹配問(wèn)題。確認替換了集群中所有節點(diǎn)的 HBase 安裝目錄下 lib 目錄的 jar 文件。Hadoop 版本不匹配問(wèn)題有不同的表現,但看起來(lái) HBase 像掛掉了。

但因為筆者所用的 HBase 是從 CDH 官網(wǎng)上直接下載配套 Hadoop-2.5.0-cdh5.3.2 版本的,其 lib 包下的已經(jīng)替換了相關(guān)的 jar 包,如下所示:

如果讀者的 hbase 包下并未替換,可以使用如下命令:

cp ${HADOOP_HOME}/share/hadoop/common/hadoop-common-2.5.0-cdh5.3.2.jar  ${HBASE_HOME}/lib/
  • 1

3.7 移除 HBase 里面的不必要 log4j 的 jar 包

cd /usr/local/cluster/hbase/libmv slf4j-log4j12-1.7.5.jar slf4j-log4j12-1.7.5.jar.bak
  • 1
  • 2

如果不移除的話(huà),將會(huì )出現以下 warning :


3.8 分發(fā) HBase

scp -r /usr/local/cluster/hbase/ hadoop5@master52:/usr/local/cluster/scp -r /usr/local/cluster/hbase/ hadoop5@slave51:/usr/local/cluster/scp -r /usr/local/cluster/hbase/ hadoop5@slave52:/usr/local/cluster/scp -r /usr/local/cluster/hbase/ hadoop5@slave53:/usr/local/cluster/
  • 1
  • 2
  • 3
  • 4



四. 啟動(dòng)并檢驗 HBase

4.1 啟動(dòng) HBase

友情提醒:在啟動(dòng)之前,筆者已經(jīng)將 ZooKeeper 和 Hadoop (至少是 HDFS)給啟動(dòng)了。

1. 在其中一臺主機上啟動(dòng) Hmaster,即筆者在 master5 上,執行以下命令

start-hbase.sh 
  • 1


2. 在另一臺 Hmaster 的主機上,即筆者在 master52 上,執行以下命令

hbase-daemon.sh start master
  • 1

  • 查看 master52 上的日志

  • 在其中一個(gè) ZooKeeper 機子上,可以查看相應的 znode 點(diǎn),例如在 slave51 上執行
zkCli.sh
  • 1


3. 查看相應進(jìn)程

  • master5

  • master52

  • slave53


4.2 HDFS 上 /hbase 目錄

在 master5 上查看啟動(dòng) HBase 后在 HDFS 上產(chǎn)的目錄。該路徑是由 hbase.rootdir 屬性參數所決定的

hadoop fs -ls -R /hbase
  • 1

今后 HBase 的數據就是存放在此了。


4.3 在瀏覽器上查看具體信息

1. 當 master5 的 HBase 正常工作時(shí)
打開(kāi)瀏覽器可以查看到:

10.6.3.43:60010
  • 1


2. 模擬 master5 失效后 ,Hmaster 故障切換

  • 在 master5 上執行
hbase-daemon.sh stop master
  • 1
  • 此時(shí)查看 Web 瀏覽器 (原來(lái)的 10.6.3.43:60010 失效打不開(kāi)了)
10.6.3.33:60010
  • 1

  • 此時(shí)再次查看 master52 上的日志可以看到選舉的相關(guān)信息

補充:關(guān)閉集群
Note:在關(guān)閉之前請確保 ZooKeeper 并沒(méi)有關(guān)閉!

stop-hbase.sh
  • 1

4.4 hbase shell 基本測試

1. 進(jìn)入hbase命令行

hbase shell
  • 1

2. 建立一個(gè)表,具有三個(gè)列族member_id 、address、info

create 'member','member_id','address','info'
  • 1

3. 查看當前 HBase 中具有哪些表

list
  • 1

4. 查看表的構造

describe 'member' 
  • 1

5. 刪除列族 member_id

drop 'member'
  • 1

6. 退出 shell 命令行

exit 
  • 1

只要上述操作無(wú)報錯,那么恭喜你,安裝成功!


五. 附錄

5.1 資源限制命令 ulimit 和 nproc

HBase 和其他的數據庫軟件一樣會(huì )同時(shí)打開(kāi)很多文件。Linux 中默認的 ulimit 值是 1024,這對 HBase 來(lái)說(shuō)太小了。當批量導入數據的時(shí)候會(huì )得到這樣的異常信息: java.io.IOException:Too many open files 。我們需要改變這個(gè)值,注意,這是對操作系統的參數調整,而不是通過(guò) HBase 配置文件來(lái)完成的。我們可以大致估算出 ulimit 值需要配置多大才合適。

存儲文件個(gè)數 * 列族數 * 每個(gè) RegionServer 中的 Region 數量 = RegionServer 主機管理的存儲文件數量
  • 1

假設每個(gè) Region 有 3 個(gè)列族,每個(gè)列族平均有 3 個(gè)存儲文件,每個(gè) RegionServer 有 100 個(gè) region ,將至少需要 3*3*100=900 個(gè)文件。這些存儲文件會(huì )頻繁被客戶(hù)端調用,涉及大量的磁盤(pán)操作,應根據實(shí)際情況調整 ulimit 參數值的大小。

1. 關(guān)于 ulimit 有兩個(gè)地方需要調整,通過(guò)在 /etc/security/limits.conf** 追加參數進(jìn)行設置,一個(gè)參數是 nofile ,設置如下:**

soft nofile 10240hard nofile 10240
  • 1
  • 2

如果 沒(méi)有設置這個(gè)參數會(huì )得到上面說(shuō)的異常。這個(gè)設置表示限制打開(kāi)的文件數。這個(gè)配置不能及時(shí)生效,還需要通過(guò) ulimit -n 設置。

ulimit -n 10240
  • 1

2. 另一個(gè)參數是 noproc,這個(gè)配置是限制用戶(hù)打開(kāi)的進(jìn)程數,設置如下:

soft noproc 10240hard noproc 10240
  • 1
  • 2

該設置可以及時(shí)生效,可以通過(guò) ulimit -c 查看。如果不設置 noproc 可能會(huì )得到如下異常:

java.lang.OutOfMemoryError:unable to create new native thread
  • 1
  • 2

實(shí)際上這兩個(gè)參數對于 HDFS 和 MapReduce 也至關(guān)重要,應該在啟動(dòng) Hadoop 之前就設置好。另外注意的是這兩個(gè)參數針對操作系統用戶(hù)的, * 代表對所有用戶(hù)生效。


5.2 常用配置參數

  • hbase.master.maxclockskew
<property>        <name>hbase.master.maxclockskew</name>        <value>180000</value>        <description>Time difference of regionserver from master</description> </property>
  • 1
  • 2
  • 3
  • 4
  • 5

參考資料:

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
HBase ZooKeeper Hadoop2.6.0的ResourceManager HA集群高可...
阿里云ECS服務(wù)器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)
HBase集群搭建
大數據之Hbase安裝及模式配置
工作中我自己總結的hbase文檔,供初學(xué)者學(xué)習??戳诉@個(gè),就不用
HBase介紹及簡(jiǎn)易安裝
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久