用户命令行接口
Alluxio的命令行接口提供给用户多种操作,例如:
启动或者停止进程
文件系统操作
系统管理命令
调用下述命令来查看多种子命令:
要将JVM系统属性作为命令的一部分设置,请使用-D标志,格式为-Dproperty=value
。
要附加由$ALLUXIO_USER_ATTACH_OPTS
指定的调试Java选项,请设置--attach-debug
标志。
注意,作为Alluxio部署的一部分,当从${ALLUXIO_HOME}
运行Alluxio shell时,它还将采用${ALLUXIO_HOME}/conf/alluxio-site.properties
中的配置。
conf
获取、设置和验证Alluxio configuration,主要在conf/alluxio-site.properties中定义。
conf get
用法: bin/alluxio conf get [key] [flags]
get命令打印给定配置项的对应配置值。 如果配置项无效,返回非零的退出码。 如果配置项有效但未设置,则打印空字符串。 如果未指定配置项,则打印完整配置。
注意:此命令不需要Alluxio集群正在运行。
Flags:
--master
: 显示由master节点使用的配置属性 (默认: false)--source
: 显示配置属性的来源而不是值 (默认: false)--unit
: 返回值的单位,转换为给定单位。 例如,使用"–unit KB",配置值为"4096B"将返回4。 可能的选项包括B, KB, MB, GB, TP, PB, MS, S, M, H, D (默认: "")
Examples:
exec
如何在一个Alluxio集群上运行Alluxio类的main方法、或者端到端的测试。
exec edgeTest
用法: bin/alluxio exec edgeTest [flags]
测试edge是否成功运行。
Flags:
--no-cluster
: 仅与 edge 和 UFS 进行交互,而不访问 Dora 集群。 (默认: false)--path
: (必要) 路径可以是:
一个 Alluxio 路径,例如 'alluxio:///data',仅当未设置 '--no-cluster' 标志时使用。
没有协议(scheme)的路径,例如 '/' 或 '/s3'。这是 Alluxio 路径的一种语法糖。
带有协议(scheme)的 UFS 路径,例如 's3://bucket/data'。 路径必须存在于 Alluxio 命名空间的一个挂载点中。
exec ufsIOTest
用法: bin/alluxio exec ufsIOTest [flags]
A benchmarking tool for the I/O between Alluxio and UFS. This test will measure the I/O throughput between Alluxio workers and the specified UFS path. Each worker will create concurrent clients to first generate test files of the specified size then read those files. The write/read I/O throughput will be measured in the process.
Flags:
--io-size
: specifies the amount of data each thread writes/reads. (默认: "")--java-opt
: The java options to add to the command line to for the task. This can be repeated. The options must be quoted and prefixed with a space. For example: --java-opt " -Xmx4g" --java-opt " -Xms2g". (默认: [])--path
: (必要) specifies the path to write/read temporary data in.--threads
: specifies the number of threads to concurrently use on each worker. (默认: 4)
Examples:
exec ufsTest
用法: bin/alluxio exec ufsTest [flags]
Test the integration between Alluxio and the given UFS to validate UFS semantics
Flags:
--path
: (必要) the full UFS path to run tests against.--test
: Test name, this option can be passed multiple times to indicate multipleZ tests (默认: [])
fs
与 Alluxio 文件系统进行交互的操作。 对于接受 Alluxio URI 作为参数的命令,如 ls 或 mkdir,参数应该是以下之一:
完整的 Alluxio URI,例如 alluxio://<masterHostname>:<masterPort>/<path>
不带协议(scheme)头的路径,例如 /path,以便使用在 alluxio-site.properties 中设置的默认主机名和端口
注意:所有文件系统命令都需要 Alluxio 集群正在运行。
大多数需要路径组件的命令允许使用通配符参数以方便使用。例如,bin/alluxio fs rm ‘/data/2014*’命令是删除数据目录中以 2014 为前缀的任何内容。 一些 shell 将尝试对输入路径进行模式匹配,导致奇怪的错误。作为解决方法,您可以禁用通配符扩展(取决于 shell 类型;例如,设置 -f)或通过转义通配符。 例如,bin/alluxio fs cat /\\*
命令使用了两次转义反斜杠字符。 这是因为 shell 脚本最终会调用一个 Java 程序,该程序应该具有最终转义的参数cat /\\*
。
fs cat
用法: bin/alluxio fs cat [path]
cat 命令将 Alluxio 中的文件内容打印到 shell。
Examples:
fs check-cached
用法: bin/alluxio fs check-cached --path|--index-file <path> [--limit <limit-size>] [flags]
检查 Alluxio 中路径下的文件是否已经被缓存
Flags:
--index-file
: 本地包含要检查的文件路径列表的索引文件。每行应该包含一个 UFS 文件路径。 (默认: "")--limit
: 限制要检查的文件数量 (默认: 1000)--path
: 要检查缓存状态的路径 (默认: "")--recursive
: 是否递归检查指定路径下的文件 (默认: false)
fs checksum
用法: bin/alluxio fs checksum [path]
checksum 命令输出 Alluxio 中文件的 MD5 值,这可以用于验证存储在 Alluxio 中的文件的内容。
Examples:
fs chgrp
用法: bin/alluxio fs chgrp [group] [path] [flags]
chgrp 命令用于更改 Alluxio 中文件或目录的组,Alluxio 支持使用 POSIX 文件权限进行文件授权,并且文件所有者或超级用户可以执行此命令。
Flags:
--recursive
,-R
: 递归更改给定路径下所有文件和目录的组 (默认: false)
Examples:
fs chmod
用法: bin/alluxio fs chmod [mode] [path] [flags]
chmod 命令用于更改 Alluxio 中文件或目录的权限。权限模式表示为一个八进制的三位数值。详细了解权限模式,请参阅 https://en.wikipedia.org/wiki/Chmod#Numerical_permissions
Flags:
--recursive
,-R
: 递归更改给定路径下所有文件和目录的权限 (默认: false)
Examples:
fs chown
用法: bin/alluxio fs chown <owner>[:<group>] <path> [flags]
chown 命令用于更改 Alluxio 文件或目录的所有者。只有超级用户才能更改文件的所有权。
Flags:
--recursive
,-R
: 递归更改给定路径下所有文件和目录的所有者 (默认: false)
Examples:
fs compact
用法: bin/alluxio fs compact [path] [flags]
compact 命令用于合并 position write 类型的文件
Flags:
--commitTimeout
: 在 compaction 时,默认会保留未提交的文件(文件的 mtime 大于 manifest 的 updateTs),可以配置此值来删除未提交的文件。比如我们可以配置为 8h,这代表当前时间减去文件的 mtime 大于 8h 的文件将会被删除,小于 8h 的文件将会被保留 (默认: "")--deleteOrphanFrameFiles
: 如果为 true,将会删除未被引用的 frame 文件 (默认: false)--deleteOrphanFrameListFiles
: 如果为 true,将会删除未被引用的 frame list 文件 (默认: false)--deleteSnapshotsReferencedFiles
: 是否删除快照所引用的文件,如果删除,文件将不能回滚至旧版本 (默认: false)--exportPath
: 如果指定了该路径,在 compaction 时,会将 frame 合并成一个完整的文件,并且输出到给定路径 (默认: "")--fileLifecycle
: 在 compaction 时,默认会删除没有引用的文件,可以配置此值来保留一些创建不久的文件。比如我们可以配置为 8h,这代表当前时间减去文件的 mtime 大于 8h 的文件将会被删除,小于 8h 的文件将会被保留 (默认: "")--maxRetainedSnapshots
: 快照的最大保留个数,当快照的数量超过了配置的值,最老的快照将被删除 (默认: "")--parallelism
: 设置 compact 任务的并发 (默认: "")--recursive
: 如果为 true,将会递归合并目录内的 position write 类型的文件 (默认: false)
Examples:
fs cp
用法: bin/alluxio fs cp [srcPath] [dstPath] [flags]
cp 命令用于在 Alluxio 文件系统中或本地文件系统与 Alluxio 文件系统之间复制文件或目录。 file:// 协议(scheme)表示本地文件系统路径,而 alluxio:// 协议(scheme)或无协议(scheme)表示 Alluxio 文件系统路径。
Flags:
--buffer-size
: 复制到本地或从本地复制时的读取缓冲区大小,默认分别为 64MB 和 8MB (默认: "")--preserve
,-p
: 复制文件时保留文件权限属性,包括所有权、权限和 ACL (默认: false)--recursive
,-R
: 如果为 true,则复制目录子树到目标目录 (默认: false)--thread
: 用于并行复制文件的线程数,默认为 2 * CPU 核心数 (默认: 0)
Examples:
fs head
用法: bin/alluxio fs head [path] [flags]
head 命令将文件的前 1KB 数据打印到 shell。指定 -c 标志可以设置要打印的字节数。
Flags:
--bytes
,-c
: 要打印的字节数 (默认: "")
Examples:
fs location
用法: bin/alluxio fs location [path]
显示存储指定文件的主机列表。
fs ls
用法: bin/alluxio fs ls [path] [flags]
ls 命令列出目录中的所有直接子项,并显示它们的文件信息。 在文件上使用 ls 将只显示该特定文件的信息。
Flags:
--cache-filter
,-c
: 根据缓存过滤配置显示文件的元数据和数据的可缓存性规则;如果未启用缓存过滤,则显示 "Disabled"。注意,解析的可缓存性基于命令行观察到的缓存过滤 (默认: false)--help
: 显示此命令的帮助信息 (默认: false)--human-readable
,-h
: 以人类可读的格式打印大小 (默认: false)--list-dir-as-file
,-d
: 将目录列为文件 (默认: false)--recursive
,-R
: 递归列出子目录 (默认: false)
Examples:
fs mkdir
用法: bin/alluxio fs mkdir [path1 path2 ...]
mkdir 命令在 Alluxio 文件系统中创建新目录。 它是递归的,并将创建所有不存在的父目录。 请注意,创建的目录在底层存储系统中不会被创建,直到目录中的文件被持久化到底层存储为止。 在无效或已存在的路径上使用 mkdir 将会失败。
Examples:
fs mv
用法: bin/alluxio fs mv [srcPath] [dstPath]
mv 命令将文件或目录移动到 Alluxio 中的另一个路径。 目标路径必须不存在或不是一个目录。 如果它是一个目录,文件或目录将作为该目录的子项放置。 该命令仅是一个元数据操作,不会影响文件的数据块。
Examples:
fs rm
用法: bin/alluxio fs rm [path] [flags]
rm 命令从 Alluxio 空间和底层存储系统中删除文件。 此命令返回后,文件将立即不可用,但实际数据可能稍后被删除。
Flags:
--alluxio-only
: 如果为 true,则仅从 Alluxio 缓存中删除数据和元数据 (默认: false)--recursive
,-R
: 如果为 true,则递归删除指定目录子树中的文件 (默认: false)--skip-ufs-check
,-U
: 如果为 true,则跳过检查对应的 UFS 内容是否同步 (默认: false)
Examples:
fs stat
用法: bin/alluxio fs stat [path] [flags]
stat 命令将文件或目录的 FileInfo 表示形式转储到 shell。
Flags:
--format
,-f
: 以给定格式显示信息: "%N": 文件名 "%z": 文件大小(以字节为单位 "%u": 所有者 "%g": 所有者的组名 "%i": 文件的文件ID "%y": 修改时间(UTC 时间),格式为 'yyyy-MM-dd HH:mm' "%Y": 修改时间的 Unix 时间戳(毫秒 "%b": 为文件分配的块数 (默认: "")
Examples:
fs tail
用法: bin/alluxio fs tail [path] [flags]
tail 命令将文件的最后 1KB 数据打印到 shell。 指定 --bytes 标志可以设置要打印的字节数。
Flags:
--bytes
: 要打印的字节数 (默认: "")
Examples:
fs test
用法: bin/alluxio fs test [path] [flags]
测试路径的属性,如果属性为真则返回 0,否则返回 1。
Flags:
--dir
,-d
: 测试路径是否是目录 (默认: false)--exists
,-e
: 测试路径是否存在 (默认: false)--file
,-f
: 测试路径是否是文件 (默认: false)--not-empty
,-s
: 测试路径是否不为空 (默认: false)--zero
,-z
: 测试路径是否为零长度 (默认: false)
fs touch
用法: bin/alluxio fs touch [path]
在指定路径创建一个 0 字节的文件,该文件也将在底层文件系统中创建。
info
检索和/或显示运行中的 Alluxio 集群的信息。
info cluster
用法: bin/alluxio info cluster
打印绑定的集群信息
info nodes
用法: bin/alluxio info nodes
显示所有注册的worker节点状态
info production
用法: bin/alluxio info production
打印生产 ID
info version
用法: bin/alluxio info version
打印 Alluxio 版本信息
job
用于与作业服务交互的命令行工具。
job free
用法: bin/alluxio job free [flags]
free 命令触发一个调度器作业,以释放目录并在各worker节点分布的worker节点page stores中释放缓存的page。
Flags:
--batch-size
: [submit]每个worker节点每秒释放文件的速度。如果值为 0 或为空,将设置为 alluxio.job.batch.size 的值 (默认: 0)--force
: [submit] 即使一些worker节点离线也触发释放 (默认: false)--format
: [progress] 输出格式,TEXT 或 JSON (默认: "")--path
: (必要) [All] 释放操作的源路径--progress
: 查看已提交作业的进度 (默认: false)--recursive
: [submit] 递归释放所有文件 (默认: true)--stop
: 停止正在运行的作业 (默认: false)--submit
: 提交作业 (默认: false)--verbose
: [progress] 详细输出 (默认: false)
Examples:
job list
用法: bin/alluxio job list [flags]
根据job类型和job状态,list所有满足条件的job。
Flags:
--job-state
: job状态. RUNNING|VERIFYING|STOPPED|SUCCEEDED|FAILED|ALL (默认: "")--job-type
: job类型. 可选值:LOAD|FREE|COPY|MOVE|ALL (默认: "")
Examples:
job load
用法: bin/alluxio job load [flags]
load 命令将数据从底层存储系统移动到 Alluxio 存储中。 例如,load 可用于为分析作业预取数据。 如果在目录上运行 load,目录中的文件将被递归加载。
Flags:
--bandwidth
: [submit] 单个worker节点读取带宽限制 (默认: "")--batch-size
: [submit] 每个worker节点加载的批次大小。如果值为 0 或为空,将设置为 alluxio.job.batch.size 的值 (默认: 0)--file-filter-regx
: [submit] 跳过匹配正则表达式模式的文件 (默认: "")--force
: [submit] 即使某些worker节点离线也触发元数据同步 (默认: false)--format
: [progress] 输出格式,TEXT 或 JSON (默认: "")--index-file
: [all] 加载操作的索引文件的源路径 (默认: "")--metadata-only
: [submit] 仅加载文件元数据 (默认: false)--partial-listing
: [submit] 使用部分目录列表,在读取整个目录之前初始化加载,但无法报告某些进度详细信息 (默认: false)--path
: [all] 加载操作的源路径 (默认: "")--progress
: 查看已提交作业的进度 (默认: false)--replicas
: [submit] 加载的副本数量 (默认: 1)--skip-if-exists
: [submit] 跳过现有的已完全缓存的文件 (默认: false)--skip-quota-check
: [submit] 强制跳过quota check提交load任务 (默认: false)--stop
: 停止正在运行的作业 (默认: false)--submit
: 提交作业 (默认: false)--verbose
: [progress] 详细输出 (默认: false)--verify
: [submit] 加载完成后运行验证,如果有新文件则加载 (默认: false)
Examples:
journal
日志相关操作
journal checkpoint
用法: bin/alluxio journal checkpoint
checkpoint 命令会在被选举出的 Alluxio master节点创建日志检查点。 该命令主要用于调试和避免master节点日志无限增长。 检查点需要暂停master节点元数据更改,因此请谨慎使用此命令,以避免干扰系统的其他用户。
journal format
用法: bin/alluxio journal format
format 命令格式化本地 Alluxio master节点的日志。
警告: 只有在集群未运行时才应调用格式化命令。
journal read
用法: bin/alluxio journal read [flags]
read 命令解析当前的日志,并将人类可读的版本输出到本地文件夹。这个命令可能会花费一些时间,具体取决于日志的大小。
注意: 此命令要求 Alluxio 集群 未 运行。
Flags:
--end
: 结束日志序列号(独占) (默认: -1)--input-dir
: 从磁盘读取日志内容的输入目录 (默认: "")--master
: master节点类的名称 (默认: "")--output-dir
: 将日志内容写入的输出目录 (默认: "")--start
: 开始日志序列号 (默认: 0)
Examples:
license
检查和管理许可证状态
license check-expiration
用法: bin/alluxio license check-expiration
验证许可证并在即将超出任何约束时打印警告。
license show
用法: bin/alluxio license show [flags]
根据产品 jar 和配置显示许可证的详细信息。
Flags:
--output
,-o
: 输出格式,可以是 json/yaml (默认: "")
license status
用法: bin/alluxio license status [flags]
列出许可证可能使用的集群的当前状态。
Flags:
--raw
: 输出原始 JSON 数据,而不是人类可读格式的字节、日期时间和持续时间。 (默认: false)
license update
用法: bin/alluxio license update [flags]
使用当前site properties中的许可证进行更新。
Flags:
--process
: 您要使用新许可证更新的进程 (默认: "")
mount
mount 命令管理从底层存储路径到 Alluxio 路径的映射,其中在该路径下创建的 Alluxio 空间中的文件和文件夹将由底层存储路径中相应的文件或文件夹支持。
mount add
用法: bin/alluxio mount add [flags]
add 命令可用于将另一个存储系统中的数据提供给 Alluxio。 请注意,--readonly 标志的挂载点对于防止意外写操作非常有用。 如果多个 Alluxio 卫星集群挂载一个作为事实来源的远程存储集群,--readonly 选项可以帮助防止来自卫星集群的任何写操作抹掉远程存储中的数据。
要连接到挂载点的 UFS,Alluxio 会在 ${ALLUXIO_HOME}/lib/ 下寻找相应的连接器,并使用第一个支持该路径的连接器。 连接器的 JAR 文件看起来像 lib/alluxio-underfs-hdfs-2.7.1.jar。 决定连接器是否支持路径的逻辑取决于 UnderFileSystemFactory 实现。 当同一 UFS 有多个连接器时,比如 lib/alluxio-underfs-hdfs-2.7.1.jar、lib/alluxio-underfs-hdfs-2.7.1-patch1.jar、lib/alluxio-underfs-hdfs-2.7.1-patch2.jar,选项 alluxio.underfs.strict.version.match.enabled 可以确保选择正确的连接器。 例如,如果 HDFS 运行的是 2.7.1-patch1,您可以使用 alluxio.underfs.version 和 alluxio.underfs.strict.version.match.enabled=true 来确保使用 lib/alluxio-underfs-hdfs-2.7.1-patch1.jar 连接到目标 HDFS(如 hdfs://ns1/)。
Flags:
--master
: 设置为 true 以创建由 Alluxio master节点跟踪的挂载点 (默认: false)--option
: 挂载点的配置选项,以 key=value 的形式,如凭据(credentials) (默认: [])--path
: (必要) 要挂载到的 Alluxio 路径--shared
: 将挂载点的权限位设置为所有 Alluxio 用户都可以访问 (默认: false)--ufs-uri
: (必要) 要挂载的 UFS URI
Examples:
mount list
用法: bin/alluxio mount list [flags]
出设置在 Alluxio 文件系统上的所有已知挂载点。
Flags:
--master
: 设置为 true 以基于master节点注册列出挂载点 (默认: false)
Examples:
mount remove
用法: bin/alluxio mount remove [flags]
移除指定路径处的挂载点。
Flags:
--master
: 设置为 true 以删除master节点注册的挂载点 (默认: false)--path
: (必要) 要取消挂载的 Alluxio 路径
Examples:
process
启动/停止集群进程或移除worker节点
process remove-worker
用法: bin/alluxio process remove-worker [flags]
从集群中移除给定的worker节点,这样客户端和其他worker节点将不再考虑已移除的worker节点提供服务。 在安全地从集群中移除worker节点之前,必须先停止该worker节点。
Flags:
--name
,-n
: (必要) worker节点的 ID
process start
用法: bin/alluxio process start [flags]
启动单个进程本地或跨集群启动一组相似的进程。 对于启动一组进程,假定本地主机可以无密码访问集群中的其他节点。 该命令将通过读取 conf/coordinator 和 conf/workers 文件来解析要运行的主机名,具体取决于进程类型。
Flags:
--async
,-a
: 异步启动进程,而不监视启动完成 (默认: false)--console-log
,-c
: Log output to stdout in addition to log file (默认: false)--direct
,-d
: (用于 docker)直接运行启动命令,跳过所有其他步骤,并避免使用 nohup 启动 (默认: false)--skip-kill-prev
,-N
: 在启动时避免终止先前运行的进程 (默认: false)
process stop
用法: bin/alluxio process stop [flags]
停止单个进程本地或跨集群停止一组相似的进程。 对于停止一组进程,假定本地主机可以无密码访问集群中的其他节点。 该命令将通过读取 conf/coordinator 和 conf/workers 文件来解析要运行的主机名,具体取决于进程类型。
Flags:
--soft
,-s
: 仅软关闭,不强制终止进程 (默认: false)
quota
The quota command manges all quota definitions in Alluxio system. Alluxio supports setting quota on directories in Alluxio path.
quota add
用法: bin/alluxio quota add [flags]
在一个Alluxio目录上添加一个Quota定义。Quota定义的缓存空间上限是所有Alluxio worker缓存的总和。
Flags:
--directory
: (必要) 设置目标Alluxio目录路径,如 /s3/。注意这个路径必须在某个已有的挂载点下或者是挂载点路径本身。--quota-size
: (必要) 设置Quota大小,如 10GB, 1TB
Examples:
quota list
用法: bin/alluxio quota list [flags]
列出当前所有的Quota使用情况
Flags:
--interval
: 刷新Quota使用信息的间隔时间,如 5s,1m。如果设置了--interval,则会每隔指定的时间刷新一次并输出,直到命令行被终止。 (默认: "")
Examples:
quota remove
用法: bin/alluxio quota remove [flags]
删除一个已有的Quota定义
Flags:
--directory
: (必要) 要删除Quota定义的目标Alluxio目录路径,如 /s3/。
Examples:
quota update
用法: bin/alluxio quota update [flags]
更新一个已有的Quota定义
Flags:
--directory
: (必要) 要更新的目标Alluxio目录路径,如 /s3/。--force
: Whether to force the update of the quota, even if it violates the existing space usage (默认: false)--quota-size
: (必要) 新的Quota大小,如 10GB, 1TB
Examples:
security
安全服务器相关命令
security token
用法: bin/alluxio security token
从安全服务器获取一个token。
Last updated