我有几个关于hdfs联盟的基本问题。是否可以从集群联合中的另一个名称节点读取在一个名称节点上创建的文件?当前版本的 Hadoop 是否支持此功能?
Hadoop
mmvthczy1#
让我解释一下名称节点联合是如何按照apache网站工作的名称节点:为了横向扩展名称服务,联合使用多个独立的名称节点/名称空间。namenodes是联合的;namenodes是独立的,不需要相互协调。datanodes被所有namenodes用作块的公共存储。每个datanode向集群中的所有namenodes注册。数据节点定期发送心跳和块报告。它们还处理来自namenodes的命令。总之,名称节点是互斥的,不需要它们之间的通信。数据节点可以跨多个名称节点共享。回答你的问题是不可能的。如果数据写入一个名称节点,则只需联系该名称节点即可获取数据。你不能问别的名字。关于您对数据复制的最新评论,当复制系数为3时,hdfs的放置策略是将一个副本放在本地机架中的一个节点上,另一个放在本地机架中的另一个节点上,最后一个放在不同机架中的另一个节点上-根据官方文档。如果本地rac出现故障,您可以使用此功能并从其他数据中心获取数据。但请注意,您是从一个联邦namenode读取数据,而不是从另一个联邦namenode读取数据。一个联合namenode无法从其他联合namenode读取数据。但它们可以为读写操作共享同一组数据节点。编辑:在每个联合体中,您可以对namenode进行自动故障转移。如果活动namenode在联合中失败,备用namenode将接管活动namenode的职责。请参阅下面的se帖子以了解更多详细信息。hadoop namenode故障转移过程是如何工作的?
csga3l582#
通过扩展blockplacementpolicy接口并将类指向hadoop配置文件中的dfs.block.replicator.classname属性,可以修改hadoop中块复制策略的默认行为。请研究区块放置策略以获得更好的图像。实际上,您可以修改块在群集中的放置位置。
mwngjboj3#
不,那是不可能的。
3条答案
按热度按时间mmvthczy1#
让我解释一下名称节点联合是如何按照apache网站工作的
名称节点:
为了横向扩展名称服务,联合使用多个独立的名称节点/名称空间。
namenodes是联合的;namenodes是独立的,不需要相互协调。
datanodes被所有namenodes用作块的公共存储。每个datanode向集群中的所有namenodes注册。数据节点定期发送心跳和块报告。它们还处理来自namenodes的命令。
总之,
名称节点是互斥的,不需要它们之间的通信。数据节点可以跨多个名称节点共享。
回答你的问题是不可能的。如果数据写入一个名称节点,则只需联系该名称节点即可获取数据。你不能问别的名字。
关于您对数据复制的最新评论,
当复制系数为3时,hdfs的放置策略是将一个副本放在本地机架中的一个节点上,另一个放在本地机架中的另一个节点上,最后一个放在不同机架中的另一个节点上-根据官方文档。
如果本地rac出现故障,您可以使用此功能并从其他数据中心获取数据。但请注意,您是从一个联邦namenode读取数据,而不是从另一个联邦namenode读取数据。
一个联合namenode无法从其他联合namenode读取数据。但它们可以为读写操作共享同一组数据节点。
编辑:
在每个联合体中,您可以对namenode进行自动故障转移。如果活动namenode在联合中失败,备用namenode将接管活动namenode的职责。
请参阅下面的se帖子以了解更多详细信息。
hadoop namenode故障转移过程是如何工作的?
csga3l582#
通过扩展blockplacementpolicy接口并将类指向hadoop配置文件中的dfs.block.replicator.classname属性,可以修改hadoop中块复制策略的默认行为。
请研究区块放置策略以获得更好的图像。
实际上,您可以修改块在群集中的放置位置。
mwngjboj3#
不,那是不可能的。