spark任务读取hdfs文件在hdfs HA模式时识别不了 UnknownHostExecption
ava.lang.IllegalArgumentException: java.net.UnknownHostException:ha
at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:418)
at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:231)
at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:139)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:510)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:453)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:136)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2433)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:88)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2467)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2449)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:367)
原因是spark配置文件中没有hdfs的配置文件
解决:
1,把/opt/hadoop-2.6.4/etc/hadoop/下 hdfs-site.xml 与core-site.xml两个文件 拷贝到spark所有节点下的spar/conf/目录下
2,更改spark-defaults.conf文件 mv spark-defaults.conf.template spark-defaults.conf
3,修改spark-defaults.conf,在后面加入文件路径
spark.files file:///opt/spark-1.6.1-bin-hadoop2.6/conf/hdfs-site.xml,file:///opt/spark-1.6.1-bin-hadoop2.6/conf/core-site.xml
4,重启spark,重新提交任务。