Hbase基础(特点、架构、应用场景、集群搭建、HA设计)这一篇就够了

x33g5p2x  于2021-12-27 转载在 Hbase  
字(3.1k)|赞(0)|评价(0)|浏览(489)

这篇博客将由简入繁,入门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.com

server 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
  1. 上传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
  1. 配置.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
  1. 配置hadoop-env.sh(修改hadoopheapsize)
  2. 配置mapred-env.sh(修改javahome)
  3. 配置yarn-env.sh(修改java、yarn堆内存大小)
  4. 配置core-site.xml(修改、创建临时目录)
  5. 配置yarn-site.xml(多个配置核数、内存等)
  6. 配置hdfs-site.xml
  7. 配置mapred-site.xml
  8. 分发配置好hadoop包、配置.bashrc到其他机器
scp -r hadoop slave1:/opt/software/
scp .bashrc slave1:~
  1. 并生效 . .bashrc
  2. hadoop机器格式化
hadoop namenode -format
  1. 启动hadoop

启动hdfs,查看集群状态

start-dfs.sh

jps

jps master有 Jps NameNode SecondNameNode
jps slave有jsp Datanode

启动yarn,查看集群状态

start-yarn.sh

jps master看到多了 ResourceManager
jps slave多了NodeManager
表示搭建完成

7. Zookeeper分布式集群搭建(数量奇数个)

可用于:高可用、注册中心、分布式锁实现;

  1. 上传zookeeper安装包兵解压缩,重命名
tar -zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz
mv zookeeper-3.4.5-cdh5.14.2 zookeeper
  1. 配置zoo.cfg(数据、日志目录、集群的其他配置)
    /opt/software/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs

server.1=slave2:2888:3888
server.2=slave3:2888:3888
server.3=slave4:2888:3888
  1. 创建数据、日志目录(3台机器)
mkdir -p /opt/zookeeper/data
mkdir -p /opt/zookeeper/logs
  1. 为每台机器配置myid(3台机器需不同)
cd /opt/software/data
vim myid 
1
:wq
  1. 分发zookeeper包到其他俩台机器
scp -r zookeeper slave3:/opt/software/
  1. 配置环境变量 .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
  1. 发送环境变量到另外俩台机器,并生效
scp .bashrc slave3:~
. .bashrc
  1. 启动zookeeper服务
zkServer.sh start
  1. 查看zookeeper状态(俩个Follower,一个Leader)
zkServer.sh status

8. HbaseHA方案设计

俩个HMaster,4个RegionServer,一个zookeeper。保证一个HMaster挂了,另一个补上,还能进行RegionServer故障节点的数据平衡等;

相关文章