java - Rancher 模板 - 主机名中的 Hadoop 非法字符

标签 java hadoop docker rancher

我们为hadoop+yarn使用rancher模板,但是hadoop似乎无法处理使用容器名称作为主机名(例如。hadoop_namenode-primary_1)。

Caused by: java.net.URISyntaxException: Illegal character in hostname at index 13: http://hadoop_datanode_1:50075/webhdfs/v1/skystore/tmp/devtest_onedir/2016_08_19_02_35_35_32f7/header.json?op=CREATE&user.name=hdfs&namenoderpcaddress=10.42.14.252:8020&overwrite=true

是我做错了还是有一些解决方法?

在我看来,问题是由使用容器名称作为主机名引起的,而 Rancher 创建带有下划线的容器。虽然不知道如何解决它......

最佳答案

Oracle 错误数据库指出:根据 RFC 2396、RFC 952 和 RFC 1123,下划线不是主机名中的有效字符。请引用以下链接:

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=5049974

更好的办法是在主机名中用连字符替换下划线。

更新 1:

hadoop is unable to deal with using container names as hostnames

事实并非如此。这是关于主机名中的字符下划线。

更新 2:

We have no idea how to force rancher to do that though

你不应该朝那个方向前进。原因是,还有其他应用程序可能会抛出相同的异常,这又是一个麻烦。最好的选择是更改主机名。

关于java - Rancher 模板 - 主机名中的 Hadoop 非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39037336/

相关文章:

docker - kubectl get pods 显示 ErrImagePull

Hadoop distcp 错误路径仍然复制——数据去哪儿了?

hadoop - 如何在现有集群上升级 hadoop - google cloud

azure - 拉取镜像 Azure 容器注册表 - Kubernetes

java - CompletableFutures 并根据内部值进行过滤

scala - 为什么 lines.map 不起作用,但 lines.take.map 在 Spark 中起作用?

azure - `docker context create aci` `--location` 参数似乎没有效果

java - 在 Spring Boot 应用程序中加载不同的应用程序上下文

java - 为什么继承在 Java 和 C++ 中的行为不同,父类(super class)调用(或不调用)子类的方法?

java - 无法使用itext从图像中获取absoluteX和absoluteY