HBase設(shè)置外網(wǎng)訪問集群

HBase集群搭建在內(nèi)網(wǎng),現(xiàn)在需要從外網(wǎng)訪問HBase,對數(shù)據(jù)進(jìn)行讀寫。

首先,需要明白HBase客戶端連接HBase集群進(jìn)行數(shù)據(jù)讀寫的流程


HBase架構(gòu)圖

1.寫流程

1.Client先訪問zookeeper,從Region中獲取表信息;
2.根據(jù)namespace、表名和rowkey根據(jù)meta表的數(shù)據(jù)找到寫入數(shù)據(jù)對應(yīng)的RegionServerID;
3.通過RegionServerID定位到region;
4.寫入數(shù)據(jù)到Region的Memstore,直到達(dá)到一定的閥值(128MB),MemStore中的數(shù)據(jù)被溢寫Flush成一個StoreFile,(與此同時寫入相同數(shù)據(jù)到log預(yù)寫日志中);
5.隨著StoreFile文件的不斷增多,當(dāng)其數(shù)量增長到一定閾值后,觸發(fā)Compact合并操作,將多個StoreFile合并成一個StoreFile,StoreFile底層是HFile,同時進(jìn)行版本合并和數(shù)據(jù)刪除;
6.單個StoreFile超過一定閥值后,出發(fā)Split操作,把當(dāng)前的RegionSplit分為兩個新的Region,父Region此時就會下線,新Split出的2個子Region會被HMaster分配到相應(yīng)的RegionServer上,使得原先1個Region的壓力得以分流到2個Region上。

2.讀流程

1.Client發(fā)送請求并訪問zookeeper,獲取meta表信息;
2.通過meta表中的Rowkey,tableName,TimeStamp定位到RegionID;
3.通過這個RegionID查找到相對應(yīng)的RegionServer
4.查找到RegionServer中,先查找MemStore(寫緩存),如果查不到,再進(jìn)入BlockCache(讀緩存)中查詢,如果查不到,再進(jìn)入StoreFile中查(依據(jù)StoreFile的索引查),并把結(jié)果放在BlockCache中。

所以,HBase客戶端進(jìn)行數(shù)據(jù)讀寫不會接觸到HMaster,只會接觸到zookeeper集群和和所有的regionserver節(jié)點。

3.修改HBase的RegionServer端口

HBase默認(rèn)的RegionServer端口是16020,現(xiàn)在有多個RegionServer,需要為不同的RegionServer配置不同的端口

在Slave1節(jié)點上,hbase-site.xml文件添加配置如下

        </property>
                <property>
                <name>hbase.regionserver.port</name>
                <value>16020</value>
        </property>

在Slave2節(jié)點上,hbase-site.xml文件添加配置如下

        </property>
                <property>
                <name>hbase.regionserver.port</name>
                <value>16021</value>
        </property>

在Slave3節(jié)點上,hbase-site.xml文件添加配置如下

        </property>
                <property>
                <name>hbase.regionserver.port</name>
                <value>16022</value>
        </property>

4.修改客戶端/etc/hosts

HBase客戶端通過zookeeper獲取到regionserver的節(jié)點名和端口,例如slave1:16020,slave2:16021,slave3:16022,會解析本機(jī)的/etc/hosts文件,獲取slave1,slave2,slave3的IP地址,所以,在/etc/hosts添加如下配置

59.69.101.206  slave1
59.69.101.206  slave2
59.69.101.206  slave3

這樣,HBase客戶端就能知道regionserver的IP和端口了,就能獲取和寫入數(shù)據(jù)了。

5.配置路由器

最后,還需要配置路由器,給zookeeper和regionserver節(jié)點配置端口映射。
這里的端口映射配置是

59.69.101.206:42181     zookeeper1.ip:2181
59.69.101.206:42182     zookeeper2.ip:2181
59.69.101.206:42183     zookeeper3.ip:2181

59.69.101.206:16020     slave1.ip:16020
59.69.101.206:16021     slave2.ip:16021
59.69.101.206:16022     slave3.ip:16022

5.客戶端的hbase-site.xml配置如下

<property>
<name>hbase.zookeeper.quorum</name>
<value>59.69.101.206:42181,59.69.101.206:42182,59.69.101.206:42183</value>
</property>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容