19.5. 文件系统命令行工具

GeoMesa文件系统发行版包括一组用于功能管理、获取、导出和调试的命令行工具。

要安装这些工具,请参阅 设置文件系统命令行工具

安装后,应该可以通过命令使用这些工具 geomesa-fs **

$ geomesa-fs
INFO  Usage: geomesa-fs [command] [command options]
  Commands:
    ...

中介绍了多个后端通用的命令 命令行工具 。这里的命令是特定于文件系统的。

19.5.1. 指令

19.5.1.1. compact

压缩一个或多个文件系统分区。这将把多个文件合并到更少、更大的文件中,这可能会提供更好的查询性能。

论据

描述

-p, --path *

用于存储数据的文件系统根路径

-f, --feature-name *

架构的名称

--partitions

要压缩的分区(省略以压缩所有分区)

--target-file-size

数据文件的目标大小(例如500MB或1 GB)

--mode

其中之一 localdistributed (使用贴图/减少)

--temp-path

用于工作文件的临时目录的路径

这个 --temp-path 参数在使用时可能有用 s3 数据,如 s3 增量写入速度较慢。

19.5.1.2. generate-partition-filters

计算与分区完全匹配的筛选器。这可用于促进从另一个系统直接导出到适当的分区目录。

论据

描述

-p, --path *

用于存储数据的文件系统根路径

-f, --feature-name *

架构的名称

-q, --cql

用于确定要操作的分区的CQL谓词

--partitions

要操作的分区,受CQL筛选器的限制

--no-header

在输出中隐藏列标题

--config

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

显示一个或多个文件系统分区的文件。

论据

描述

-p, --path *

用于存储数据的文件系统根路径

-f, --feature-name *

架构的名称

--partitions

要列出的分区(省略以列出所有分区)

19.5.1.4. get-partitions

显示给定文件系统存储的分区。

论据

描述

-p, --path *

用于存储数据的文件系统根路径

-f, --feature-name *

架构的名称

19.5.1.5. ingest

有关接收选项的概述,请参阅 ingest

此命令将文件接收到GeoMesa FS数据存储区。请注意,“数据存储”只是文件系统中的一个路径。所有数据和元数据都将存储在根路径层次结构下的文件系统中。

论据

描述

-p, --path *

用于存储数据的文件系统根路径

-e, --encoding

用于基础文件的编码。提供了以下实现 parquetorc

--partition-scheme

通用分区方案名称(例如Daily、Z2)或包含方案配置的文件的路径

--num-reducers

要使用的减量器数量(分布式摄取需要)

--leaf-storage

使用叶存储

--target-file-size

数据文件的目标大小(例如500MB或1 GB)

--temp-path

用于工作文件的临时目录的路径

--storage-opt

要设置为SimpleFeatureType用户数据的其他存储选项,格式为 key=value

如果架构尚不存在,则 --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 ...

论据

描述

-p, --path *

用于存储数据的文件系统根路径

-f, --feature-name *

架构的名称

19.5.1.6.1. compact

这个 compact 子命令会将多个元数据文件重写为单个文件。请注意,这不会更改数据文件;这是由顶层完成的 compact 命令,如上所述。

19.5.1.6.2. register/unregister

这个 registerunregister 子命令将添加或删除与特定文件相关联的元数据。文件必须已存在于适当的分区路径下。如果新数据文件是通过某个外部批量进程创建的,则必须使用此命令注册它们,然后才能进行查询。

论据

描述

--partition *

要修改的分区的名称

--files *

要注册的文件的名称。可以多次指定以注册多个文件

--count

正在注册的文件中的功能数量。这不是必需的,但可在以后用于估计查询大小

--bounds

要注册的数据文件的地理范围,格式为 xmin,ymin,xmax,ymax 。这不是必需的,但可在以后用于估计查询边界

19.5.1.6.3. check-consistency

这个 check-consistency 子命令将对照数据文件检查元数据。它将查找元数据中未引用的数据文件,以及与数据文件不对应的元数据条目。

论据

描述

--partitions

要检查的分区的名称,或对于所有分区均为无

--repair

增量更新元数据以修复发现的任何不一致

--rebuild

根据找到的数据文件重建整个元数据

--force

在不提示的情况下强制执行

警告

两者都使用 --partitions--rebuild 将导致从元数据中删除任何不在指定分区中的数据文件。