在spark-shell环境运行官网实例,每次涉及action操作,总出现错误:
java.lang.IllegalArgumentException: java.net.UnknownHostException: user
有的说修改hosts、有的说将$HADOOP_HOME/etc/hadoop下面的hdfs-site.xml和core-site.xml拷贝到$SPARK_HOME/conf下面,但是无效。
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即可,无需修改其它。