java.lang.IllegalArgumentException: java.net.UnknownHostException: user 错误解决

在spark-shell环境运行官网实例,每次涉及action操作,总出现错误:
java.lang.IllegalArgumentException: java.net.UnknownHostException: user


有的说修改hosts、有的说将$HADOOP_HOME/etc/hadoop下面的hdfs-site.xml和core-site.xml拷贝到$SPARK_HOME/conf下面,但是无效。
后来参考(Spark Java.Lang.IllegalArgumentException: Java.Net.UnknownHostException: User)得到有效的解决方案:
This error can be fixed by giving proper hostname and port.
sc.textFile("hdfs://{hostname}:8020/{filepath}...") 

即每次HDFS路径参数的时候,添加core-site.xml中 fs.defaultFS 对应的 {hostname}:port 信息。例如,我之前的传递的参数是酱紫的:
"hdfs://user/root/data/file.txt"
现在修改为:
"hdfs://hostname:9000/user/root/data/file.txt"

另外需要注意,修改/etc/hosts的时候,配置如"127.0.0.1 your_hostname"是不对的,在启动spark-shell的时候会警告:
WARN util.Utils: Your hostname, your_hostname resolves to a loopback address: 127.0.0.1; using 192.168.67.81 instead (on interface eth0)
安装hadoop配置/etc/hosts的时候,只需在后面添加对应的IP master/slave即可,无需修改其它。

你可能感兴趣的:(Hadoop&&Spark系列)