天天看點

Alluxio源碼分析讀資料:打開檔案選項OpenFileOptions

        OpenFileOptions是為讀資料打開一個檔案方法的選項,提供了打開檔案的多種選擇。在OpenFileOptions内部,封裝了兩個重要的成員變量,如下:

        而OpenFileOptions隻有一個私有無參構造函數,基于預設配置資訊構造一個OpenFileOptions執行個體,代碼如下:

        其中,讀取類型ReadType取參數alluxio.user.file.readtype.default配置的值,定位政策取參數alluxio.user.file.write.location.policy.class配置的值。同時,OpenFileOptions對外提供了一個靜态方法defaults(),外部調用者可以基于OpenFileOptions.defaults()形式擷取一個預設配置的OpenFileOptions執行個體,代碼如下:

        OpenFileOptions還有一個比較重要的方法toInStreamOptions(),它是基于目前OpenFileOptions執行個體成員變量擷取一個預設實作的輸入流選項InStreamOptions的執行個體,代碼如下:

        InStreamOptions是在真正讀取資料時使用的一個輸入流選項,其内部也是封裝了FileWriteLocationPolicy和ReadType兩個成員變量,且預設構造時二者的取值與OpenFileOptions一緻,這裡不再贅述。

        剩餘的,便是一些比較簡單的get和set方法,不再詳細介紹,具體代碼如下:

        getAlluxioStorageType()方法是根據讀取類型mReadType擷取Alluxio的存儲政策。