【问题标题】:Hadoop. How to avoid workers file due to Docker automatic namesHadoop。如何避免由于 Docker 自动命名而导致的 worker 文件
【发布时间】:2021-03-02 07:05:14
【问题描述】:
像 Hadoop 之类的一些工具需要明确指定工作人员的名称(docs 中的 Slaves 文件 部分),但是当使用 Docker Swarm 进行部署时,它会分配自动容器名称,因此工作人员文件不会不再工作,因为其中的名称不存在。有没有办法避免这个文件,或者至少为容器分配别名(独立于容器名称)以使其工作?
也许我不能使用 docker-compose.yml 文件,我必须在集群上手动创建服务......任何关于这个主题的光将非常感激
【问题讨论】:
标签:
docker
hadoop
docker-compose
docker-swarm
【解决方案1】:
好吧,Hadoop 文档很烂……显然,如果您在 core-site.xml 文件中设置主节点的别名,您可以省略 workers 文件。这些是我遵循的步骤:
- 自定义了
core-site.xml 文件(在我的docker-compose.yml 文件中,我将我的主服务命名为nodemaster)。此文件必须在主节点和工作节点中:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://nodemaster:9000</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://nodemaster:9000</value>
</property>
</configuration>
</configuration>
- 现在当你运行时:
start-dfs.sh
start-yarn.sh
我会自动连接到master