HBase 是一个 NoSQL 数据库
什么是 NoSQL 数据库?
基于 Key-value 来保存数据
NoSQL 数据库不支持事物
常见的 NoSQL 数据库:
HBase: 基于 HDFS ,面向列的数据库
表 ----> 目录
数据 ----> 文件
Redis: 基于内存的一个 NoSQL 数据库, 支持持久化(RDB,AOF)
前身: MemCached 不支持持久化
MongoDB: 文档型的 NoSQL 数据库(BSON文档,JSON的二进制)
Cassandra: 面向列的 NoSQL 数据库
HBase 的表结构
article(表)
rowkey | 内容 | 作者 | 评论 | ||
标题 | 正文 | 用户 | 内容 | ||
文章1 | 先有鸡还是先有蛋 | …… | 某人 | 喷手 | 鸡都不造你是肿么造的 |
文章…… | …… | …… | …… | …… | …… |
体系结构
HBase 环境部署:
本地模式 ---1台主机: 不需要 HDFS ,直接把数据存在操作系统上
1. 安装 JAVA 环境,修改环境变量
2. 安装 HBase
伪分布模式---1台主机: 需要HDFS 支持,数据直接存在 HDFS 上
1. 安装 JAVA 环境,修改环境变量
2. 部署 HDFS 伪分布式
3. 部署 HBase 伪分布式
全分布模式---3台主机: 需要HDFS 支持,数据直接存在 HDFS 上
1. 安装 JAVA 环境,修改环境变量
2. 部署 HDFS 全分布式
3. 部署 HBase 全分布式
HA 全分布模式---3台主机
环境部署前期准备:
设置环境变量 vi ~/.bash_profile
HBASE_HOME=/root/training/hbase-1.3.1
export HBASE_HOME
PATH=$HBASE_HOME/bin:$PATH
export PATH
本地模式:
hbase-env.sh
28 export JAVA_HOME=/root/training/jdk1.8.0_144
hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>file:///root/training/hbase-1.3.1/data</value>
</property>
启动 HBase: start-hbase.sh
伪分布模式
hbase-env.sh
129 export HBASE_MANAGES_ZK=true
hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.157.11:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.157.11</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
regionservers
192.168.157.11
启动 HBase: start-hbase.sh
全分布模式
hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.157.12:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.157.12</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>
regionservers
192.168.157.13
192.168.157.14
scp -r hbase-1.3.1/ root@bigdata13:/root/training
scp -r hbase-1.3.1/ root@bigdata14:/root/training
启动 HBase: start-hbase.sh
HBase的HA
不需要额外配置,只用在其中一个从节点上单点启动Hmaster
启动 HBase: start-hbase.sh
bigdata13:hbase-daemon.sh start master
HBase Web Console网页端口:16010
HBase 命令行操作:
进入命令行:hbase shell
查看:
查看表:list
查询数据:
scan 相当于 select * from 表名
get 相当于 select * from 表名 where rowkey=?
插入数据:
put '表', ' 行', '列族:列名', '值'
put 'students', 'stu1', 'info:name', 'Tom'
清空表中的数据:
truncate '表名' ---------> 其实质就是先删除表,然后再创建
truncate 'students'
删除表:
disable '表名'
drop '表名'
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。