**
spark2.4.6报 java.io.FileNotFoundException
**
提示:WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1, 172.16.50.32, executor 1):java.io.FileNotFoundException: File file:/home/hadoop/input/wc.txt does not exist
在确认文件存在的情况下,出现这个问题的原因是:我们是在集群上运行wordcount程序,运行时只在上传了wc.txt的Worker节点上读取到文件,别的节点并没有读到文件,所以会报FileNotFoundException
**解决方式1:**将要读取的数据文件同步到每一个(Worker)节点上,然后运行程序,就不会报警告了
**解决方式2:**若为普通集群,直接将数据文件上传到hdfs,达到数据共享,运行wordcount程序,就不会报警告了
sc.textFile("hdfs://hrbu31:9000/data/wordcount.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
**解决方式3:**若为高可用集群(HA)
1).将数据文件上传到hdfs,达到数据共享
hdfs dfs -put wordcount.txt /data/
2).拷贝hadoop中的core-site.xml和hdfs-site.xml文件到spark中的conf文件夹下
[hadoop@hrbu30 ~]$ cp /opt/ha/hadoop/etc/hadoop/core-site.xml /opt/wdp/spark/conf/
[hadoop@hrbu30 ~]$ cp /opt/ha/hadoop/etc/hadoop/hdfs-site.xml /opt/wdp/spark/conf/
3).把拷贝到conf文件夹下的文件分发到所有的节点上
[hadoop@hrbu30 conf]$ xsync core-site.xml
[hadoop@hrbu30 conf]$ xsync hdfs-site.xml
4).最后运行wordcount程序,就不报警告了
sc.textFile("hdfs://mycluster/data/wordcount.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect