- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我已按照 Apache“单节点设置”说明在单节点上设置 dfs.replication
。
但是后来我按照“Cluster Setup”进行操作,但它没有提到这个属性,所以我不知道这是要在 Namenode 上设置的属性,还是也/仅在 Datanodes 上设置的属性..
我还读到在数据节点上的 dfs.datanode.data.dir
中设置多个(逗号分隔)路径将复制所有路径上的数据。
所以我的问题是:dfs.replication
将对哪个节点产生影响,如果 dfs.datanode.data.dir
的多个路径是设置,这些额外的独立复制是否仅针对每个数据节点,或者这些是否也以某种方式与 dfs.replication
因素相关联?
另外,当数据已经复制到其他节点时,在 Datanode 上使用这个额外的本地复制有什么用?
最佳答案
对了,首先让我们看看docs中对这些配置标志的描述:
配置选项: dfs.replication
Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time.
直觉上,这告诉我们可以使用此选项来指定要存储的数据 block 的复制因子。此属性预先配置为等于 3。
问:影响哪些节点?:
回答: 从存储的角度来看,它主要影响数据节点,因为它们是存储 block 的节点。当然,技术上,它确实会影响 Namenode,特别是 FsImage(文件系统镜像)文件,其中包含 Datanodes 的所有映射 - 存储 block 。
从“功能”的角度来看它主要影响名称节点,因为它们决定将这些 block 存储在何处。一般的 - 默认 - 策略是:
Hadoop’s default strategy is to place the first replica on the same node as the client (for clients running outside the cluster, a node is chosen at random, although the system tries not to pick nodes that are too full or too busy). The second replica is placed on a different rack from the first (off-rack), chosen at random. The third replica is placed on the same rack as the second, but on a different node chosen at random. Further replicas are placed on random nodes in the cluster, although the system tries to avoid placing too many replicas on the same rack.
在single-mode 和pseudo-distributed 模式下,此选项设置为 1 的原因很明显,你只有一台机器。在多机 - 集群 设置中,建议默认值为 3。
配置选项: datanode.data.dir
Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. Directories that do not exist are ignored.
问:这些额外的独立复制仅针对每个 Datanode,还是它们也以某种方式与 dfs.replication
>因素?
回答: 据我了解,指定 datanode.data.dir
并不意味着会有更多的 block 复制。它只是在运行数据节点实例的机器上指定目录,您要在其中存储 block 。
看看这个PDF on HDFS Design .这比我能给出的任何答案都要好,它应该可以帮助您更好地理解这些概念。
关于hadoop - "dfs.replication"和 "dfs.datanode.data.dir"配置如何在集群中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32730948/
LMAX Disruptor 通常使用以下方法实现: 如本例所示,Replicator 负责将输入事件\命令复制到从节点。跨一组节点进行复制需要我们应用共识算法,以防我们希望系统在出现网络故障、主故障
我对这两个概念感到困惑:In-graph replication和 Between-graph replication阅读 Replicated training 时在 tensorflow 的官方
我对这两个概念感到困惑:In-graph replication和 Between-graph replication阅读 Replicated training 时在 tensorflow 的官方
我在事件监视器中收到以下错误, The row was not found at the Subscriber when applying the replicated command. (Sourc
我正在尝试设置 mysql 复制。我看到了在不同地方使用的两个提到的选项。我觉得replicate-rewrite-db是在master和slave中的数据库名称不同的情况下使用的。这是这两个选项之间
我正在关注 Realm Postgres Connector 引用,用于将我们的 Realm 数据库与我们的 Heroku PostgreSQL 数据库同步:https://docs.realm.io
我很难找到数据同步和复制之间的差异。 据我所知,复制使 2 个数据库之间的所有数据都相同。同步不一定使两个数据库之间的所有数据都相同。复制是一次传输,同步可以是小更新以保持数据一致吗?我不太确定,请在
我们刚刚成功地将一个主服务器备份到了一个热备服务器上。但是,当我们尝试查询热备时,会出现以下错误: ERROR: cannot assign TransactionIds during recover
有两个进程访问共享变量x,y和z。每个进程访问用于保存这些变量的存储的不同副本。 x,y和z的初始值是0。 流程1: x = 1; if (y == 0) z++; 和过程2: y = 1; if
我需要一个图形数据库,该数据库需要备份并可能在较低的抽象级别上访问。为了负载平衡,它也必须分布,(单主复制就可以了)。 我知道可以使用自引用键值存储来实现图形数据库。 Git 对象数据库就是这种模式的
我正在构建一个解决方案,该解决方案将部署在全局多个地区的多个数据中心,每个数据中心都有一个在每个地区主动更新的数据副本。我将在每个数据中心有多个数据库和文件系统的组合,它们的状态必须保持一致(在一个数
我有 2 个数据库 X“生产”和 Y“测试” 数据库 X 的结构应与 Y 相同。但是,他们并不是因为我的疯狂而对制作进行了很多改动。现在,我需要以某种方式导出 X 并将其导入 Y 而不会破坏任何复制。
使用REPLICATE(以指定的次数重复字符表达式)函数 REPLICATE函数用于以指定的次数重复字符表达式。 语法: REPLICATE (character_expression,int
我的理解在这里可能有误。据我了解,Couchbase 使用智能客户端来自动选择要在集群中写入或读取的节点。我不明白的是,当这些数据被写入/读取时,它是否也立即写入所有其他节点?如果是这样,在节点发生故
我目前正在处理 Crystal Reports 中的一个项目,该项目拒绝使用 Oracle 10g 中允许的未记录函数 WM_CONCAT。 这是WM_CONCAT头信息 WM_CONCAT(p1 I
我有一个在防火墙后面运行的 SOLR 实例。我即将建立另一个不会被防火墙保护的实例。但是,SOLR 似乎只支持拉复制而不支持推送复制。 为了保持相同的安全级别,我有哪些选择?我宁愿不要在防火墙中打开太
有人可以解释为 RavenDB 设置复制的基本步骤吗?我正在使用 build 888。根据我在网上找到的内容,我可以猜测可能需要做什么,但我宁愿确定。 我相信这是复制的官方文档: http://rav
我想在SQL Server和MySQL之间设置复制,其中SQL Server是主数据库服务器,而MySQL是从属服务器(在Linux上)。 有没有办法设置这种情况?帮我 。 最佳答案 我的答案可能来不
我想了解以下 Lotus-Domino 服务器到服务器复制场景中会发生什么: 服务器 A 有 A 数据库的副本。 服务器 B 具有相同数据库的副本。 两台服务器都对数据库具有管理员访问权限,包括删除文
我有一个 2 节点的 cassandra 集群,复制因子为 2,AutoBootStrap=true。启动期间一切正常,两个节点都能看到对方。让我们称这些节点为 A 和 B。 通过节点 A 向 cas
我是一名优秀的程序员,十分优秀!