- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
根据我的理解,行被插入到 HBase 表中,并作为区域存储在不同的区域服务器中。因此,区域服务器存储数据
与 Hadoop 类似,数据存储在 hadoop 集群中的数据节点中。
假设我在 Hadoop 1.1.1 之上配置了 HBase 0.90.6,如下所示
2 个节点 - 主从
根据我的说法,如果表数据存储在区域服务器中;那么数据节点和区域服务器的作用是什么?
最佳答案
数据节点存储数据。区域服务器本质上是缓冲 I/O 操作;数据永久存储在HDFS(即数据节点)上。我不认为将区域服务器放在“主”节点上是个好主意。
这是区域管理方式的简化图:
你有一个运行 HDFS(NameNode + DataNodes)的集群,复制因子为 3(每个 HDFS block 被复制到 3 个不同的 DataNodes)。
您在与 DataNode 相同的服务器上运行 RegionServers。当写入请求到达 RegionServer 时,它首先将更改写入内存和提交日志;然后在某个时候它决定是时候将更改写入 HDFS 上的永久存储。这是数据局部性发挥作用的地方:由于您在同一台服务器上运行 RegionServer 和 DataNode,因此文件的第一个 HDFS block 副本将写入同一台服务器。另外两个副本将写入其他 DataNode。因此,为该区域提供服务的 RegionServer 几乎总是可以访问本地数据副本。
如果 RegionServer 崩溃或 RegionMaster 决定将区域重新分配给另一个 RegionServer(以保持集群平衡)怎么办?新的 RegionServer 将被迫首先执行远程读取,但一旦执行压缩(将更改日志合并到数据中) - 新文件将由新的 RegionServer 写入 HDFS,并在 RegionServer 上创建本地副本(同样,因为 DataNode 和 RegionServer 运行在同一台服务器上)。
注意:如果 RegionServer 崩溃,之前分配给它的区域将被重新分配给多个 RegionServer。
好的读物:
Tom White,“Hadoop,权威指南”对 HDFS 架构有很好的解释。不幸的是,我没有阅读原始的 Google GFS 论文,所以我不知道它是否容易理解。
Google BigTable文章。 HBase 是 Google BigTable 的实现,我发现本文中的架构描述是最容易理解的。
以下是 Google Bigtable 和 HBase 实现之间的命名差异(来自 Lars George,“HBase,权威指南”):
关于hadoop - Hbase-hadoop集成中datanode、regionserver的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13741946/
发出时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
我是一名优秀的程序员,十分优秀!