JindoFS 命令行工具使用指南§

介绍§

JindoFS 命令行工具是访问 OSS-HDFS 的可执行程序,功能类似于阿里云 OSS 提供的 ossutil。既支持常用的文件元数据和读写流操作,如创建目录、拷贝文件;也支持 OSS-HDFS 特有的方法,如清单导出等。采用了 Native 实现,目标是对 OSS-HDFS 提供高效易用的命令行支持。

与 JindoSDK 提供的命令行工具相比,JindoFS 命令行工具不仅提供对标 Hdfs shell 的常用命令,还提供 OSS-HDFS 的特有方法。然而,JindoFS 命令行工具只支持 OSS-HDFS,主要作为 OSS-HDFS 的特有工具使用。JindoSDK 的命令行工具参见 《Jindo CLI 使用指南》

获取§

目前只提供了 Linux 版本的命令行工具,下载链接

下载后解压缩,在 bin/ 目录下即可找到命令行工具的二进制文件,文件名为 jindofs

配置§

JindoFS 命令行工具使用 JINDOSDK_CONF_DIR 为环境变量。使该变量指向一个本地目录,在目录下放置配置文件 jindofs.cfg,便可以为命令行工具提供配置参数。jindofs.cfg 的内容示例如下:

[client]
fs.oss.accessKeyId = <access key>
fs.oss.accessKeySecret = <access secret>
fs.oss.endpoint = <OSS-HDFS endpoint>
fs.oss.data.lake.storage.enable = true
# fs.oss.provider.endpoint = ECS_ROLE  # EMR Credential provider for password-free access
# fs.oss.provider.format = JSON

在解压后的 conf/ 目录下也可以找到配置示例文件 jindofs.cfg.template

用法§

在命令行中执行 jindofs 二进制文件(例如,cd 至所在目录,执行 ./jindofs 或者 ./jindofs -help),将显示所有支持的命令:

jindofs
        [-help]
        [-version]
jindofs admin
        [-help]
        [-addProxyUser -dlsUri <path> -proxyUser <value> -users|-groups <value> -hosts <value>] 
        [-allowSnapshot -dlsUri <path>]
        [-addUserGroupsMapping -dlsUri <path> -user <value> -groups <value>]
        [-disallowSnapshot -dlsUri <path>]
        [-deleteProxyUser -dlsUri <path> -proxyUser <value>]
        [-deleteUserGroupsMapping -dlsUri <path> -user <value>]
        [-dumpMetaInfo -dlsUri <path>]
        [-dumpInventory <path>]
        [-getJobProgress <jobId> -dlsUri <path>]
        [-listJobs -dlsUri <path> [-stages <stages>] [-createTime <createTime>] [-type <type>]]
        [-listProxyUsers -dlsUri <path> [-maxKeys <value>] [-marker <value>]]
        [-listUserGroupsMappings -dlsUri <path> [-maxKeys <value>] [-marker <value>]]
        [-snapshotDiff -dlsUri <path> -fromSnapshot <value> -toSnapshot <value>]
        [-setRootPolicy <dlsRootPath> <accessRootPath>]
        [-unsetRootPolicy <dlsRootPath> <accessRootPath>]
        [-listAccessPolicies <dlsRootPath>]
        [-putConfig -dlsUri <path> -conf <key1=value1> -conf <key2=value2> ...]
        [-getConfig -dlsUri <path> -name <keys>]
jindofs fs
        [-help]
        [-cat <path>]
        [-count [-h] <path>]
        [-cp [-f] <src> <dst>]
        [-checksum [-mode COMPOSITE_CRC(default)/MD5MD5CRC] [-blockSize <size in bytes (only used in MD5MD5CRC mode, 128MB by default)>] <src> ...]
        [-chgrp [-R] <group> <path>]
        [-chmod [-R] <mode> <path>]
        [-chown [-R] [owner][:[group]] <path>]
        [-copyFromLocal [-f] <localsrc> <dst>]
        [-copyToLocal [-f] <src> <localdst>]
        [-createSnapshot <snapshotDir> [<snapshotName>]]
        [-checkStoragePolicy -path <path>]
        [-deleteSnapshot <snapshotDir> <snapshotName>]
        [-du [-s] [-h] <path> ...]
        [-expunge [-immediate] <path>]
        [-get [-f] <src> <localdst>]
        [-getfacl [-R] <path>]
        [-getfattr [-R] {-n name | -d} <path>]
        [-getStoragePolicy -path <path>]
        [-ls [-R] <path>]
        [-listPolicies]
        [-mkdir [-p] <path>]
        [-mv <src> ... <dst>]
        [-moveFromLocal <localsrc> ... <dst>]
        [-moveToLocal <src> <localdst>]
        [-put [-f] <localsrc> <dst>]
        [-rm [-skipTrash] [-f] [-r|-R] [-safely] <path>]
        [-rmdir <path>]
        [-test -[defsz] <path>]
        [-renameSnapshot <snapshotDir> <oldName> <newName>]
        [-stat [format] <path>]
        [-setStoragePolicy -path <path> -policy <policy> [-restoreDays <restoreDays>]]
        [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
        [-setfattr {-n name [-v value] | -x name} <path>]
        [-touchz <path>]
        [-truncate [-w] <length> <path>]
        [-unsetStoragePolicy -path <path>]

另外,所有命令均支持 --extraConf key=value 的方式提供配置参数,仅对该次执行有效,效果等同于写在配置文件中。

示例§

上传文件§

./jindofs fs -put /local/file/path oss://<bucket-name>.<oss-hdfs-endpoint>/remote/file/path

作用是把本地文件 /local/file/path 上传到远端路径 oss://<bucket-name>.<oss-hdfs-endpoint>/remote/file/path

清单导出§

./jindofs admin -dumpInventory oss://<bucket-name>.<oss-hdfs-endpoint>/  --extraConf fs.oss.accessKeyId=<access key>  --extraConf fs.oss.accessKeySecret=<access secret>

上述命令向 OSS-HDFS 服务发起了一次清单导出任务,并且还通过 --extraConf key=value 的方式为本次执行提供了额外的两条配置信息。JindoFS 的所有命令均支持 --extraConf 参数。

如果命令成功执行,将返回:

=============Dump Inventory=============
Job Id: <job id>
Data Location: <oss-hdfs path to inventory file>
.......................
FINISHED.

随后可在 Data Location 指向的 OSS-HDFS 路径找到清单导出的结果文件,按普通文件访问即可。