出现这个错误是spark读取standby状态的namenode导致的,出现原因是访问到了非active节点,只要在active节点启动就行了。
如果还不行,先检查一下hosts文件,看看对应的ip和主机名有没有问题。然后检查Spark的配置文件(spark-defaults.conf 和 spark-env.sh),看看有没有写固定路径,如果写固定路径而那个节点是standby状态的话,就会出现这个错误。
可以通过修改固定路径来避免这种情况,比如:在Hadoop HA配置的时候,总的集群叫mycluster,那么可以在写路径的时候:
hdfs://mycluster/
这样写,在hadoop fs -ls /hdfs://mycluster/可以查看根目录。
而hadoop fs -ls /hdfs://mycluster相当于hadoop fs -ls,得到的是hdfs上/user/hadoop下的目录