- 921. Minimum Add to Make Parentheses Valid 使括号有效的最少添加
- 915. Partition Array into Disjoint Intervals 分割数组
- 932. Beautiful Array 漂亮数组
- 940. Distinct Subsequences II 不同的子序列 II
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
**数据类型:**HBase不存在数据类型,唯一的数据类型就是字节
**NameSpace:**命名空间是关系数据库中的概念,实际是表的逻辑分组。HBase有两个特殊的命名空间,default和hbase。
Table:
Row key | Time Stamp | Column Family1 | Column Family2 | Column Family3 |
---|---|---|---|---|
1 | t6 | CF2:q1=val1 | CF3:q3=val3 | |
2 | t3 | CF1:q2=val3 | ||
t2 | CF2:q3=val2 |
每一行都有相同的列簇,列簇包含许多列与列的值,每个列簇都有一些存储属性可配置。
例如:可使用存储、压缩类型、存储版本号。
将功能属性相近的放在同一个列簇,而同一个列簇的列会存储在同一个Store中。
列簇一般在创建表的时候就声明,一般不要超过三个。
列簇由多个列组成,表由多个列簇组成。
HBase中每个cell存储着同一份数据的不同版本。
版本通过时间戳来索引:
时间戳的类型是64位整型
时间戳精确到毫秒,不自行设置默认为系统当前时间
若应用程序想要避免版本冲突,就需要自己生成具有唯一性的时间戳
每个cell中不同版本的数据按照时间倒序排序,最新的排在最前
查询时不指定时间戳,则默认显示最新数据
为了避免数据存在过多版本难以管理,采用保存最后n个版本或保存最后一段时间内的版本的方式。
scp hbase压缩包 用户@机器IP:/上传/目录
tar -xzvf hbase压缩包 -C /解压/目录
修改hbase-env.sh:
cd hbase-2.4.13/conf/
vim hbase-env.sh
export JAVA_HOME=/JDK安装路径
export HBASE_MANAGES_ZK=false
修改hbase-site.xml:
vim hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.19.5:8020/hbase</value>
</property>
<!--false单机模式、true分布式-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--zookeeper位置-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.19.5:2181</value>
</property>
<!--zookeeper快照存储位置-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/sjj/install/apache-zookeeper-3.7.1-bin/data</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
vim /etc/profile
# 配置HBase环境
export HBASE_HOME=/home/sjj/install/hbase-2.4.13
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin
source /etc/profile
cd hbase-2.4.13/lib/client-facing-thirdparty
cp htrace-core4-4.2.0-incubating.jar ../lib
cd hbase-2.4.13/conf
vim regionservers
你的节点机器
scp -r hbase包 用户名@机器IP:/分发/目的地
分发完之后记得还要为分发的机器设置环境变量
# 注意要先启动zookeeper
start-dfs.sh
start-hbase.sh
hbase shell
发出时Delete对于 hbase,我知道它不会立即删除数据。但是什么时候删除数据,我的意思是,物理上? 最佳答案 当您向 HBase 写入内容时,它会存储在内存存储 (RAM) 中,然后再写入磁盘。
同一行的列族属于同一个 RegionServer。 那么,这里的问题是一个 RegionServer 会在不同的机器上存储不同的列族吗? 最佳答案 不一定,但在某些时候它会。这是基本 HBase 架构
如果我想插入表格: row | fam:qualifier | timestamp | value 1 | foo:bar | 12345 | 2 1 | foo:bar | 12346 | 3 1
有时我想退出我在 HBase shell 中运行的命令,例如扫描操作通常需要太多时间。 所以我想停止运行这个命令,但我不想退出 HBase shell。 我常用的停止运行命令的方式,我使用了Ctrl+
有没有办法设置 Hbase 以便我们可以在同一个集群中创建多个数据库? 最佳答案 只是为了刷新主题:http://hbase.apache.org/book.html#namespace 5.3.1.
怎么看version的 hbase我在用? 你能下命令吗? 最佳答案 hbase version命令行界面中的命令给出了 version的 hbase正在使用中。 以下是来自 Cloudera 的两个
高级问题: HBase 是否对所有分布(因此不是实现的工件)通用的每行施加了最大大小,无论是在 方面吗?字节存储 或在 方面细胞数 ? 如果是这样: 限制是什么? 极限存在的原因是什么? 限制在哪里记
假设,假设我在数据仓库设置中有一个星型模式。 有一个非常非常长的事实表(想想几十亿到几万亿行)和几个低基数维度表(想想 100 个维度表)。每个事实表外键 指向一个维度表的主键是位图索引的。每个维度表
版本:Hadoop: 2.0.0-cdh4.3.1 HBase: 0.94.6-cdh4.3.1 我正在运行 cloudera quick start vm,这是我的小型远程 HBase Java 客
我正在尝试以完全分布式模式配置 HBase。 (使用 Ubuntu 12.04,Apache Hadoop 2.2(以伪模式运行,HBase 版本 0.98) 以下是我的 bashrc 设置: exp
我想知道如何正确配置 hbase.zookeeper.quorum 以将 zookeeper 实例指向集群模式。 最佳答案 hbase.zookeeper.quorum 属性是运行 ZooKeeper
我想知道如何正确配置 hbase.zookeeper.quorum 以将 zookeeper 实例指向集群模式。 最佳答案 hbase.zookeeper.quorum 属性是运行 ZooKeeper
我正在尝试对位于 Hbase 中的两个表进行映射连接。我的目的是在hashmap中保留小表的记录并与大表进行比较,一旦匹配,再次将记录写入hbase中的表中。我使用 Mapper 和 Reducer
我正在尝试编写一个程序来连接到 HBase。但是当我执行以下命令时HBaseConfiguration.create();我收到以下错误:. "hbase-default.xml 文件似乎是旧版本的
基于HBase documentation ,再次遵循 Google BigTable 论文的引用,据说这些行是按行键的字典顺序存储的。 很明显,当我们在 rowkey 中有一个字符串或者如果我们将一
我有一个 hbase 表,其中的行键如 row1、row2、row3 .... 和 rowN,我想要的是获取行键从 row100 到 row200 的行,如何编写查询子句或将 hbase 表设计为让查
我正在尝试创建命名空间,但出现类似下面给出的错误 hbase(main):031:0> create namespace 'Aniruddha'
我发现为以下要求建模 HBase 表有困难。 我有一个表“商店”,它存储了商店的详细信息(必胜客)。 我有一个表格“订单”,其中包含交易摘要(总交易金额等...)。 我有另一个表“Order_Item
谁能告诉我如果在不首先禁用表的情况下使用“alter”命令可能影响表结构的可能影响? 据我所知,禁用表意味着关闭与表的所有连接。如果我在不禁用表的情况下使用 alter,可能会发生什么异常情况? 我正
我无法将表从 HBase 导出到 HDFS。下面是错误跟踪。它是相当大的尺寸。还有其他方法可以导出吗? 我使用以下命令导出。我增加了 rpc 超时,但工作仍然失败。 sudo -u hdfs hbas
我是一名优秀的程序员,十分优秀!