问题标签 [datanode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
143 浏览

hadoop - 重启namenode或重启后datanode需要很长时间才能生效

作为标题,datanode 总是需要大约 20 分钟或更长时间才能在 hdfs 摘要中生效。我找不到任何线索。有什么方法可以加快这个过程吗?谢谢。

0 投票
1 回答
1302 浏览

hadoop - hadoop集群中Namenode和Datanode的通信端口是什么

我想知道port numberhadoop中Namenode和Datanode具体使用的通信协议。

说,如果我在 Namenode 中编写以下命令,

它将显示活动节点(名称节点和数据节点)的详细信息,有多少数据节点等。我的问题是名称节点和数据节点如何通信?通过which port?实际上,我使用上述命令只获得了 1 个数据节点,而在我的集群中,有 8 个数据节点。所以,我不确定是否有任何port blocking of networking原因造成的!我的防火墙在名称节点和所有数据节点中被禁用。我已经通过sudo ufw status返回的命令检查了这一点inactive

从 hadoop 官方页面(链接),我发现了这个:

通信协议

所有 HDFS 通信协议都建立在 TCP/IP 协议之上。客户端与 NameNode 机器上的可配置 TCP 端口建立连接。它与 NameNode 对话 ClientProtocol。DataNode 使用 DataNode 协议与 NameNode 对话。远程过程调用 (RPC) 抽象包装了客户端协议和数据节点协议。按照设计,NameNode 从不启动任何 RPC。相反,它只响应 DataNodes 或客户端发出的 RPC 请求。

我正在hadoop 3.1.1使用Ubuntu 16.04

非常感谢任何帮助。谢谢。

0 投票
0 回答
133 浏览

hadoop - 如何重新平衡数据节点磁盘上的 HDFS 数据大小

我们有 HDP 的生产集群 - 2.6.4 版本

我们有 186 台数据节点机器(戴尔机器有 10 个磁盘)

我们尝试重新平衡磁盘上的数据,以便磁盘使用相同的大小但没有成功

感觉2.6.4版本没有支持重新平衡的工具!!!

正如我在每台数据节点机器上提到的,我们有 10 个磁盘,而每个磁盘为 1.8T

并且一些磁盘已使用 55%

其中一些仅使用了 1%

所以我们有非平衡磁盘(它就像一些磁盘没用),但是为什么 HDFS 没有平衡所有磁盘上的数据?

我的问题 - 从哪个 HDP 版本,我们可以重新平衡数据节点磁盘?

剂量2.6.5版本支持重新平衡吗?

还是从 3.X 开始?

请指教,我们能做什么?

正如我所提到的,这是一个非常大的集群,并且

我们有一种不好的感觉,即当前的 HDP 版本( 2.6.4 )不支持任何重新平衡 - 这是真的吗?

0 投票
1 回答
110 浏览

hadoop - 安全 Hadoop - 在后台启动 Datanode

我正在运行 hadoop 3.1.2,并且正在我的集群上设置身份验证。出于性能原因,我不想在我的设置中加密数据,只需要身份验证。我已经阅读了关于保护数据节点的部分: https ://cwiki.apache.org/confluence/display/HADOOP/Secure+DataNode

因为我不想加密,所以我采用了特权资源方法(据我了解,SASL 对通信进行加密,因此会对性能产生影响)。问题是我需要以 root 用户身份单独启动数据节点。使用 start-dfs.sh 不会启动 datanodes,因为它从我的 hadoop 用户开始。当我使用 hdfs datanode 命令时,我无法通过该会话在我的服务器上执行任何其他操作。

有没有办法在后台启动数据节点?

0 投票
0 回答
502 浏览

docker - 从外部主机 VM 连接到在 docker 容器中运行的 HDFS 名称节点

我有一个 HBase + HDFS 设置,其中每个 HBase 主服务器、区域服务器、HDFS 名称节点和数据节点都是容器化的。

在单个主机 VM 上运行所有这些容器时,一切正常,因为我可以直接使用 docker 容器名称,并将配置变量设置为:

对于 regionserver 和 datanode。系统在此配置中按预期工作。

但是,当尝试将这些分发到多个主机 VM 时,我遇到了问题。

我将上面的配置变量更新为:

并确保 namenode 容器暴露了 9000 端口并将其映射到主机的 9000 端口。

当我使用主机名时,名称似乎无法正确解析,并且我在 datanode 日志中看到的错误如下所示:

datanode容器的名称在哪里<hostname>-datanode,IP是各种容器IP。

我想知道我是否遗漏了一些配置变量,可以让其他 VM 的容器连接到 namenode,或者其他一些允许该系统正确分发的更改。例如,我想知道系统是否期望容器以某种方式命名。

0 投票
1 回答
6247 浏览

java - 有 1 个数据节点正在运行,并且在此操作中排除了 1 个节点。(伪分布式模式)

我正在使用 java 使用 hadoop 2.7,但我有这个错误。我可以创建一个文件,但我不能在文件中写入:

错误:

错误文件 /test/1.txt 只能复制到 0 个节点而不是 minReplication (=1)。有 1 个数据节点正在运行,并且在此操作中排除了 1 个节点。

我已阅读有关此错误的信息,但我的数据节点未满。

我正在使用在 linux (ubuntu 18.10) 中运行的 1 个单节点集群。从我的 Windows 计算机(在同一网络上)我从 java 访问我的集群

0 投票
1 回答
328 浏览

hadoop - 删除 HDFS 块池

我在 Hadoop 集群上运行 Spark。我尝试运行 Spark 作业并注意到我遇到了一些问题,最终通过查看数据节点的日志意识到其中一个数据节点的文件系统已满

我看了看hdfs dfsadmin -report以确定这一点。剩余的 DFS 类别为 0B,因为使用的非 DFS 是海量的(155GB 的 193GB 配置容量)。

当我查看此数据节点上的文件系统时,我可以看到其中大部分来自 /usr/local/hadoop_work/ 目录。那里有三个块池,其中一个非常大(98GB)。当我查看集群中的另一个数据节点时,它只有一个块池。

我想知道的是我可以简单地删除其中两个块池吗?我假设(但对此知之甚少)namenode(我只有一个)将查看最新的块池,该块池的大小较小,并且对应于另一个数据节点上的块池。

0 投票
1 回答
77 浏览

hadoop - 数据节点如何知道写入管道中的下一个数据节点?

来自“White,Tom;Hadoop:权威指南;第 3 章,Hadoop 分布式文件系统,文件写入剖析”:

... DataStreamer 将数据包流式传输到管道中的第一个数据节点,该数据节点存储每个数据包并将其转发到管道中的第二个数据节点。同样,第二个数据节点存储数据包并将其转发到...中的第三个(也是最后一个)数据节点。

它没有提到数据节点如何知道哪个是它必须发送数据包的下一个数据节点。

0 投票
1 回答
963 浏览

hadoop - 如何解决 Hadoop 配置期间 datanode 日志中的错误?

我在我的 Windows 系统中安装了 Hadoop。只有名称节点和资源管理器服务正在运行。使用 jps cmd 时,不可见 DataNode、SecondaryNameNode 和 NodeManager 守护程序等剩余服务。DataNode 日志中抛出以下错误;

错误:

谁能给我一个解决方案?

0 投票
0 回答
847 浏览

hadoop - HDFS NameNode 启动速度非常慢,块很少

我有一个相当小的设置(HDP 2.6),在 15 TB 硬盘上大约有 1429 个块。该系统具有 512 GB RAM 和 128 个内核(256 个线程)。在过去的几天里,我看到整个 HDP 设置的启动时间从大约 10 分钟缩短到了几个小时。罪魁祸首原来是NameNode。当box首次设置没有任何数据时,整个HDP + HCP设置将在大约10分钟内启动(包括数据和名称节点)。我们开始使用大量数据进行测试,随着时间的推移,我们的区块超过了 2300 万。此时系统需要大约 3 个小时才能启动。这主要是由于 NameNode 启动时间,考虑到大量的块,这似乎是可以理解的。

但是,即使在删除所有文件夹/块并仅留下 1429 个块之后,系统仍然需要 50 多分钟才能启动名称节点并自动退出安全模式。

DataNode 日志在下面的 Replica Cache 行之后暂停,然后开始显示“Detected pause in JVM or host machine (eg GC)”。

相应的 NameNode 日志显示以下内容并不断重复“报告的块 0 需要额外的 1429 个块才能达到总块 1428 的阈值 1.0000。”

到底发生了什么,我该如何解决这个问题?我也尝试增加 NameNode 和 DataNode 的 HeapSize。来自 DataNode 的 GC 消息消失了,但是当它读取 iNODES 时,我仍然在 NameNode 日志中看到它们。

任何帮助将不胜感激。