Hbase-hadoop集成中datanode、regionserver的作用

2023-12-24

根据我的理解,行被插入到 HBase 表中,并作为区域存储在不同的区域服务器中。因此,区域服务器存储数据

类似地,就 Hadoop 而言,数据存储在 hadoop 集群中的数据节点中。

假设我在 Hadoop 1.1.1 之上配置了 HBase 0.90.6,如​​下所示

2 个节点 - 主节点和从节点

  1. Master node acts as,
    • Hadoop - Namenode、Secondary Namenode、作业跟踪器、数据节点、任务跟踪器
    • HBase - Master、RegionServer 和 Zookeeper。
  2. Slave node acts as,
    • Hadoop 数据节点和任务跟踪器
    • HBase 区域服务器

根据我的说法,如果表数据存储在区域服务器中;那么数据节点和区域服务器的作用是什么?


数据节点存储数据。区域服务器本质上缓冲 I/O 操作;数据永久存储在HDFS(即数据节点)上。我认为将区域服务器放在“主”节点上不是一个好主意。

以下是区域管理方式的简化图:

您有一个运行 HDFS(NameNode + DataNode)的集群,复制因子为 3(每个 HDFS 块被复制到 3 个不同的 DataNode)。

您在与 DataNode 相同的服务器上运行 RegionServer。当写请求到达 RegionServer 时,它首先将更改写入内存并提交日志;然后在某个时刻,它决定将更改写入 HDFS 上的永久存储。这就是数据局部性发挥作用的地方:由于您在同一服务器上运行 RegionServer 和 DataNode,因此文件的第一个 HDFS 块副本将写入同一服务器。另外两个副本将被写入其他 DataNode。因此,为该区域提供服务的 RegionServer 几乎总是可以访问数据的本地副本。

如果 RegionServer 崩溃或 RegionMaster 决定将区域重新分配给另一个 RegionServer(以保持集群平衡)怎么办?新的 RegionServer 将被迫首先执行远程读取,但一旦执行压缩(将更改日志合并到数据中) - 新的文件将由新的 RegionServer 写入 HDFS,并在 RegionServer 上创建本地副本(再次强调,因为 DataNode 和 RegionServer 运行在同一台服务器上)。

注意:如果 RegionServer 崩溃,之前分配给它的 Region 将被重新分配给多个 RegionServer。

好读物:

  • Tom White,《Hadoop,权威指南》对 HDFS 架构有很好的解释。不幸的是,我没有阅读原始的 Google GFS 论文,所以我无法判断它是否容易理解。

  • 谷歌大表 http://research.google.com/archive/bigtable-osdi06.pdf文章。 HBase 是 Google BigTable 的实现,我发现本文中的架构描述是最容易理解的。

以下是 Google Bigtable 和 HBase 实现之间的命名差异(来自 Lars George,“HBase,权威指南”):

  • HBase-Bigtable
  • 地区 - 平板电脑
  • RegionServer - 平板电脑服务器
  • 冲洗 - 轻微压实
  • 次要压缩 - 合并压缩
  • 主要压实 - 主要压实
  • 预写日志-提交日志
  • HDFS-GFS
  • Hadoop MapReduce - MapReduce
  • MemStore-内存表
  • HFile - SSTable
  • 动物园管理员 - 胖乎乎的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hbase-hadoop集成中datanode、regionserver的作用 的相关文章

  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • hadoop中reducer的数量

    我正在学习hadoop 我发现减速器的数量非常令人困惑 1 reducer的数量与partition的数量相同 2 reducer 的数量是 0 95 或 1 75 乘以 节点数 每个节点的最大容器数 3 减速机数量设定为mapred re
  • 如何通过sparkSession向worker提交多个jar?

    我使用的是火花2 2 0 下面是我在 Spark 上使用的 java 代码片段 SparkSession spark SparkSession builder appName MySQL Connection master spark ip
  • 带有安全 Kafka 抛出的 Spark 结构化流:无权访问组异常

    为了在我的项目中使用结构化流 我正在 hortonworks 2 6 3 环境上测试 Spark 2 2 0 和 Kafka 0 10 1 与 Kerberos 的集成 我正在运行下面的示例代码来检查集成 我能够在 Spark 本地模式下的
  • Hive - 线程安全的自动递增序列号生成

    我遇到一种情况 需要将记录插入到特定的 Hive 表中 其中一列需要是自动递增的序列号 即在任何时间点都必须严格遵循 max value 1 规则 记录从许多并行的 Hive 作业插入到这个特定的表中 这些作业每天 每周 每月批量运行 现在
  • 伪分布式模式下的 Hadoop。连接被拒绝

    P S 请不要将此标记为重复 Hi 我一直在尝试以伪分布式模式设置和运行 Hadoop 当我运行 start all sh 脚本时 我得到以下输出 starting namenode logging to home raveesh Hado
  • 在映射器的单个输出上运行多个减速器

    我正在使用地图缩减实现左连接功能 左侧有大约 6 亿条记录 右侧有大约 2300 万条记录 在映射器中 我使用左连接条件中使用的列来创建键 并将键值输出从映射器传递到减速器 我遇到性能问题 因为两个表中的值数量都很高的映射器键很少 例如分别
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • 更改 Spark Streaming 中的输出文件名

    我正在运行一个 Spark 作业 就逻辑而言 它的性能非常好 但是 当我使用 saveAsTextFile 将文件保存在 s3 存储桶中时 输出文件的名称格式为 part 00000 part 00001 等 有没有办法更改输出文件名 谢谢
  • 无法在 Hadoop Map-Reduce 作业中加载 OpenNLP 句子模型

    我正在尝试将 OpenNLP 集成到 Hadoop 上的 Map Reduce 作业中 从一些基本的句子分割开始 在地图函数中 运行以下代码 public AnalysisFile analyze String content InputS
  • 如何直接将一个mapper-reducer的输出发送到另一个mapper-reducer而不将输出保存到hdfs中

    问题最终解决检查底部的我的解决方案 最近 我尝试运行 Mahout in Action 的第 6 章 列表 6 1 6 4 中的推荐示例 但我遇到了一个问题 我用谷歌搜索但找不到解决方案 问题是 我有一对映射器减速器 public fina
  • Sqoop 导出分区的 Hive 表

    我在尝试导出分区的 Hive 表时遇到了一些问题 这是否完全受支持 我尝试用谷歌搜索并找到一张 JIRA 票证 sqoop export connect jdbc mysql localhost testdb table sales exp
  • Hadoop 上的 Sqoop:NoSuchMethodError:com.google.common.base.Stopwatch.createStarted() [重复]

    这个问题在这里已经有答案了 我在 Google Cloud DataProc 上的 hadoop 上运行 sqoop 以通过 Cloud SQL 代理访问 postgresql 但遇到 Java 依赖项错误 INFO First Cloud
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • 无法通过 Hbase 客户端从 Titan 连接到 Google Bigtable

    我正在尝试使用 Hadoop 2 HBase 1 0 2 客户端 连接到 Titan 1 0 0 可在https github com thinkaurelius titan wiki Downloads https github com
  • 在蜂巢中出现错误

    当我连接到 ireport 时 如果说在 hive shell 中显示表 则会出现此错误 元数据错误 java lang RuntimeException 无法实例化 org apache hadoop hive metastore Hiv
  • Hadoop-reducer 如何获取数据?

    据我所知 映射器为每个减速器生成 1 个分区 减速器如何知道要复制哪个分区 假设有 2 个节点运行用于字数统计程序的映射器 并且配置了 2 个缩减器 如果每个映射节点生成 2 个分区 并且两个节点中的分区都可能包含相同的单词作为键 那么减速
  • Python 包安装:pip 与 yum,还是两者一起安装?

    我刚刚开始管理 Hadoop 集群 我们使用 Bright Cluster Manager 直至操作系统级别 CentOS 7 1 然后使用 Ambari 以及适用于 Hadoop 的 Hortonworks HDP 2 3 我不断收到安装
  • 为什么我们需要将外部表移动到托管 Hive 表?

    我是 Hadoop 新手 正在学习 Hive 在 Hadoop 权威指南第 3 版中 第 12 页 第428章 最后一段 我不明白下面关于 HIVE 中外部表的段落 一种常见的模式是使用外部表访问存储在 HDFS 中的初始数据集 由另一个进

随机推荐