当前位置: 首页 > news >正文

做网站后台需要学什么挖掘关键词爱站网

做网站后台需要学什么,挖掘关键词爱站网,做介绍的英文网站,网站标签怎么做跳转页面HBase 数据库 一、HBase 概述1.1 HBase 是什么HBase 的特点 二、HBase 模型及架构2.1 HBase 逻辑模型2.2 HBase 数据模型2.3 HBase 物理模型2.3.1 列簇物理模型2.3.2 Rowkey 字段排序2.3.3 Region 存储到不同节点2.3.4 Region 结构 2.4 HBase 基本架构 三、搭建 HBase 分布式集…

HBase 数据库

  • 一、HBase 概述
    • 1.1 HBase 是什么
    • HBase 的特点
  • 二、HBase 模型及架构
    • 2.1 HBase 逻辑模型
    • 2.2 HBase 数据模型
    • 2.3 HBase 物理模型
      • 2.3.1 列簇物理模型
      • 2.3.2 Rowkey 字段排序
      • 2.3.3 Region 存储到不同节点
      • 2.3.4 Region 结构
    • 2.4 HBase 基本架构
  • 三、搭建 HBase 分布式集群
    • 3.1 HBase 集群规划
      • 3.1.1 主机规划
      • 3.1.2 软件规划
      • 3.1.3 用户规划
      • 3.1.4 数据目录规划
    • 3.2 HBase 集群安装配置
      • 3.2.1 下载上传解压
      • 3.2.2 修改配置文件
        • 3.2.2.1 修改hbase-site.xml配置文件
        • 3.2.2.2 修改regionservers配置文件
        • 3.2.2.3 修改backup-masters配置文件
        • 3.2.2.4 修改hbase-env.sh配置文件
      • 3.2.3 配置 HBase 环境变量
      • 3.2.4 配置文件同步到集群其他节点
    • 3.3 启动 HBase 集群服务
      • 3.3.1 启动 Zookeeper 集群
      • 3.3.2 启动 HDFS 集群
      • 3.3.3 启动 HBase 集群
      • 3.3.5 HBase Web 界面
  • 四、HBase shell 操作

一、HBase 概述

1.1 HBase 是什么

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,利用HBase技术可在廉价的PC Server上搭建大规模结构化存储集群。

HBase是Google BigTable的开源实现,与Google的BigIable利用GFS作为其文件存储系统类似,HBase则利用Hadoop的HDFS作为其文件存储系统。Google运行 MapReduce 来处理Bigtable中的海量数据,而HBase则利用 Hadoop的MapReduce来处理HBase中的海量数据Google Bigtable利用Chubby作为协同服务,而HBase则利用Zookeeper作为协同服务。

HBase 的特点

  • 容量巨大:单表可以有百亿行、数百万列。
  • 无模式:同一个表的不同行可以有截然不同的列。
  • 面向列:HBase是面向列的存储和权限控制,并支持列独立索引。
  • 稀疏性:表可以设计得非常稀疏,值为空的列并不占用存储空间。
  • 扩展性:HBase底层文件存储依赖HDFS,它天生具备可扩展性。
  • 高可靠性:HBase提供了预写日志(WAL)和副本(Replication)机制,防止数据丢失。
  • 高性能:底层的LSM(Log-Structured Merge Tree)数据结构和RowKey有序排列等架构上的独特设计,使得HBase具备非常高的写入性能。

二、HBase 模型及架构

2.1 HBase 逻辑模型

在这里插入图片描述

2.2 HBase 数据模型


  • HBase是一种列式存储的分布式数据库,其核心概念是表(Table)。与传统关系型数据库一样,HBase 的表也是由行和列组成,但 Hase同一列可以存储不同时刻的值,同时多个列可以组成一个列簇(Column Family),这种组织形式主要是出于HBase存取性能的考虑。

  • 行键
    Rowkey 既是 HBase 表的行键,也是 HBase 表的主键。HBase 表中的记录是按照RowKey的字典顺序进行存储的。

    在HBase中,为了高效地检索数据,需要设计良好的Rowkey来提高查询性能。因为Rowkey 会被几余存储,所以长度不宜过长,Rowkey 过长将会占用大量的存储空间同时会降低检索效率。其次 Rowkey 应该尽量均匀分布,避免产生热点问题(大量用户访问集中在一个或极少数节点,从而造成单台节点超出自身承受能力)。另外需要保证Rowkey的唯一性。

  • 列簇
    HBase表中的每个列都归属于某个列簇,一个列簇中的所有列成员有着相同的前缀。比如,列anchor:cnnsi.com和anchor:my.look.ca都是列簇anchor的成员。列簇是表的schema的-部分,必须在使用表之前定义列簇,但列却不是必需的,写数据的时候可以动态加入。一般将经常一起查询的列放在一个列簇中,合理划分列簇将减少查询时加载到缓存的数据,提高查询效率,但也不能有太多的列簇,因为跨列簇访问是非常低效的。

  • 单元格
    HBase中通过RowKey和Column确定的一个存储单元称为单元格(Ce11)。每个单元格都保存着同一份数据的多个版本,不同时间版本的数据按照时间顺序倒序排序,最新时间的数据排在最前面,时间截是 64 位的整数,可以由客户端在写入数据时赋值,也可以由RegionServer自动赋值。

2.3 HBase 物理模型

2.3.1 列簇物理模型

在这里插入图片描述

2.3.2 Rowkey 字段排序

在这里插入图片描述

2.3.3 Region 存储到不同节点

一个表包含不同的Region,一个 Region 包含不同列簇,一个列簇包含不同的列
在这里插入图片描述

2.3.4 Region 结构

在 Region 中,数据先写在内存 memStore,然后再保存在磁盘文件(HDFS)中;一个 Store 表示一个列簇
在这里插入图片描述

2.4 HBase 基本架构

在这里插入图片描述

  • HMaster:管理表的增删改查、负责负载均衡
  • Zookeeper:监听HRegionServer的上下线,HMaster主备切换
  • HRegionServer:负载客户端的读写请求、预写日志、管理 HRegion
  • HRegion:管理 Store,写入内存,写入磁盘文件
  • HFile:内容写入 HDFS

三、搭建 HBase 分布式集群

3.1 HBase 集群规划

HBase底层数据存储在HDFS之上,所以构建HBase集群之前需要确保HDFS集群正常运行。为了确保数据的本地性,HBase集群安装选择跟HDFS集群共享节点。

3.1.1 主机规划

仍然选择hadoop1、hadoop2和hadoop3节点安装部署HBase集群,那么相关角色规划如下:

hadoop1hadoop2hadoop3
NameNode
DataNode
Zookeeper
Hmaster
HRegionServer

3.1.2 软件规划

HBase集群的安装需要考虑与Hadoop版本的兼容性问题,否则HBase可能无法正常运行,其相关软件版本如下:

软件版本位数说明
JDK1.864稳定
Zookeeper3.8.4稳定
hadoop2.10.2稳定
HBase2.1.0与Hadoop兼容

3.1.3 用户规划

HBase集群安装用户保持与Hadoop集群安装用户一致即可,其用户规划如下:

节点用户组用户
hadoop1rootroot
hadoop2rootroot
hadoop3rootroot

3.1.4 数据目录规划

在正式安装HBase之前,需要规划好所有的软件目录和数据存放目录,便于后期的管理与维护。HBase目录规划如下:

目录名称目录路径
HBase 软件安装目录/usr/local
RegionServer 共享目录hdfs://mycluster/hbase
Zookeeper 数据目录/usr/local/data/zookeeper

3.2 HBase 集群安装配置

3.2.1 下载上传解压

下载地址:https://archive.apache.org/dist/hbase/

上传:
在这里插入图片描述
解压:

[root@hadoop1 local]# tar -zxvf hbase-2.1.0-bin.tar.gz 

创建软连接:

[root@hadoop1 local]# ln -s hbase-2.1.0 hbase

在这里插入图片描述

3.2.2 修改配置文件

进入hadoop1节点的conf目录,修改HBase集群相关配置文件

3.2.2.1 修改hbase-site.xml配置文件

通过修改hbase-site.xml配置文件进行个性化配置,修改内容如下所示

[root@hadoop1 hbase]# vim /usr/local/hbase/conf/hbase-site.xml 

添加如下内容(记得把注释去掉,以免不能正常启动):

<configuration><property><name>hbase.zookeeper.quorum</name><value>hadoop1,hadoop2,hadoop3</value><description>指定Zookeeper集群节点</description></property><property><name>hbase.zookeeper.property.dataDir</name><value>/usr/local/zookeeper/data/zkdata</value><description>指定Zookeeper数据存储目录</description></property><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value><description>指定Zookeeper端口号</description></property><property><name>hbase.rootdir</name><value>hdfs://mycluster/hbase</value><description>指定HBase在HDFS上的根目录</description></property><property><name>hbase.cluster.distributed</name><value>true</value><description>指定true为分布式集群部署</description></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value><description>使用本地文件系统设置为false,使用hdfs设置为true</description></property>
</configuration>

在这里插入图片描述

3.2.2.2 修改regionservers配置文件

修改regionservers配置文件添加RegionServer节点角色,修改内容如下:

[root@hadoop1 hbase]# vim /usr/local/hbase/conf/regionservers 

添加如下内容(不要添加空格或最后加换行):

hadoop1
hadoop2
hadoop3
3.2.2.3 修改backup-masters配置文件

修改backup-masters配置文件(可能不存在此文件)添加备用节点,修改内容如下:

[root@hadoop1 hbase]# vim /usr/local/hbase/conf/backup-masters

添加内容如下:

hadoop2

因为HBase的HMaster角色需要配置高可用,所以这里选择hadoop2为备用节点。

3.2.2.4 修改hbase-env.sh配置文件

修改hbase-env.sh配置文件添加相关环境变量,修改内容如下:

[root@hadoop1 hbase]# vim /usr/local/hbase/conf/hbase-env.sh 

修改如下内容(注释部分记得去掉):

# 配置jdk安装路径
export JAVA_HOME=/usr/local/jdk
# 使用独立的Zookeeper集群
export HBASE_MANAGES_ZK=false

3.2.3 配置 HBase 环境变量

添加HBase环境变量,添加内容如下

[root@hadoop1 hbase]# vim /etc/profile

添加如下内容:

# 添加 HBase 环境变量
HBASE_HOME=/usr/local/hbase
PATH=$HBASE_HOME/bin:$PATH
export HIVE_HOME PATH

更新环境变量

[root@hadoop1 hbase]# source /etc/profile
# 添加 HBase 环境变量
HBASE_HOME=/usr/local/hbase
PATH=$HBASE_HOME/bin:$PATH
export HIVE_HOME PATH

3.2.4 配置文件同步到集群其他节点

将hadoop1节点中配置好的HBase安装目录,分发给hadoop2和hadoop3节点,因为HBase集群配置都是一样的。这里使用工具 deploy.sh 和 runRemoteCmd.sh 命令进行分发(ZooKeeper 集群的详细部署的4.1章节),具体操作如下:

[root@hadoop1 tools]# deploy.sh /usr/local/hbase-2.1.0 /usr/local/ slave
[root@hadoop1 tools]# deploy.sh /etc/profile /etc slave
[root@hadoop1 tools]# runRemoteCmd.sh "ln -s /usr/local/hbase-2.1.0 /usr/local/hbase" slave

3.3 启动 HBase 集群服务

3.3.1 启动 Zookeeper 集群

[root@hadoop1 tools]# runRemoteCmd.sh "/usr/local/zookeeper/bin/zkServer.sh start" all

在这里插入图片描述

3.3.2 启动 HDFS 集群

[root@hadoop1 tools]# /usr/local/hadoop/sbin/start-dfs.sh

在这里插入图片描述

3.3.3 启动 HBase 集群

[root@hadoop1 tools]# /usr/local/hbase/bin/start-hbase.sh 

日志提示报错:
在这里插入图片描述
上面提示是缺少 htrace.SamplerBuilder类,如下操作再重新启动

[root@hadoop1 client-facing-thirdparty]# cp /usr/local/hbase/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar /usr/local/hbase/lib/

在这里插入图片描述

3.3.5 HBase Web 界面

在这里插入图片描述

四、HBase shell 操作

进入 HBbase shell

[root@hadoop1 hbase]# /usr/local/hbase/bin/hbase shell

在这里插入图片描述

  • 创建 course 表
hbase(main):005:0> create 'course','cf'

在这里插入图片描述

  • 查看 HBase 所有表
hbase(main):006:0> list
  • 查看 course 表结构
hbase(main):008:0> describe 'course'

在这里插入图片描述

  • 向 course 表插入数据
put 'course','001','cf:cname','hbase'
put 'course','001','cf:score','95'
put 'course','002','cf:cname','sqoop'
put 'course','002','cf:score','85'
put 'course','003','cf:cname','flume'
put 'course','003','cf:score','98'

在这里插入图片描述

  • 查询 course 表中的所有数据
hbase(main):015:0> scan 'course'

在这里插入图片描述

  • 根据行键查询 course 表
    • 查询整条记录
hbase(main):023:0> get 'course','001'

在这里插入图片描述

- 查询一个列簇数据
hbase(main):025:0> get 'course','001','cf'

在这里插入图片描述
- 查询列簇中其中的一个列

hbase(main):026:0> get 'course','001','cf:cname'

在这里插入图片描述

  • 更新 course 表数据
hbase(main):027:0> put 'course','001','cf:score','99'
hbase(main):028:0> get 'course','001','cf:score'

在这里插入图片描述

  • 查询 course 表总记录
hbase(main):029:0> count 'course'

在这里插入图片描述

  • 删除 course 表数据
    • 删除列簇中的一列
hbase(main):031:0> delete 'course','003','cf:score'
hbase(main):034:0> scan 'course'

在这里插入图片描述
- 删除整行记录

hbase(main):033:0> deleteall 'course','002'
hbase(main):034:0> scan 'course'

在这里插入图片描述

  • 清空 course 表
hbase(main):035:0> truncate 'course'
hbase(main):036:0> scan 'course'

在这里插入图片描述

  • 删除 course 表
hbase(main):037:0> disable 'course'
hbase(main):038:0> drop 'course'

在这里插入图片描述

  • 查看表是否存在
hbase(main):040:0> exists 'course'

在这里插入图片描述

http://www.khdw.cn/news/31005.html

相关文章:

  • 做网站的素材和步骤厦门搜索引擎优化
  • 网站建设合同.doc谷歌浏览器下载官方正版
  • 刷网站跳出率网络推广费用计入什么科目
  • 校园网络设计方案ensp福州seo兼职
  • 如何设立邮箱和网站51网站统计
  • 公司网站建设的系统功能需求北京seo优化分析
  • 山西网站建设设计湖南正规seo优化
  • 网站模版属于侵权吗谷歌地图下载
  • 怎么给网站做seo广告信息发布平台
  • 排名优化推广广州seo招聘网
  • 网站营销推广怎么做网络营销推广广州做seo整站优化公司
  • 手机网站推广怎么做短视频seo排名
  • 专业做网站有哪些关键词录入榜
  • 有优惠券网站 怎么做代理网站怎么推广出去
  • 做时时彩网站被抓网络营销运营
  • 清溪网站建设北京seo实战培训班
  • 东莞销售网站公司哪家好关键词优化seo
  • 中国铁建网站培训体系
  • 近期网络舆情事件热点分析深圳搜索排名优化
  • 移动网站建设厂家seo教学网seo
  • 技术支持 网站建设怎么创建网站免费建立个人网站
  • 靠谱企业邮箱seo优化培训多少钱
  • 做电影网站涉及的侵权问题网络营销师报名官网
  • 自己怎样做网站郑州网络推广代理
  • 仿京东网站模板北京seo关键词
  • 在线做logo的网站百度竞价托管
  • 如何在网站做旅游产品百度关键词搜索推广
  • 企业网站欣赏郑州企业形象设计360推广登录平台
  • 建设沙滩车官方网站百度帐号登录个人中心
  • 强的网站建设公司windows优化大师提供的