问题标签 [namenode]

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 投票
1 回答
40 浏览

hadoop - HDFS 中使用的术语是否清晰?

在熟悉 HDFS 的过程中,我遇到了几个术语。很少有这样的术语:namespace, metadata, transaction logs, fsimage, editlogs.

有时似乎所有这些术语都描述了同一件事,即“拥有一些信息”,但我对此并不清楚。

通常metadata是指有关数据的数据,因此会metadata指代所有这些术语,或者所有这些术语在 Hadoop HDFS 的上下文中具有不同的用途?

0 投票
2 回答
2146 浏览

hadoop - 自动故障转移在 Hadoop 中不起作用

我正在尝试构建一个 3 节点集群(2 个 Namenode(nn1,nn2) 和 1 个 datanode(dn1))。使用 Namenode WEBUI,我可以看到 nn1 处于活动状态,而 nn2 处于待机状态。但是,当我杀死活动的 nn1 时,备用 nn2 不会激活。请帮助我我做错了什么或需要修改什么

nn1 /etc/hosts

nn2 /etc/hosts

核心站点.xml (nn1,nn2)

hdfs-site.xml(nn1,nn2,dn1)

日志:(zkfc nn1,nn2)(namenode nn1,nn2)停止nn1(活动节点) https://pastebin.com/bWvfnanQ

0 投票
1 回答
1541 浏览

hortonworks-data-platform - HortonWorks HDP 2.6:NameNode 通过 Ambari 安装问题

我尝试在 3 个节点(node0.local、node1.local、node2.local)上安装带有 Ambari 的 HDP V2.6,但在安装过程中,node0 上发生了以下 NameNode 故障:

“OSError:[Errno 1] 不允许操作:'/boot/efi/hadoop/hdfs/namenode'”

注意:在“Assign Slaves and Clients”步骤中,DataNode 和 NodeManager 的选项 [All] 已被选中。

谢谢。

安巴里截图

日志:

0 投票
1 回答
1430 浏览

apache - 当 YARN 运行时,提交的 hadoop 作业卡在 Accepted 状态

我正在使用 VirualBox 在 Windows 笔记本电脑上运行 Ubuntu 14 VM。我已经为Single Node配置了 Apache 发行版 HDFS 和 YARN 。当我运行 dfs 和 YARN 时,所有必需的恶魔都在运行。当我不配置 YARN 并仅运行 DFS 时,我可以成功执行 MapReduce 作业,但是当我也运行 YARN 然后作业卡在 ACCEPTED 状态时,我尝试了许多有关更改节点内存设置的设置,但没有运气。以下链接我遵循设置单节点 https://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/SingleCluster.html

核心站点.xml

hdfs-site.xml 的设置l`

mapred-site.xml 的设置

yarn-site.xml 的设置`

RM 网页界面RM 网页界面

这是 RM Web UI 的 Application Master 屏幕。我可以看到 AM 容器未分配,可能是问题上午网络用户界面

0 投票
1 回答
5075 浏览

tcp - 运行 Apache Spark 作业时由对等方重置连接

我们有两个 HDP 集群的设置,我们称它们为 A 和 B。

集群 A 节点

  • 共包含20台商品机。
  • 有20个数据节点。
  • 由于配置了namenode HA,因此有一个活动的和一个备用的namenode。

集群 B 节点

  • 共包含5台商品机。
  • 有5个数据节点。
  • 没有配置 HA,并且该集群有一个主名称节点和一个辅助名称节点。

我们的应用程序中有三个主要组件,它们对传入的文件执行 ETL(提取、转换和加载)操作。我将这些组件分别称为 E、T 和 L。

组件 E 特性

  • 该组件是一个 Apache Spark 作业,它仅在集群 B 上运行。
  • 它的工作是从 NAS 存储中提取文件并将它们放入集群 B 中的 HDFS。

组件 T 特性

  • 该组件也是一个 Apache Spark 作业,它在集群 B 上运行。
  • 它的工作是把组件 E 写入的 HDFS 中的文件提取出来,对其进行转换,然后将转换后的文件写入集群 A 中的 HDFS。

组件 L 特性

  • 该组件也是一个 Apache Spark 作业,它仅在集群 A 上运行。
  • 它的工作是拾取组件 T 写入的文件并将数据加载到集群 A 中存在的 Hive 表中。

组件 L 是所有三个组件中的佼佼者,我们没有遇到任何故障。组件 E 中有一些无法解释的小故障,但组件 T 是最麻烦的一个。

组件 E 和 T 都使用 DFS 客户端与名称节点通信。

以下是我们在运行组件 T 时间歇性观察到的异常的摘录:

如前所述,我们会间歇性地遇到这个异常,当它确实发生时,我们的应用程序会卡住,导致我们重新启动它。

我们尝试过的解决方案:

  • 我们的第一个怀疑是我们正在重载集群 A 中的活动名称节点,因为组件 T 确实并行打开了许多 DFS 客户端并对不同的文件执行文件操作(没有争用相同文件的问题)。为了解决这个问题,我们查看了 namenode dfs.namenode.handler.countipc.server.listen.queue.size的两个关键参数,并将后者从 128(默认)提高到 1024。

  • 不幸的是,这个问题仍然存在于组件 T 中。我们开始对这个问题采取不同的方法。我们只专注于寻找发生对等连接重置的原因。根据很多文章和堆栈交换讨论,问题描述如下,对端设置RST标志,导致连接立即终止。在我们的例子中,我们确定对等点是集群 A 的名称节点。

  • 牢记 RST 标志,我深入了解 TCP 通信的内部结构,只了解 RST 标志的原因。

  • Linux 发行版(不是 BSD)中的每个套接字都有两个与之关联的队列,即接受和积压队列。
  • 在 TCP 握手过程中,所有请求都保留在 backlog 队列中,直到收到来自开始建立连接的节点的 ACK 数据包。一旦收到,请求就会被转移到接受队列,打开套接字的应用程序可以开始接收来自远程客户端的数据包。
  • 积压队列的大小由两个内核级参数控制,即net.ipv4.tcp_max_syn_backlognet.core.somaxconn,而应用程序(在我们的例子中为 namenode )可以向内核请求它希望受上限限制的队列大小(我们认为接受队列大小是由ipc.server.listen.queue.size定义的队列大小)。
  • 另外,这里要注意的另一个有趣的事情是,如果net.ipv4.tcp_max_syn_backlog的大小大于net.core.somaxconn,则前者的值将被截断为后者的值。此声明基于 Linux 文档,可在https://linux.die.net/man/2/listen找到。
  • 回到正题,当 backlog 完全填满时,TCP 有两种行为方式,这种行为也可以由名为net.ipv4.tcp_abort_on_overflow的内核参数控制。默认设置为 0,当积压已满时,内核会丢弃任何新的 SYN 数据包,这反过来又让发送方重新发送 SYN 数据包。当设置为 1 时,内核将在数据包中标记 RST 标志并将其发送给发送方,从而突然终止连接。

  • 我们检查了上述内核参数的值,发现net.core.somaxconn设置为 1024,net.ipv4.tcp_abort_on_overflow设置为 0,net.ipv4.tcp_max_syn_backlog设置为 4096集群。

  • 我们现在唯一怀疑的是连接集群 A 和集群 B 的交换机,因为任何集群中的任何机器都不会设置 RST 标志,因为参数net.ipv4.tcp_abort_on_overflow设置为 0。

我的问题

  • 从 HDFS 文档中可以明显看出,DFS Client 使用 RPC 与 namenode 通信以执行文件操作。每个 RPC 调用是否都涉及到 namenode 的 TCP 连接的建立?
  • 参数ipc.server.listen.queue.size是否定义了 namenode 接受 RPC 请求的套接字的接受队列长度?
  • 重负载时,namenode 是否可以隐式关闭与 DFS 客户端的连接,从而使内核发送设置了 RST 标志的数据包,即使内核参数net.ipv4.tcp_abort_on_overflow设置为 0?
  • L2 或 L3 交换机(用于连接我们两个集群中的机器)是否能够设置 RST 标志,因为它们无法处理突发流量?

我们解决这个问题的下一个方法是通过使用 tcpdump 或 wireshark 分析数据包来确定哪台机器或交换机(不涉及路由器)正在设置 RST 标志。我们还将上述所有队列的大小增加到 4096,以有效处理突发流量。

namenode 日志没有显示任何异常的迹象,除了在 Ambari 中看到的 Namenode 连接负载在某些时间点偷看,而不一定是在发生 Connection Reset By Peer 异常时。

最后,我想知道我们是否走上了解决这个问题的正确轨道,或者我们是否会陷入死胡同?

PS对于我的问题中内容的长度,我深表歉意。在寻求任何帮助或建议之前,我想向读者展示整个背景。感谢您的耐心等待。

0 投票
1 回答
634 浏览

hadoop - Hadoop:为什么我得到“最大非堆内存为 -1 B”。Namenode 信息 Web 中的消息?它是什么意思?

我有一个集群使用我使用 VirtualBox(easch 节点安装了 Xubuntu 16.04)制作的 Hadoop 2.6.5(一个用作 namenode 和 datanode 的 master,以及两个 slave)。

先验地,安装是正确的,因为我运行了一个 wordcount 示例并且没问题。

在 master:50070 (我看到名称节点信息的地方),我得到这个:

你知道这是什么意思吗?我找不到答案,我想检查一下,因为在运行 wordcount 之后,我尝试运行我自己的程序,但它没有成功,尽管它在我的 Hadoop 单节点安装中运行正常。

我希望清楚,如果您需要更多信息,请告诉我。

谢谢!

0 投票
0 回答
68 浏览

hadoop - 试图在树莓派 pi3 上安装 hadoop,无法启动名称节点

大家好,我正在尝试在树莓派 pi3 上安装 hadoop,除了名称节点外,我可以运行所有其他资源,我搜索了所有可能的来源,但在其他地方找不到任何此类问题,我的 PI 运行的 java 版本是 jdk.1.7

这是我的配置参数:

Hadoop-env.sh

核心站点.xml

hdfs-site.xml

运行 ./start-dfs.sh 和 ./start.yarn.sh 后,当我键入 jps 时,可以看到以下节点守护程序

想知道我做错了什么

0 投票
0 回答
39 浏览

hadoop - 浏览namenode上的文件系统不起作用:Hadoop安装

我已经安装了 hadoop-1.2.1。我能够配置名称节点和作业跟踪器,两者都已启动并正在运行。但是,当我尝试单击“浏览文件系统”链接时。我会自动被重定向到“ http://0.0.0.0:50070/browseDirectory.jsp?”。你能帮我吗?PFB 我的配置文件:

HDFS-SITE.XML

核心站点.xml

Mapred-site.xml

0 投票
1 回答
1067 浏览

hadoop - 无法访问 Namenode Web URL

我尝试namenode使用namenode IP. 它抛出了一个错误HTTP ERROR 404 Problem accessing /dfshealth.jsp. Reason: NOT_FOUND

我可以使用Namenode主机名访问 Web url。

/etc/hosts文件:

我试过192.168.10.104:50070
它抛出了一个错误page not found

我试过impc2361:50070
它工作正常

为什么我无法使用计算机的 Ip 访问页面?

0 投票
1 回答
482 浏览

hadoop - Spark/YARN - not all nodes are used in spark-submit

I have a Spark/YARN cluster with 3 slaves setup on AWS.

I spark-submit a job like this: ~/spark-2.1.1-bin-hadoop2.7/bin/spark-submit --master yarn --deploy-mode cluster my.py And the final result is a file containing all the hostnames from all the slaves in a cluster. I was expecting I get a mix of hostnames in the output file, however, I only see one hostname in the output file. That means YARN never utilize the other slaves in the cluster.

Am I missing something in the configuration?

I have also included my spark-env.sh settings below.

my.py