• 大数据的那些面试题及答案(二)HBase ---阿善有用


     

    什么是Hbase

    HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来 存储非结构化和半结构化的松散数据

    Hbase的本质

    面向列的分布式数据库

    hbase来源于谷歌的哪篇论文

    BigTable

    Hbase端口号

    16010

    Hbase的数据的维度及代表的意思

    hbase可以视为一个“四维坐标”数据 ,维度分别代表[行键, 列族, 列限定符, 时间戳]

    rowkey设计原则

    唯一原则:必须在设计上保证其唯一性,Rowkey是按照字典顺序存储的,所以设计Rowkey时,要充分利用这一特点,将往常一起读取的数据存储到一块
    长度原则:越短越好,最大长度为64Kb,太长的影响有两点
    (1)极大影响了HFile的存储效率
    (2)缓存memstore不能得到有效利用,缓存不能存放太多的信息,造成检索效率的降低
    散列原则: 由于region存储是按行键存储的,如果行键的值都是类似的那就容易导致数据都堆在一个Rowkey上产生热点问题。所以可以通过一下方法让Rowkey尽量散列化
    (1)加盐在Rowkey前生成随机数
    (2)反转把最没有用的放在前面以增加随机性。

    HBASE原理机制

    (1)HBASE是一款应用在大数据情境下的数据库。
    (2)HBASE是分布式的利用hdfs作为存储系统的面向列的数据库
    (3)HBASE的集群中主要由Master和Regionserver以及zookeeper组成。Master为Regionserver分配region
    (4)HBASE使用Memstore和storeFile存储对表的更新,用户写入的数据首先会放入Memstore,当Memstore满了以后会flush成一个storeFile(底层实现是HFile)
    (5)HBASE使用和bigTable非常相同的数据模型。用户存储数据行在一个表里,在HBASE中数据按主键排序,同时表按主键划分多个Region。

    Hbase怎么更新数据

    通过=追版本形式执行更新操作。
    并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)

    HBase系统架构由什么组成

    客户端、Zookeeper服务器 、Master(一个)、Region服务器(多个)

    HBase中最核心的模块是

    Region服务器

    HBase最小存储数据的单元是?HBase在hdfs上存储的形式是?

    HFile

    HBase的相关操作命令(对表、对数据)

    分隔 用‘ ’注明
    对表

     (1)创建表 create
      语句:create 't1','f1' 		 ti为表名,f1为列族
     (2)修改表 alter
     语句:alter 't1','f2' 		增加一个列族
     (3)删除表 drop
     语句:diasble 't1' 		drop 't1'  删除表时分两步,先disable再drop
     (4)查看表的结构  describe
     语句:describe 't1'
     (5)查询表中的数据行数 count
     count 't1', {INTERVAL => 100, CACHE => 500}		
     语句:查询表t1中的行数,每100条显示一次,缓存区为500
    (6)扫描表 scan
      语句:scan 't1',{LIMIT=>5}		扫描表t1的前5条数据
      语句:scan 't1',{STARTROW=>'2',STOPROW=>'4'}		扫描表t1的第2行到第4行
      语句: scan 'score',{COLUMNS=>'egrade:cet4',VERSIONS=>5} 		扫描表score的grade:cet4,版本号为5的信息
    
    •  

    对数据

    (1) 插入、添加、修改数据  put
     语句:put 't1','001','f1:col1','value01'		t1是表名,001是行键、f1是列族、col1是列、value01是值
     (2)查询、取出数据  get
     语句:get 't1','001', 'f1:col1‘
     (3)删除数据  delete
     语句:delete 't1','001','f1:col1'
     删除整行数据  deleteall
     语句:deleteall 't1','001'
     删除表中的所有数据 truncate
     语句:truncate 't1'
    

     

  • 相关阅读:
    2019-2020-1 20175315 20175322 20175334 实验五 通讯协议设计
    bfs思路总结
    蓝桥杯-带分数
    Passive WiFi Tracking
    openWRT刷机设置
    研究生若干事
    Dijkstra算法和Floyed算法
    最小生成树prim算法
    无穷大量0x3f3f3f3f
    杭电OJ题目分类
  • 原文地址:https://www.cnblogs.com/shan13936/p/13877875.html
Copyright © 2020-2023  润新知