很抱歉,我没有资源设置群集来测试它,我只是想知道:
我可以在hadoop数据节点机器以外的独立机器上部署hbase区域服务器吗?我想答案是肯定的,但我不确定。
在不同的机器上部署hbase区域服务器和hadoop数据节点是好还是坏?
将一些数据放入hbase时,这些数据最终存储在数据节点或区域服务器中?我猜它是数据节点,但是区域服务器中的StoreFile和HFile是不是存储数据的物理文件?
谢谢!
答案 0 :(得分:6)
如果您想获得不错的性能,RegionServers应始终与分布式群集中的DataNode一起运行。
非常糟糕,这将违反数据位置原则(如果您想了解更多关于数据位置的信息,请查看:http://www.larsgeorge.com/2010/05/hbase-file-locality-in-hdfs.html)
实际数据将存储在HDFS(DataNode)中,RegionServers负责服务和管理区域。
有关HBase架构的更多信息,请查看Lars博客上的这篇优秀帖子:http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html
BTW,只要你有一台具有不错RAM的PC,就可以设置一个带有虚拟机的演示集群。如果没有在开发环境中首先正确测试平台,请不要尝试设置生产环境。答案 1 :(得分:-1)
详细了解this answer:
- 如果你想要不错的性能,RegionServers应该总是在分布式集群中运行和 DataNodes。“
醇>
我不确定有人会如何将这个词与一起插入,所以让我们试着甚至更多精确:
因此,在所有Hadoop发行版(例如Cloudera,MAPR,Hortonworks等)中,一般的最佳实践是对于HBase,“RegionServers”与“DataNodeServers”“共存”。
这意味着构成HDFS集群的实际从属(datanode)服务器每个都运行HDFS数据服务守护程序(程序) 和他们也也在运行HBase区域服务守护程序(程序)!
这样我们就可以确保 locality - HDFS集群中所有单个节点上的并发处理和存储数据,否“ “从”存储“位置到”处理“位置的大数据巨大负载的运动。位置对于Hadoop集群的成功至关重要,因此HBase区域服务器(运行HBase守护程序的数据节点)必须还执行所有处理(放置/获取/扫描) 每个包含HFile的数据节点组成HRegions,组成构成HBases的HTable(Hadoop-dataBases)....
因此,服务器(Windows上的虚拟机或物理,Linux,...)可以同时运行多个守护进程,通常,它们会定期运行数十个守护进程。