Hbase基础(特点、架构、应用场景、集群搭建、HA设计)这一篇就够了
Hbase基礎(特點、架構、應用場景、集群搭建、HA設計)這一篇就夠了
- 1. Hbase特點
- 2. Hbase VS RDBMS
- 3. Hbase架構及版本選擇
- 4. Hbase應用場景
- 5. Ntp(多個主機時間同步)
- 6. Hadoop分布式集群搭建
- 7. Zookeeper分布式集群搭建(數量奇數個)
- 8. HbaseHA方案設計
這篇博客將由簡入繁,入門HBase,將介紹Hbase的特點、架構、應用場景、集群搭建、HA設計等。
1. Hbase特點
海量、稀疏(存儲,查詢有優勢)、高并發、面向列、數據多版本、實時處理(spark、storm、stream)
系型數據庫都是行存儲,而Hbase是列存儲,同一種數據在同一個塊上
2. Hbase VS RDBMS
- RDBMS:關系型數據庫 各種類型數據 行式存儲增 刪改查、函數運算,可有聯結操作 可更新替換數據 必須借助中間件才可以伸縮
- Hbase: String 列式 增加清空數據 維護也是插入 可伸縮性(靈活加節點)
3. Hbase架構及版本選擇
集群類型:
-
<20 小型集群
無HA,一個zookeeper,Hbase hadoop -
20~50 中型集群
hadoopHA、HbaseHA、3個zookeeper 3個Hmaster -
大于50 大型集群
5個zookeeper(奇數個節點),Hbase多個HA節點
版本:
apache、cloudera(CDH清晰、更安全性、兼容性、穩定性,支持Kerbos安全認證)
4. Hbase應用場景
- 用戶畫像(推薦系統底層的存儲支持)
- 消息/訂單存儲(低延時、高并發的訪問)
- 對象存儲(小文件的存儲)
- 時序數據(隨著時間而變化的數據Open TSDB整合)
- Cube分析(存儲數據供其他應用實時查詢展示~)
- Feeds流(抖音等,內容聚合器,持續的獲取最新的訂閱列表)
5. Ntp(多個主機時間同步)
Ntp: Network Time Protocol
一個server,多個slave進行時間同步
- 關閉防火墻
- yum安裝ntp
yum install -y ntp
- 配置/etc/ntp.conf
192.168.3.0網段下的所有主機都生效
日志位置
配置時間同步服務器
時間服務器不可用時,把本機當作時間同步服務器
restrict 192.168.3.0 mask 255.255.255.0 nomodify notrap
logfile /var/log/ntpd.log server ntp1.aliyun.com
server ntp2.aliyun.com
server ntp3.aliyun.comserver 127.0.0.1
fudge 127.0.0.1 stratum 10
同步時間(5~10分鐘)
ntpdate -u ntp2.aliyun.com
開啟時間服務器、查看時間、開機自啟動
systemctl start ntpd
systemctl status ntpd
systemctl enable ntpd
slave配置:/etc/ntp.conf 配置master的ip地址
server 192.168.3.1
6. Hadoop分布式集群搭建
1個master,4個slave
前置條件:5臺機器創建好hadoop用戶,免密登錄
mkdir /opt/software && chown -R hadoop:hadoop /opt
- 上傳jdk、hadoop的安裝包并解壓縮
分發包并解壓縮
scp jdk-8u144-linux-x64.tar.gz slave1:/opt/software
su hadoop
tar -zxvf jdk-8u144-linux-x64.tar.gz
tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz
- 配置.bashrc
vi .bashrc
重命名hadoop包
mv hadoop-2.6.0-cdh5.14.2 hadoop
export JAVA_HOME=/opt/software/jdk1.8.0_144
export HADOOP_HOME=/opt/software/hadoop
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$HADOOP_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
生效配置
. .bashrc
- 配置hadoop-env.sh(修改hadoopheapsize)
- 配置mapred-env.sh(修改javahome)
- 配置yarn-env.sh(修改java、yarn堆內存大小)
- 配置core-site.xml(修改、創建臨時目錄)
- 配置yarn-site.xml(多個配置核數、內存等)
- 配置hdfs-site.xml
- 配置mapred-site.xml
- 分發配置好hadoop包、配置.bashrc到其他機器
scp -r hadoop slave1:/opt/software/
scp .bashrc slave1:~
- 并生效 . .bashrc
- hadoop機器格式化
hadoop namenode -format
- 啟動hadoop
啟動hdfs,查看集群狀態
start-dfs.shjps
jps master有 Jps NameNode SecondNameNode
jps slave有jsp Datanode
啟動yarn,查看集群狀態
start-yarn.sh
jps master看到多了 ResourceManager
jps slave多了NodeManager
表示搭建完成
7. Zookeeper分布式集群搭建(數量奇數個)
可用于:高可用、注冊中心、分布式鎖實現;
- 上傳zookeeper安裝包兵解壓縮,重命名
tar -zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz
mv zookeeper-3.4.5-cdh5.14.2 zookeeper
- 配置zoo.cfg(數據、日志目錄、集群的其他配置)
/opt/software/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logsserver.1=slave2:2888:3888
server.2=slave3:2888:3888
server.3=slave4:2888:3888
- 創建數據、日志目錄(3臺機器)
mkdir -p /opt/zookeeper/data
mkdir -p /opt/zookeeper/logs
- 為每臺機器配置myid(3臺機器需不同)
cd /opt/software/data
vim myid
1
:wq
- 分發zookeeper包到其他倆臺機器
scp -r zookeeper slave3:/opt/software/
- 配置環境變量 .bashrc(JAVA_HOME下邊)
vi .bashrc
export JAVA_HOME=/opt/software/jdk1.8.0_144
export ZOO_HOME=/opt/software/zookeeper
export HADOOP_HOME=/opt/software/hadoop
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$HADOOP_HOME/lib:$ZOO_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOO_HOME/bin
- 發送環境變量到另外倆臺機器,并生效
scp .bashrc slave3:~
. .bashrc
- 啟動zookeeper服務
zkServer.sh start
- 查看zookeeper狀態(倆個Follower,一個Leader)
zkServer.sh status
8. HbaseHA方案設計
倆個HMaster,4個RegionServer,一個zookeeper。保證一個HMaster掛了,另一個補上,還能進行RegionServer故障節點的數據平衡等;
總結
以上是生活随笔為你收集整理的Hbase基础(特点、架构、应用场景、集群搭建、HA设计)这一篇就够了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 试管婴儿利与弊
- 下一篇: OpenCV中的霍夫线变换、概率霍夫线变