国外服务器做视频网站,网站结构合理,网站审核时间,企业宣传片广告公司HBase介绍
Apache的三篇论文#xff0c;GFS谷歌文件系统-HDFS#xff1b;MR - MR ; BigTable -HBase;HBase是hadoop数据库#xff0c;一种分布式、可扩展的大数据NoSQL数据库之一。适合对于大量数据进行随机、实时的读写操作
HBase数据模型
Bigtable是一个稀…HBase介绍
Apache的三篇论文GFS谷歌文件系统-HDFSMR - MR ; BigTable -HBase;HBase是hadoop数据库一种分布式、可扩展的大数据NoSQL数据库之一。适合对于大量数据进行随机、实时的读写操作
HBase数据模型
Bigtable是一个稀疏的如果某个列没有值那么这个列直接不维护传统的关系型数据库会维护一个null值、分布式的、持久的多维维度信息主要保存在key中value一般是单纯的值排序map改映射由行键、列键和时间戳索引组成映射的每个值都是一个字节数组。用户将数据行存储在带标签的表中数据行具有可排序的键和任意数量的列。数据模型的关键在于稀疏、分布式、多维、排序的映射
HBase逻辑结构 row_key按照字典序排序数据存储整体有序存储的数据都是字节数据所有列必须在列族的内部没有单独的列没有数据的部分对于该行数据来说直接没有该列也不存储null值。 划分列族的好处是为了方便存储将同一列族的数据存储到一起每个region每个列族划分的区域称为一个store
HBase物理存储结构 同一row_key,同一列族同一列的数据根据时间戳排序根据时间戳来区分数据的版本一般保留最新版本
数据模型术语
NameSpace命名空间 hbasedefault Table: 定义表时只需要声明列族即可具体的列可以动态、按需指定Row: 由一个RowKey和多个Column组成数据是按照rowkey的字典序存储的查询数据只能根据rowkey检索所以rowkey的设计十分重要。Column: 列族列Time Stamp 用于标识数据的不同版本Cell rowkey column family column qualifier timestamp 唯一确定的单元
HBase基础架构 Master master通过监控region server是否正常运行master负责所有元数据的变化监控执行region的故障转移和拆分线程 RegionServer 负责数据Cell的处理在执行区域的拆分和合并时由RegionServer来实际执行 HDFS 保证数据存储的可靠
HBase的安装
配置环境变量vim hbase-env.sh, 126行改为用外置的zookeeper。vim hbase-site.xml文件改为分布式集群告诉集群zookeeper的地址数据存储位置wal写前日志端口号默认为16010
时间同步问题
如果RegionServer和Master的时间超过30s就会触发ClockOutOfSyncException
HBase Shell基本操作
hbase shell, 启动一个hbase shellhelp 命令名/ 组名 查看所有命令ddl命令 查看所有的表list建表create ‘mydb:t1’, {name‘cf1’, version3} 简写create t2, ‘col1’, ‘col2’ 查看表的详情 describe ‘mydb:t1’ , 可以简写为desc修改表 alter ‘t2’ , {name‘cf1’,version3}, ‘cf4’alter ‘t2’ ‘delete’ ‘cf2’ 删除表 drop ‘t2’,删除前需要先禁用表disable ‘t2’, 之后再删除是否存在exists ‘t1’查看表的region信息list_regions ‘t1’ namespace命令 查看所有的namespace: list_namespace查看指定namespace下面的表list_namespace_tables ‘hbase’; 里面有meta和namespace两张表创建一个数据库create_namespace ‘mydb’查看数据库详情descrbe_namespace ‘mydb’修改namespace: alter_namespace ‘mydb1’ , {method ‘set’, ‘author’‘wyh’}删除namespace属性: alter_namespace ‘mydb1’ ,{method‘unset’, name‘author’} dml命令(数据的增删改查 ) 插入数据put ‘t1’ ‘1001’, ‘cf1:name’, ‘zhangsan’查询数据get ‘t1’ ‘1001’扫描数据san ‘t1’ 扫描表中所有的数据修改数据: put ‘t1’ ‘1001’ ‘cf1:name’, ‘zhangxiaosan’删除数据delete ‘t1’ , ‘1001’, ‘cf1:name’; truncate命令是直接删除文件不是打标记