问题标签 [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.
hadoop - HDFS 中使用的术语是否清晰?
在熟悉 HDFS 的过程中,我遇到了几个术语。很少有这样的术语:namespace
, metadata
, transaction logs
, fsimage
, editlogs
.
有时似乎所有这些术语都描述了同一件事,即“拥有一些信息”,但我对此并不清楚。
通常metadata
是指有关数据的数据,因此会metadata
指代所有这些术语,或者所有这些术语在 Hadoop HDFS 的上下文中具有不同的用途?
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
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] 已被选中。
谢谢。
日志:
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 的设置`
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.count和ipc.server.listen.queue.size的两个关键参数,并将后者从 128(默认)提高到 1024。
不幸的是,这个问题仍然存在于组件 T 中。我们开始对这个问题采取不同的方法。我们只专注于寻找发生对等连接重置的原因。根据很多文章和堆栈交换讨论,问题描述如下,对端设置了RST标志,导致连接立即终止。在我们的例子中,我们确定对等点是集群 A 的名称节点。
牢记 RST 标志,我深入了解 TCP 通信的内部结构,只了解 RST 标志的原因。
- Linux 发行版(不是 BSD)中的每个套接字都有两个与之关联的队列,即接受和积压队列。
- 在 TCP 握手过程中,所有请求都保留在 backlog 队列中,直到收到来自开始建立连接的节点的 ACK 数据包。一旦收到,请求就会被转移到接受队列,打开套接字的应用程序可以开始接收来自远程客户端的数据包。
- 积压队列的大小由两个内核级参数控制,即net.ipv4.tcp_max_syn_backlog和net.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对于我的问题中内容的长度,我深表歉意。在寻求任何帮助或建议之前,我想向读者展示整个背景。感谢您的耐心等待。
hadoop - Hadoop:为什么我得到“最大非堆内存为 -1 B”。Namenode 信息 Web 中的消息?它是什么意思?
我有一个集群使用我使用 VirtualBox(easch 节点安装了 Xubuntu 16.04)制作的 Hadoop 2.6.5(一个用作 namenode 和 datanode 的 master,以及两个 slave)。
先验地,安装是正确的,因为我运行了一个 wordcount 示例并且没问题。
在 master:50070 (我看到名称节点信息的地方),我得到这个:
你知道这是什么意思吗?我找不到答案,我想检查一下,因为在运行 wordcount 之后,我尝试运行我自己的程序,但它没有成功,尽管它在我的 Hadoop 单节点安装中运行正常。
我希望清楚,如果您需要更多信息,请告诉我。
谢谢!
hadoop - 试图在树莓派 pi3 上安装 hadoop,无法启动名称节点
大家好,我正在尝试在树莓派 pi3 上安装 hadoop,除了名称节点外,我可以运行所有其他资源,我搜索了所有可能的来源,但在其他地方找不到任何此类问题,我的 PI 运行的 java 版本是 jdk.1.7
这是我的配置参数:
Hadoop-env.sh
核心站点.xml
hdfs-site.xml
运行 ./start-dfs.sh 和 ./start.yarn.sh 后,当我键入 jps 时,可以看到以下节点守护程序
想知道我做错了什么
hadoop - 浏览namenode上的文件系统不起作用:Hadoop安装
我已经安装了 hadoop-1.2.1。我能够配置名称节点和作业跟踪器,两者都已启动并正在运行。但是,当我尝试单击“浏览文件系统”链接时。我会自动被重定向到“ http://0.0.0.0:50070/browseDirectory.jsp?”。你能帮我吗?PFB 我的配置文件:
HDFS-SITE.XML
核心站点.xml
Mapred-site.xml
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 访问页面?
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