我们为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/