本文為您介紹如何通過Hadoop Shell命令訪問OSS和OSS-HDFS。
環境準備
- EMR環境中,默認已安裝JindoSDK,可以直接使用。
說明 訪問OSS-HDFS,需創建EMR-3.42.0及以上版本或EMR-5.8.0及以上版本的集群。
- 非EMR環境,請先安裝部署JindoSDK,詳情請參見在非EMR集群中部署JindoSDK。
說明 訪問OSS-HDFS,需部署JindoSDK 4.x及以上版本。
相關命令及示例
通過Hadoop Shell命令訪問OSS和OSS-HDFS的方式基本相同,僅路徑中的Endpoint略有不同,根路徑示例請參見路徑說明。
- 上傳文件
將本地根目錄下的examplefile.txt文件上傳至examplebucket,訪問OSS-HDFS示例如下:
hadoop fs -put examplefile.txt oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
- 新建目錄
在examplebucket下創建名為dir/的目錄,訪問OSS-HDFS示例如下:
hadoop fs -mkdir oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/dir/
- 查看文件或目錄信息
查看examplebucket下的文件或目錄信息,訪問OSS-HDFS示例如下:
hadoop fs -ls oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
- 獲取文件或目錄大小
獲取examplebucket下所有文件或目錄的大小,訪問OSS-HDFS示例如下:
hadoop fs -du oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
- 查看文件內容
查看examplebucket下名為localfile.txt的文件內容,訪問OSS-HDFS示例如下:
hadoop fs -cat oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/localfile.txt
重要 查看文件內容時,文件內容將以純文本形式顯示。如果文件內容進行了特定格式的編碼,請使用HDFS的Java API讀取并解碼文件內容。 - 拷貝目錄或文件
例如,將examplebucket下根目錄subdir1拷貝到目錄subdir2下,且根目錄subdir1所在的位置、根目錄下的文件和子目錄結構和內容保持不變,訪問OSS-HDFS示例如下:
hadoop fs -cp oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/subdir1 oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/subdir2/subdir1
- 移動目錄或文件
例如,將examplebucket根目錄srcdir及其包含的文件或者子目錄移動至另一個根目錄destdir下,訪問OSS-HDFS示例如下:
hadoop fs -mv oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/srcdir oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/destdir
- 下載文件
將examplebucket下的exampleobject.txt下載到本地根目錄文件夾/tmp,訪問OSS-HDFS示例如下:
hadoop fs -get oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt /tmp/
- 刪除目錄或文件
刪除examplebucket下destfolder/目錄及其目錄下的所有文件,訪問OSS-HDFS示例如下:
hadoop fs -rm oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/destfolder/