HBase区域服务器和Hadoop数据节点应该在同一台机器上吗?

时间:2015-01-06 10:24:11

标签: hadoop hbase

很抱歉,我没有资源设置群集来测试它,我只是想知道:

  1. 我可以在hadoop数据节点机器以外的独立机器上部署hbase区域服务器吗?我想答案是肯定的,但我不确定。

  2. 在不同的机器上部署hbase区域服务器和hadoop数据节点是好还是坏?

  3. 将一些数据放入hbase时,这些数据最终存储在数据节点或区域服务器中?我猜它是数据节点,但是区域服务器中的StoreFile和HFile是不是存储数据的物理文件?

  4. 谢谢!

2 个答案:

答案 0 :(得分:6)

  1. 如果您想获得不错的性能,RegionServers应始终与分布式群集中的DataNode一起运行。

  2. 非常糟糕,这将违反数据位置原则(如果您想了解更多关于数据位置的信息,请查看:http://www.larsgeorge.com/2010/05/hbase-file-locality-in-hdfs.html

  3. 实际数据将存储在HDFS(DataNode)中,RegionServers负责服务和管理区域。

  4. 有关HBase架构的更多信息,请查看Lars博客上的这篇优秀帖子:http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html

    BTW,只要你有一台具有不错RAM的PC,就可以设置一个带有虚拟机的演示集群。如果没有在开发环境中首先正确测试平台,请不要尝试设置生产环境。

答案 1 :(得分:-1)

详细了解this answer

  
      
  1. 如果你想要不错的性能,RegionServers应该总是在分布式集群中运行 DataNodes。“
  2.   

我不确定有人会如何将这个词与一起插入,所以让我们试着甚至更多精确:

  1. 什么使任何物理服务器成为“XYZ”服务器是因为它正在运行一个名为守护进程的程序(想想“永远运行的后台事件处理”程序);
  2. “文件”服务器的作用是运行文件服务守护程序;
  3. “网络”服务器的作用是运行网络服务守护程序; AND
  4. “数据节点”服务器的作用是运行HDFS数据服务守护程序;
  5. “区域”服务器的原因是它正在运行HBase区域 - 服务守护程序(程序);
  6. 因此,在所有Hadoop发行版(例如Cloudera,MAPR,Hortonworks等)中,一般的最佳实践是对于HBase,“RegionServers”与“DataNodeServers”“共存”。

    这意味着构成HDFS集群的实际从属(datanode)服务器每个都运行HDFS数据服务守护程序(程序) 他们也在运行HBase区域服务守护程序(程序)!

    这样我们就可以确保 locality - HDFS集群中所有单个节点上的并发处理和存储数据,“ “从”存储“位置到”处理“位置的大数据巨大负载的运动。位置对于Hadoop集群的成功至关重要,因此HBase区域服务器(运行HBase守护程序的数据节点)必须执行所有处理(放置/获取/扫描) 每个包含HFile的数据节点组成HRegions,组成构成HBases的HTable(Hadoop-dataBases)....

    因此,服务器(Windows上的虚拟机或物理,Linux,...)可以同时运行多个守护进程,通常,它们会定期运行数十个守护进程。