- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试借助 Ansible 在 EC2 Spot 实例上设置自定义 Hadoop 基础设施。在这样的实例中,只有内部 IP 是已知的。幸运的是,有一个 ec2.py
脚本可以动态生成 list ,并且可以配置为使用实例的完整外部 DNS 名称作为 inventory_hostname
。因此,我将所有 Jinja2 模板设置为使用 inventory_hostname
来设置配置 XML 文件。到目前为止,这对 HDFS 有效,对于 YARN,Nodemanagers 也已注册到 Resource manager。
但是,节点 ID 设置不正确,即设置为它们的内部 IP 地址。
我的 yarn-site.xml.j2 看起来像这样:
<?xml version="1.0"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>{{resourcemanager_fqdn}}</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>{{resourcemanager_fqdn}}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>{{resourcemanager_fqdn}}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>{{resourcemanager_fqdn}}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>{{resourcemanager_fqdn}}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>{{resourcemanager_fqdn}}:8033</value>
</property>
<property>
<name>yarn.nodemanager.hostname</name>
<value>{{inventory_hostname}}</value>
</property>
<property>
<name>yarn.nodemanager.address</name>
<value>{{inventory_hostname}}:9999</value>
</property>
<property>
<name>yarn.nodemanager.localizer.address</name>
<value>{{inventory_hostname}}:8040</value>
</property>
<property>
<name>yarn.nodemanager.webapp.address</name>
<value>{{inventory_hostname}}:8042</value>
</property>
<property>
<name>yarn.resourcemanager.bind-host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>yarn.nodemanager.bind-host</name>
<value>0.0.0.0</value>
</property>
</configuration>
其中变量resourcemanager_fqdn
是这样获取的:
{{hostvars[groups['tag_hadoop_resourcemanager'][0]].inventory_hostname}}
tag_hadoop_resourcemanager
是 ec2.py
动态生成的主机组。
我以为节点id是从yarn.nodemanager.address
派生的,但这似乎被忽略了。仅考虑端口 9999。
这是错误还是我忘记设置附加选项?
最佳答案
我检查了 YARN 代码并发现了以下内容。
有一个函数 buildNodeId()
,它构建节点 ID。
Node Id是host
和port
的组合,设置为host:port
。
buildNodeId()
在内部调用以下函数来获取 InetAddress
:
InetAddress inetAddress = InetAddress.getByName(host);
此调用始终返回内部 IP 地址作为第一个 IP 地址。
让我用一个例子来解释。例如我有以下 IP:
Ethernet: 172.23.206.41 (External IP)
Host-Only: 192.168.56.1 (Internal IP).
让我解释一下这两种情况(内部 vs 外部 IP)
案例 1:默认为内部 IP
我在 yarn-site.xml
中设置了以下内容:
<property>
<name>yarn.nodemanager.address</name>
<value>mballur:9999</value>
</property>
mballur
是我的主机名。
现在,当我运行 yarn node -list -all
时,我得到如下节点 ID:
Total Nodes:1
Node-Id Node-State Node-Http-Address Number-of-Running-Containers
192.168.56.1:9999 RUNNING 192.168.56.1:50060 0
节点 ID 是内部 IP + 端口的组合。因为,InetAddress.getByName(host)
,返回内部 IP 作为第一个 IP 地址。
情况二:显式指定外部IP
我在 yarn-site.xml
中设置了以下内容:
<property>
<name>yarn.nodemanager.address</name>
<value>172.23.206.41:9999</value>
</property>
172.23.206.41
是我的外部 IP。
现在,当我运行 yarn node -list -all
时,我得到如下节点 ID:
Total Nodes:1
Node-Id Node-State Node-Http-Address Number-of-Running-Containers
172.23.206.41:9999 RUNNING 172.23.206.41:50060 0
现在,Node ID是“外网IP+端口”的组合。
关于hadoop - 如何设置 YARN NodeManager 的 nodeID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34497451/
YARN 中的 yarn-site.xml 与 yarn-default.xml 有什么区别?看起来yarn-default.xml 在Hadoop 2.2 中已被弃用? 最佳答案 在所有 Hadoo
我们有一个在 yarn 上运行的流媒体应用程序,我们希望确保它 24/7 全天候运行。 有没有办法告诉 yarn 在失败时自动重启特定的应用程序? 最佳答案 你试过了吗Hadoop Yarn - Re
我在根队列下有 4 个队列,配置如下。 |-------------|-----------------|---------------------|-------------------| | Qu
我正在使用 YARN(和 Dask)版本 Hadoop 2.7.3-amzn-1 在 AWS EMR 上构建应用程序。我正在尝试测试各种故障场景,并且我想模拟容器故障。我似乎找不到一种简单的方法来杀死
我想创建一个 cron 来通过它的应用程序名称杀死一个 yarn 应用程序(Spark)。但我发现 yarn 应用程序 -kill 需要一个应用程序 ID。是否有解决方案可以通过应用程序名称杀死它,或
我正在尝试从此链接运行通用入门套件:https://github.com/ng-seed/universal即使我按照步骤安装了 Yarn,当我运行命令来运行服务器时,它给了我以下错误: 错误:找不到
我正在尝试 YARN 2.2 中的分布式 Shell 示例,希望有人能澄清托管和非托管应用程序管理器之间的区别是什么? 例如以下几行出现在客户端代码中 // unmanaged AM appConte
我有一个像这样的工作区项目: /project - package.json /packages /project-a package.json
这两个到底做什么用,在哪里使用它们? yarn 安装 yarn 构建 最佳答案 简而言之,yarn install 是用于安装项目所有依赖项的命令,通常在 package.json 文件中分配。在大多
所以,到目前为止,似乎没有 yarn audit --fix ,所以我想弄清楚如何修复我的 yarn audit错误。 我试过 yarn upgrade它修复了一些错误(这很好),但仍然存在一些错误。
我正在使用一个使用 yarn 的 dockerized pyspark 集群。为了提高数据处理管道的效率,我想增加分配给 pyspark 执行程序和驱动程序的内存量。 这是通过将以下两个键值对添加到
我尝试重新安装yarn,但重新安装后发现这个问题,我尝试搜索互联网但没有找到解决方案。 fiii@neo:~$ yarn --version node:internal/modules/cjs/loa
我正在试验2号纱和植面。 我创建了一个新文件夹:/projects/yarn2/根据他们的安装指南https://yarnpkg.com/getting-started我跑了 cd /projects
我是hadoop和YARN的新手。启动hdfs之后,我使用软件包中提供的start-yarn.sh启动YARN并出现错误。 我在Ubuntu 18.04上使用hadoop 3.2.0,jdk-11。
Apache Spark最近更新了版本至0.8.1,新增了yarn-client模式。我的问题是,yarn-client 模式的真正含义是什么?在文档中它说: With yarn-client mod
我们有一个在 HDFS 2.7.3 上运行的 Spark 流应用程序,使用 Yarn 作为资源管理器....在运行应用程序时......这两个文件夹 /tmp/hadoop/data/nm-local
我的机器上的 yarn 命令有问题。我的机器上安装了 hadoop 和 yarn 包管理器(Javascript)。当我运行 yarn init 时,它调用 hadoop 的 YARN 并响应: Er
我正在尝试运行此处列出的简单 yarn 应用程序:https://github.com/hortonworks/simple-yarn-app 我是 Java 和 Hadoop 的初学者,当我尝试使用
我正在尝试使用 YARN node labels标记工作节点,但是当我在 YARN(Spark 或简单的 YARN 应用程序)上运行应用程序时,这些应用程序无法启动。 使用 Spark,指定 --co
我一直只使用 npm 而从不显式使用 yarn/webpack。我需要从这个 repo 运行代码: https://github.com/looker-open-source/custom_visua
我是一名优秀的程序员,十分优秀!