国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當前位置:首頁  >  技術(shù)干貨  > fs.defaultfs詳解

fs.defaultfs詳解

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-23 15:50:03 1700725803

一、fs.defaultfs是什么

fs.defaultfs是Hadoop分布式文件系統(tǒng)中默認的文件系統(tǒng)URI。

在Hadoop集群中,有許多不同的文件系統(tǒng)可供選擇,包括HDFS(Hadoop分布式文件系統(tǒng))、S3、本地文件系統(tǒng)等等。fs.defaultfs指定我們在使用Hadoop分布式文件系統(tǒng)API時使用哪個文件系統(tǒng)。

例如,在以下示例代碼中,如果我們未指定URI,則所使用的文件系統(tǒng)將為fs.defaultfs所配置的文件系統(tǒng):


FileSystem fs = FileSystem.get(conf);

二、fs.defaultfs與Spark Jar文件處理

當我們使用Spark處理Hadoop文件系統(tǒng)中的Jar文件時,需要使用fs.defaultfs指定所選文件系統(tǒng)而不是本地文件系統(tǒng)。

以下是示例代碼:


SparkConf conf = new SparkConf().setAppName("MyApp")
                                 .setMaster("local")
                                 .set("spark.jars", "hdfs://localhost:9000/path/to/your.jar")
                                 .set("spark.driver.extraClassPath", "hdfs://localhost:9000/path/to/your.jar")
                                 .set("spark.executor.extraClassPath", "hdfs://localhost:9000/path/to/your.jar")
                                 .set("fs.defaultfs", "hdfs://localhost:9000");
JavaSparkContext jsc = new JavaSparkContext(conf);

三、fs.defaultfs未設(shè)置的影響

如果您沒有設(shè)置fs.defaultfs,則可能會在使用HDFS之外的文件系統(tǒng)時遇到問題。

例如,如果您試圖使用以下代碼創(chuàng)建一個在本地文件系統(tǒng)上的文件:


FileSystem fs = FileSystem.get(new Configuration());
Path path = new Path("/path/to/file");
FSDataOutputStream out = fs.create(path);

你可能會遇到如下異常:

java.lang.IllegalArgumentException: Wrong FS: file:/path/to/file, expected: hdfs://localhost:9000

這個異常是因為使用了配置為“fs.defaultfs”所描述的默認文件系統(tǒng)(在本例中為HDFS)。

四、使用fs.defaultfs創(chuàng)建ViewFS中的文件

ViewFS是一個允許用戶將多個Hadoop文件系統(tǒng)視為單個文件系統(tǒng)的軟件.

如果您想要在ViewFS中創(chuàng)建文件,請使用以下代碼示例:


Configuration conf = new Configuration();
conf.set("fs.defaultfs", "viewfs://cmbc/");
FileSystem fs = FileSystem.get(conf);
Path path = new Path("/path/to/file");
FSDataOutputStream out = fs.create(path);
out.writeBytes("Hello World!");
out.close();

這里,“fs.defaultfs”指向ViewFS的默認文件系統(tǒng)。

請注意,“cmbc”是所需的ViewFs mount table的名稱。mount table是一個XML文件,描述了如何將Hadoop文件系統(tǒng)掛在到ViewFS的命名空間。

五、fs.defaultfs和fs.defaultFs的區(qū)別

請注意,fs.defaultfs和fs.defaultFs是不同的配置屬性。

fs.defaultFs是舊版的配置屬性,而fs.defaultfs是新版的配置屬性。

fs.defaultFs 提供了與fs.defaultfs相同的功能,但它已被棄用,不建議使用。

因此,為了保持兼容性,請使用fs.defaultfs而不是fs.defaultFs。

六、結(jié)論

在Hadoop分布式集群中,選擇正確的文件系統(tǒng)非常重要。fs.defaultfs設(shè)置用于指定使用哪個文件系統(tǒng),它可以與HDFS、ViewFS等文件系統(tǒng)一起使用。

Spark用戶需要指定fs.defaultfs來確保能夠使用Spark處理Hadoop文件系統(tǒng)中的jar文件。fs.defaultfs未設(shè)置可能會在使用HDFS之外的文件系統(tǒng)時遇到問題。

fs.defaultfs與fs.defaultFs是不同的配置屬性,建議使用新版fs.defaultfs。

tags: fs.defaultfs
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT