使用EMR的JindoFS緩衝模式串連OSS資料湖。
背景資訊
您可以使用EMR的JindoFS緩衝模式或者JindoFS塊模式串連OSS資料湖。
緩衝模式(Cache)主要相容原生OSS儲存方式,檔案以對象的形式儲存在OSS上,每個檔案根據實際訪問情況會在本地進行緩衝,提升EMR叢集內訪問OSS的效率,同時相容了OSS原有檔案形式,資料訪問上能夠與其他OSS用戶端完全相容。詳情請參見JindoFS緩衝模式使用說明。
Block Storage模式(Block)提供了最為高效的資料讀寫能力和中繼資料訪問能力。資料以Block形式儲存在後端儲存OSS上,本地提供緩衝加速,中繼資料則由本地Namespace服務維護,提供高效的中繼資料訪問效能。詳情請參見JindoFSBlock Storage模式使用說明。
前提條件
操作步驟
使用EMR的jindoFS緩衝模式串連OSS和啟用緩衝,詳情請參見JindoFS緩衝模式使用說明。
啟用緩衝會利用本地磁碟對訪問的熱資料區塊進行緩衝,預設狀態為禁用,即所有OSS讀取都直接存取OSS上的資料。緩衝啟用後,Jindo服務會自動管理本機快取備份,通過水位清理本機快取,請根據需求配置一定的比例用於緩衝。
啟動spark SQL。
通過遠程登入工具(例如PuTTY)登入EMR Header伺服器。
執行如下命令運行Spark SQL。
spark-sql --master yarn --num-executors 5 --executor-memory 1g --executor-cores 2
使用SQL語句建立指向OSS資料目錄的外表。
請使用通過Tablestore控制台擷取的SQL語句,如下SQL語句樣本僅供參考。
CREATE EXTERNAL TABLE lineitem (l_orderkey bigint,l_linenumber bigint,l_receiptdate string,l_returnflag string,l_tax double,l_shipmode string,l_suppkey bigint,l_shipdate string,l_commitdate string,l_partkey bigint,l_quantity double,l_comment string,l_linestatus string,l_extendedprice double,l_discount double,l_shipinstruct string) PARTITIONED BY (`year` int, `month` int) STORED AS PARQUET LOCATION 'jfs://test/' ;
通過Tablestore控制台擷取SQL語句的方法如下:
在執行個體的資料湖投遞頁面,單擊投遞任務操作列的建表語句,可以查看和複製SQL語句,如下圖所示。
執行如下SQL語句,載入OSS資料來源中實際的資料分區。
其中lineitem為建立的外表名稱。
msck repair table lineitem;
查詢資料。
select * from lineitem limit 1;