Google釋出新版用來連結Cloud Storage的HDFS(Hadoop Distributed File System)連接程式(GCS Connector),這個新版連結程式提供了兩個主要的功能更新,第一是支援欄式檔案格式以提升資料處理效率,第二個則為協作鎖定功能,獨立Cloud Storage目錄修改,避免可能互相影響的修改受到干擾。

GCS連接程式可在諸如資料節點、Mapper、Reducer或是Spark Executor等Hadoop JVM上運作,讓開發者的工作負載能夠存取Cloud Storage,這些工作負載包括Hadoop和Spark的任務,以及Hadoop相容的檔案系統CLI,都能使用GCS連接程式,直接對Cloud Storage進行資料讀寫操作。

GCS連接程式預先為Cloud Dataproc以及GCP託管的Hadoop和Spark進行配置,可簡單地安裝,並用在其他的Hadoop發布版本中,像是MapR、Cloudera以及Hortonworks,能夠簡化企業將內部HDFS資料搬遷到雲端的工作。這個由GCP支援的GCS連接程式完全開源,Google在與推特工程團隊合作後,使其設計與實作更能應付PB級規模。

新版GCS連接程式的第一個重要更新,是改進了處理Parquet和ORC等欄式檔案格式的效能。Google提到,由於推特在2018年的時候將Hadoop工作負載搬遷到Google雲端上,並且大規模地對20 PB以欄式檔案格式儲存的資料,進行大資料SQL查詢測試,而推特為讓GCS連接程式符合自家高效能的需求,對該專案做出貢獻,讓連接程式能支援只讀取查詢引擎需要的資料欄,進而提升讀取效率。

而Google進一步優化這項改進,使其支援fadvise功能。過去Cloud Storage連接程式對MapReduce類型的工作負載進行了最佳化,其資料檔案的處理都是按順序處理,Google表示,由於欄式檔案格式如Parquet或ORC,其主要目標都是讓查詢引擎能聰明地僅查詢需要的檔案區塊。而在Google為GCS連接程式實作了類似Linux中的fadvise功能,讓應用程式可以為核心提供I/O存取模式的提示,以達成謂詞下推(Predicate Pushdown)的功能。

另一個新版GCS連接程式的功能便是協作鎖定(Cooperative Locking),該功能可以獨立Hadoop檔案系統殼層以及其他HCFS API介面的目錄修改操作。Google提到,雖然Cloud Storage上的物件層級非常一致,但本身卻沒有原生支援目錄語意,系統應該定義像是當兩個用戶對同一個目錄發出衝突的命令時,所需要進行的行為。

Google與推特Hadoop團隊合作,在GCS連接程式中實作了協同鎖定,這項功能可以避免Cloud Storage的目錄操作衝突所發生資料不一致,並有助於目錄操作失敗的恢復工作,同時也使得從HDFS的操作轉換成Cloud Storage更簡單。


Advertisement

更多 iThome相關內容