Hadoop dfs 复制
Posted
技术标签:
【中文标题】Hadoop dfs 复制【英文标题】:Hadoop dfs replicate 【发布时间】:2012-10-11 08:34:51 【问题描述】:对不起,伙计们,只是一个简单的问题,但我在谷歌上找不到确切的问题。 关于 dfs.replication 是什么意思的问题?如果我在hdfs中创建了一个名为filmdata.txt的文件,如果我设置dfs.replication = 1,那么它是否完全是一个文件(一个filmdata.txt)?或者除了主文件(filmdata.txt)之外,hadoop将创建另一个复制文件. 简而言之:如果设置dfs.replication=1,一共有一个filmdata.txt,还是两个filmdata.txt? 提前致谢
【问题讨论】:
【参考方案1】:文件系统中的文件总数将是 dfs.replication 因子中指定的。因此,如果设置 dfs.replication=1,那么文件系统中将只有一个文件副本。
检查Apache Documentation 以获取其他配置参数。
【讨论】:
【参考方案2】:为确保数据的高可用性,Hadoop 会复制数据。
当我们将文件存储到 HDFS 中时,hadoop 框架将文件拆分为一组块(64 MB 或 128 MB),然后这些块将在集群节点之间复制。配置 dfs.replication 是指定多少个需要复制。
dfs.replication 的默认值为 3,但这取决于您的集群设置。
希望这会有所帮助。
【讨论】:
【参考方案3】:Praveen 提供的链接现已损坏。 这是描述参数dfs.replication的更新链接。
请参阅Hadoop Cluster Setup。有关配置参数的更多信息。
您可能需要注意,文件可以跨越多个块,并且每个块将被复制 dfs.replication 中指定的次数(默认值为 3)。此类块的大小在参数 dfs.block.size 中指定。
【讨论】:
【参考方案4】:在 HDFS 框架中,我们使用商品机器来存储数据,这些商品机器不是高端机器,如具有高 RAM 的服务器,可能会丢失数据节点(d1,d2,d3)或块(b1,b2,b3),因此HDFS框架将每个数据块(64MB,128MB)分成三个复制(默认情况下),每个块将存储在单独的数据节点(d1,d2, d3)。现在考虑块(b1)在数据节点(d1)中损坏,块(b1)的副本在数据节点(d2)和数据节点(d3)中也可用,以便客户端可以请求数据节点(d2) ) 来处理 block(b1) 数据并提供结果,就像 data-node(d2) 失败一样,客户端可以请求 data-node(d3) 来处理 block(b1) 数据。这叫做-dfs.replication mean。
希望你能明白一点。
【讨论】:
以上是关于Hadoop dfs 复制的主要内容,如果未能解决你的问题,请参考以下文章
hadoop源代码解读namenode高可靠:HA;web方式查看namenode下信息;dfs/data决定datanode存储位置