19.5. 文件系统命令行工具¶
GeoMesa文件系统发行版包括一组用于功能管理、获取、导出和调试的命令行工具。
要安装这些工具,请参阅 设置文件系统命令行工具 。
安装后,应该可以通过命令使用这些工具 geomesa-fs **
$ geomesa-fs
INFO Usage: geomesa-fs [command] [command options]
Commands:
...
中介绍了多个后端通用的命令 命令行工具 。这里的命令是特定于文件系统的。
19.5.1. 指令¶
19.5.1.1. compact¶
压缩一个或多个文件系统分区。这将把多个文件合并到更少、更大的文件中,这可能会提供更好的查询性能。
论据 |
描述 |
|---|---|
|
用于存储数据的文件系统根路径 |
|
架构的名称 |
|
要压缩的分区(省略以压缩所有分区) |
|
数据文件的目标大小(例如500MB或1 GB) |
|
其中之一 |
|
用于工作文件的临时目录的路径 |
这个 --temp-path 参数在使用时可能有用 s3 数据,如 s3 增量写入速度较慢。
19.5.1.2. generate-partition-filters¶
计算与分区完全匹配的筛选器。这可用于促进从另一个系统直接导出到适当的分区目录。
论据 |
描述 |
|---|---|
|
用于存储数据的文件系统根路径 |
|
架构的名称 |
|
用于确定要操作的分区的CQL谓词 |
|
要操作的分区,受CQL筛选器的限制 |
|
在输出中隐藏列标题 |
|
Hadoop配置属性,格式为key=Value |
至少以下一项 --cql 或 --partitions 必须指定,才能选择要操作的分区。如果同时指定了两者,则将忽略与CQL谓词不匹配的任何显式分区。
结果将以制表符分隔的文本形式输出。下面的示例使用GDELT GeoMesa文件系统快速入门 :
$ ./geomesa-fs generate-partition-filters \
-p hdfs://localhost:9000/fs \
-f gdelt-quickstart \
-q "bbox(geom,0,0,180,90) and dtg during 2020-01-01T00:00:00.000Z/2020-01-03T00:00:00.000Z"
INFO Generating filters for 2 partitions
Partition Path Filter
2020/01/01/3 hdfs://localhost:9000/fs/gdelt-quickstart/2020/01/01/3_I BBOX(geom, 0.0,0.0,180.0,90.0) AND dtg >= '2020-01-01T00:00:00.000Z' AND dtg < '2020-01-02T00:00:00.000Z'
2020/01/02/3 hdfs://localhost:9000/fs/gdelt-quickstart/2020/01/02/3_I BBOX(geom, 0.0,0.0,180.0,90.0) AND dtg >= '2020-01-02T00:00:00.000Z' AND dtg < '2020-01-03T00:00:00.000Z'
19.5.1.3. get-files¶
显示一个或多个文件系统分区的文件。
论据 |
描述 |
|---|---|
|
用于存储数据的文件系统根路径 |
|
架构的名称 |
|
要列出的分区(省略以列出所有分区) |
19.5.1.4. get-partitions¶
显示给定文件系统存储的分区。
论据 |
描述 |
|---|---|
|
用于存储数据的文件系统根路径 |
|
架构的名称 |
19.5.1.5. ingest¶
有关接收选项的概述,请参阅 ingest 。
此命令将文件接收到GeoMesa FS数据存储区。请注意,“数据存储”只是文件系统中的一个路径。所有数据和元数据都将存储在根路径层次结构下的文件系统中。
论据 |
描述 |
|---|---|
|
用于存储数据的文件系统根路径 |
|
用于基础文件的编码。提供了以下实现 |
|
通用分区方案名称(例如Daily、Z2)或包含方案配置的文件的路径 |
|
要使用的减量器数量(分布式摄取需要) |
|
使用叶存储 |
|
数据文件的目标大小(例如500MB或1 GB) |
|
用于工作文件的临时目录的路径 |
|
要设置为SimpleFeatureType用户数据的其他存储选项,格式为 |
如果架构尚不存在,则 --encoding 和 --partition-scheme 是必需的,否则可能会被省略。
这个 --partition-scheme 参数应该是提供的分区方案的众所周知的名称,或者是包含分区方案的文件的名称。看见 分区方案 以获取更多信息。
这个 --num-reducers 通常应设置为分区数量的一半。
这个 --temp-path 参数在使用时可能有用 s3 数据,如 s3 很难给你写信。
19.5.1.6. manage-metadata¶
此命令将压缩、添加和删除文件系统存储实例中的元数据条目。它有三个子命令:
compact-将多个元数据文件压缩为单个文件register-为现有数据文件创建新的元数据条目unregister-删除现有数据文件的元数据条目check-consistency-检查元数据和数据文件之间的一致性
要调用该命令,请使用命令名,后跟子命令,然后使用任何参数。例如::
$ geomesa manage-metadata compact -p /tmp/geomesa ...
论据 |
描述 |
|---|---|
|
用于存储数据的文件系统根路径 |
|
架构的名称 |
19.5.1.6.1. compact¶
这个 compact 子命令会将多个元数据文件重写为单个文件。请注意,这不会更改数据文件;这是由顶层完成的 compact 命令,如上所述。
19.5.1.6.2. register/unregister¶
这个 register 和 unregister 子命令将添加或删除与特定文件相关联的元数据。文件必须已存在于适当的分区路径下。如果新数据文件是通过某个外部批量进程创建的,则必须使用此命令注册它们,然后才能进行查询。
论据 |
描述 |
|---|---|
|
要修改的分区的名称 |
|
要注册的文件的名称。可以多次指定以注册多个文件 |
|
正在注册的文件中的功能数量。这不是必需的,但可在以后用于估计查询大小 |
|
要注册的数据文件的地理范围,格式为 |
19.5.1.6.3. check-consistency¶
这个 check-consistency 子命令将对照数据文件检查元数据。它将查找元数据中未引用的数据文件,以及与数据文件不对应的元数据条目。
论据 |
描述 |
|---|---|
|
要检查的分区的名称,或对于所有分区均为无 |
|
增量更新元数据以修复发现的任何不一致 |
|
根据找到的数据文件重建整个元数据 |
|
在不提示的情况下强制执行 |
警告
两者都使用 --partitions 和 --rebuild 将导致从元数据中删除任何不在指定分区中的数据文件。