美文网首页
HBase学习笔记一:伪分布式搭建及基本操作

HBase学习笔记一:伪分布式搭建及基本操作

作者: 开发者连小超 | 来源:发表于2019-12-09 23:06 被阅读0次

基础知识

HBase架构.jpg
关于Hbase的架构及基础知识可阅读此两篇文章:
(1)HBase架构一张图看懂 https://blog.csdn.net/sinat_26811377/article/details/102649301
(2)深入HBase架构解析(一)http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html

服务器准备

本次尝试搭建伪分布式的HBase,即在单台机器上安装,使用自带的单节点zookeeper,而非像先前搭建的分布式zookeeper。因之前在node02/node03/node04上安装了分布式zookeeper,所以本次实验在node01上进行。

解压安装

tar xf hbase-0.98.12.1-hadoop2-bin.tar.gz -C /opt/sxt/
mv hbase-0.98.12.1-hadoop2/ hbase

配置环境变量

vi /etc/profile
export HBASE_HOME=/opt/sxt/hbase
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin

. /etc/profile

修改配置 hbase-env.sh

cd /opt/sxt/hbase/conf/
vi hbase-env.sh
#修改
export JAVA_HOME=/usr/java/jdk1.7.0_67

修改配置 hbase-site.xml

<property>
  <name>hbase.rootdir</name>
  <value>file:///home/testuser/hbase</value>
</property>
<property>
  <name>hbase.zookeeper.property.dataDir</name>
  <value>/home/testuser/zookeeper</value>
</property>

启动

start-hbase.sh

浏览器查看:http://node01:60010

基础命语法及文件结构测试(按顺序操作体会)

[root@node01 tbl] hbase shell
hbase(main):015:0> create 'tbl','cf'
hbase(main):015:0> list
#此时到default目录下可看到tbl文件夹
[root@node01 tbl] cd /home/testuser/hbase/data/default

[root@node01 tbl] cd tbl/
[root@node01 tbl] ls
fae99313cd7fa906fd08ece49a11ed0b
#上面这个就是region的名称
[root@node01 tbl] cd fae99313cd7fa906fd08ece49a11ed0b/
[root@node01 fae99313cd7fa906fd08ece49a11ed0b] ls
cf
#进入后可发现列簇名称

[root@node01 fae99313cd7fa906fd08ece49a11ed0b] cd cf/
[root@node01 cf] ls
#暂时cf里是空

#此时往表里新增数据
hbase(main):015:0> put 'tbl','2','cf:name','zhangsanfeng'
#查一条数据
hbase(main):015:0> get 'tbl','2'
#遍历全表
hbase(main):015:0> scan 'tbl'

#注意此时上面的cf文件夹里还没有东西,是因为刚才的写入是写在memstore里,
#并没有溢写,所以还没到磁盘,执行 flush 'tbl'手动溢写,此时cf下就有文件了

#看一下文件里内容,是一些元数据信息
[root@node01 cf] hbase hfile - p -m -f 5253005d62bf4c4ba698f5e933eae149 

#新插入一条
hbase(main):015:0>  put 'tbl','1','cf:age','12'

#此时scan发现rowkey是1的在前面 (字典序排序)
hbase(main):016:0> scan 'tbl'
ROW                             COLUMN+CELL                                                                             
 1                              column=cf:age, timestamp=1576013612603, value=12                                        
 2                              column=cf:name, timestamp=1576012794535, value=zhangsanfeng                             
2 row(s) in 0.0340 seconds

#此时再去溢写,发现cf里会有两个文件
hbase(main):017:0> flush 'tbl'


#再去插入一条数据,此时rowkey=1会更新
hbase(main):017:0> put 'tbl','2','cf:name','lisi'
hbase(main):019:0> scan 'tbl'
ROW                             COLUMN+CELL                                                                             
 1                              column=cf:age, timestamp=1576013612603, value=12                                        
 2                              column=cf:name, timestamp=1576013809407, value=lisi                                     
2 row(s) in 0.0270 seconds

#此时cf文件夹下还是原来的两个region,其中一个还是记录的zhangsanfeng(被打上失效标记)
#此时再溢写,发现cf里region合并为一个了,这时候zhangsanfeng就被物理删除了。

[root@node01 hbase] cd /home/testuser/hbase
[root@node01 hbase] ls
#可看到archive文件夹,逐步进入可看到上述过程中生产的三个region
#只不过最后合并为cf里的一个了
#如果再有新的region,又会和3->1那个合并,一直合并到文件比较大

#删除数据
hbase(main):021:0> delete 'tbl','2','cf:name'

#不经过事务清空
hbase(main):024:0> truncate 'tbl

#删除表(需要先禁用)
disable 'tbl'
drop 'tbl'

#查看库下面有哪些表
hbase(main):001:0> list_namespace_tables 'hbase'
hbase(main):002:0> scan 'hbase:meta'

相关文章

网友评论

      本文标题:HBase学习笔记一:伪分布式搭建及基本操作

      本文链接:https://www.haomeiwen.com/subject/eimigctx.html