检查hadoop系统是否已设置,如果未从本地文件系统读取文件

voj3qocg  于 2021-07-12  发布在  Spark
关注(0)|答案(0)|浏览(214)

我正在(许多)linux服务器上部署javajar。
(与此问题相关:如何在sc.textfile中加载本地文件,而不是hdfs)
在javajar文件中,我有一个类试图从hdfs或文件夹上的本地文件夹中读取文件。
实施原则如下:
如果在服务器(或任何其他服务器,hdfs路径是一个输入)上设置了hdfs环境,spark将读取hdfs系统上的特定文件夹
但是,如果没有设置hdfs环境,spark将读取服务器上本地目录中的文件。
伪代码是这样的

check whether HDFS environment exist, set exist_id = 1 if yes, otherwise exist_id = 0

if (exist_id) 
     try 
       javaRDD = spark.textFile(InpuPathToFileFolder); // read from HDFS 
     except: 
       exist_id = 0

if (exist_id == 0)
       javaRDD = spark.textFile("file:///" + InpuPathToFileFolder); // read from local directory

这个 InpuPathToFileFolder 将是hdfs上的文件夹(如果hdfs存在),否则是本地目录(如果hdfs不存在)。我们事先不知道。如何通过java代码检查服务器上是否存在hdfs?
我不喜欢直接使用下面的代码,因为如果hdfs不存在或无法连接,那么在 try 部分。

try 
    javaRDD = spark.textFile(InpuPathToFileFolder); // read from HDFS 
  except:
    javaRDD = spark.textFile("file:///" + InpuPathToFileFolder); // read from local directory

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题