15.4. Acumulo命令行工具¶
GeoMesa Acumulo发行版包括一组用于功能管理、获取、导出和调试的命令行工具。
要安装这些工具,请参阅 设置Acumulo命令行工具 。
安装后,应该可以通过命令使用这些工具 geomesa-accumulo **
$ geomesa-accumulo
INFO Usage: geomesa-accumulo [command] [command options]
Commands:
...
中介绍了多个后端通用的命令 命令行工具 。这里的命令是特定于Acumulo的。
15.4.1. 一般论据¶
大多数命令都要求您指定到Acumulo的连接。这通常包括实例名称、ZooKeeper主机、用户名和密码(或Kerberos密钥表文件)。使用指定实例 --instance-name 和 --zookeepers ,并使用用户名和密码 --user 和 --password 。可以省略密码参数,以避免bash历史和进程列表中出现明文凭据-在这种情况下,稍后会提示密码。要使用Kerberos身份验证而不是密码,请使用 --keytab 包含指定用户条目的Kerberos密钥表文件的路径。由于密钥表文件允许在没有任何进一步约束的情况下进行身份验证,因此应该对其进行适当的保护。
不是显式指定集群连接,而是使用适当的 accumulo-client.properties 可以添加到类路径中。请参阅 Accumulo documentation 有关必要的配置密钥的信息。任何显式命令行参数都将优先于配置文件。
这个 --auths 参数对应于 AccumuloDataStore 参数 geomesa.security.auths 。看见 数据安全 以获取更多信息。
15.4.2. 指令¶
15.4.2.1. add-index¶
添加或更新现有要素类型的索引。这可用于就地升级,将较旧的索引格式转换为最新格式。看见 升级现有索引 以获取更多信息。
论据 |
描述 |
|---|---|
|
包含架构元数据的目录表 |
|
架构的名称 |
|
要添加的索引的名称(Z2、Z3等) |
|
申请回填数据的筛选器 |
|
跳过回填数据 |
这个 --index 参数指定要添加的索引。它必须是已知索引类型之一的名称,例如 z3 或 xz3 。看见 索引概述 以获取可用的索引。
默认情况下,该命令将启动MAP/REDUTE作业,以使用模式中的任何现有要素填充新索引。对于大型数据集,这可能不是我们所希望的。这个 --no-back-fill 参数可用于完全禁用索引填充,或者 --cql 可用于使用现有功能的子集填充索引。
运行此命令时,请确保设置了适当的授权和可见性。否则,数据可能无法正确回填。
15.4.2.2. add-attribute-index¶
在属性上添加索引。属性可以在模式创建过程中单独索引;此命令可以在现有模式中添加新索引。看见 属性索引 有关指数的更多信息。
此命令是一个方便的包装器,用于启动中所述的映射/减去作业 属性索引 。
论据 |
描述 |
|---|---|
|
包含架构元数据的目录表 |
|
架构的名称 |
|
属性(S)到索引,逗号分隔 |
|
索引类型,或者 |
有关索引覆盖率的说明,请参见 属性指数 。
15.4.2.3. bulk-ingest¶
批量摄取命令将直接摄取到Acumulo rfiles,然后绕过正常的写入路径将rfile导入到Acumulo。看见 Bulk Ingest 有关更多详细信息,请参阅Acumulo文档。
要接收的数据必须位于Acumulo正在使用的同一分布式文件系统中,并且接收必须在其中运行 distributed 模式为映射/还原作业。
为了高效运行,您应该根据您的输入确保数据表具有适当的拆分。这将避免在接收过程中创建极大的文件,还将防止群集随后拆分rfile。看见 配置索引拆分 以获取更多信息。
请注意,下面的一些选项继承自常规 ingest 命令,但与批量摄取无关。看见 ingest 有关可用选项的其他详细信息,请参阅。
论据 |
描述 |
|---|---|
|
包含架构元数据的目录表 |
|
用于写出rfile的输出目录 |
|
架构的名称 |
|
这个 |
|
用于创建以下内容的GeoMesa转换器 |
|
覆盖由转换器定义的错误模式 |
|
如果使用分区存储,则使用覆盖接收数据的筛选器 |
|
使用的并行线程数 |
|
输入文件格式(csv、tsv、avro、shp、json等) |
|
指定要写入的特定GeoMesa索引,而不是所有索引 |
|
写入输出的临时路径。在S3上使用Acumulo时,首先使用此参数将输出写入HDFS可能会更快 |
|
此应用程序在接收作业提交时关闭。请注意,这将需要手动导入生成的rfile。 |
|
一定是 |
|
拆分的最大字节数(分布式作业) |
|
输入文件是文本文件,其中包含要摄取的文件列表,每行一个 |
|
生成rfile,但跳过批量导入到Acumulo |
|
取消任何确认提示 |
|
要摄取的输入文件 |
这个 --output 目录将被解释为分布式文件系统路径。如果它已经存在,则在运行摄取之前将提示用户将其删除。
这个 --cql 如果使用分区架构,则参数是必需的(请参见 配置分区索引 有关详细信息)。筛选器必须覆盖所有输入数据的分区,以便可以适当地创建分区表。任何与筛选器不匹配或与现有表不对应的功能都将无法被摄取。
--skip-import 可用于跳过将rfile导入到Acumulo的过程。这些文件可以在以后通过 importdirectory 命令。请注意,如果 --no-tracking 则无论如何都将跳过导入。
15.4.2.4. compact¶
以增量方式压缩给定要素类型的表格。 Compactions 在Acumulo中,将把多个数据文件合并到一个文件中,这有一个副作用,那就是永久删除已标记为删除的行。压缩可以通过AcumuloShell触发;但是,一次排队太多压缩可能会影响集群的性能。此命令将处理给定要素类型的所有表的压缩,并限制压缩,以便一次只运行几个表。
论据 |
描述 |
|---|---|
|
包含架构元数据的目录表 |
|
架构的名称 |
|
要同时压缩的范围数,默认为4 |
|
根据默认日期属性(相对于当前时间)压缩数据的时间长度。例如‘1天’、‘2周零1小时’等 |
|
基于DEFAULT DATE属性压缩数据的时间量(相对于 |
|
表示特征ID是使用Z3FeatureIdGenerator写入的。这允许根据配置的ID表优化压缩 |
这个 --from 和 --duration 根据架构的默认日期属性,可以使用参数来减少需要压缩的文件数量。由于表键,这主要用于Z3索引,以及与一起使用时的ID索引 --z3-feature-ids 。其他索引通常会完全压缩,因为它们不是按日期分区的。
此命令在使用以下命令时特别有用 功能到期 ,以确保从磁盘物理删除过期的行。在此方案中, --from 参数应设置为老化期间,并且 --duration 参数应根据运行压缩的频率设置。其目的是仅压缩自上次压缩以来可能已过时的数据。请注意,时间段与基于属性的老化一致;摄入时间老化可能需要时间缓冲,假设摄入时间和默认日期属性之间存在某种关系。
此命令还可用于通过删除重复或标记为删除的条目来加快查询速度。这对于静态数据集可能很有用,一旦大小停止增长,Acumulo将不会自动压缩该数据集。在此方案中, --from 和 --duration 可以省略参数,以便压缩整个数据集。
15.4.2.5. configure-age-off¶
列出、添加或删除给定要素类型的老化。看见 功能到期 以获取更多信息。
警告
在使用此命令之前,应删除任何手动配置的老化迭代器,因为它们可能会因配置名称而无法正常运行。
论据 |
描述 |
|---|---|
|
包含架构元数据的目录表 |
|
架构的名称 |
|
列出为架构配置的所有老化时间 |
|
删除架构的老化 |
|
为架构设置老化(需要 |
|
条目过期前的持续时间(‘1天’、‘2周和1小时’等) |
|
在指定的日期字段上使用基于属性的老化 |
这个 --list 参数将显示任何已配置的老化::
$ geomesa-accumulo configure-age-off -c test_catalog -f test_feature --list
INFO Attribute age-off: None
INFO Timestamp age-off: name:age-off, priority:10, class:org.locationtech.geomesa.accumulo.iterators.AgeOffIterator, properties:{retention=PT1M}
这个 --remove 参数将删除任何已配置的老化::
$ geomesa-accumulo configure-age-off -c test_catalog -f test_feature --remove
这个 --set 参数将配置老化。这将删除任何现有的老化配置,并将其替换为新规范。使用时 --set , --expiry 还必须提供。 --expiry 可以是以自然语言指定的任何持续时间字符串。
如果 --dtg 则老化将基于指定的日期类型属性::
$ geomesa-accumulo configure-age-off -c test_catalog -f test_feature --set --expiry '1 day' --dtg my_date_attribute
否则,老化将基于摄取时间::
$ geomesa-accumulo configure-age-off -c test_catalog -f test_feature --set --expiry '1 day'
警告
摄取时间到期要求在架构中禁用逻辑时间戳。看见 逻辑时间戳 以获取更多信息。
15.4.2.6. configure-stats¶
列出、添加或删除给定目录表上的Stat迭代器配置。GeoMesa会自动在汇总统计表上配置迭代器 (_stats )。通常不需要修改这一点,但是,如果Acumulo类路径配置错误,或者数据损坏,则在不首先删除迭代器配置的情况下可能无法删除该表。
论据 |
描述 |
|---|---|
|
包含架构元数据的目录表 |
|
列出为CATALOG表配置的所有统计迭代器 |
|
删除CATALOG表的统计迭代器配置 |
|
为CATALOG表添加统计迭代器配置 |
这个 --list 参数将显示任何已配置的统计信息迭代器。
这个 --remove 参数将删除任何已配置的统计信息迭代器。
这个 --add 参数将添加统计信息迭代器。
15.4.2.7. configure-table¶
该命令将列出并更新GeoMesa使用的累积表的特性。它有两个子命令:
list列出表的配置选项update更新表的给定配置选项
要调用该命令,请使用命令名,后跟子命令,然后使用任何参数。例如::
$ geomesa-accumulo configure-table list --catalog ...
论据 |
描述 |
|---|---|
|
包含架构元数据的目录表 |
|
架构的名称 |
|
要检查/更新的索引表(Z2、Z3等) |
|
要操作的属性名称(更新子命令需要) |
|
要设置的特性值(仅适用于更新子命令) |
这个 --index 参数指定要检查的索引。它必须是已知索引类型之一的名称,例如 z3 或 xz3 。看见 索引概述 以获取可用的索引。请注意,并非所有架构都具有所有索引类型。
这个 --key 参数可以在列出和更新过程中使用。对于列表,它将过滤属性以仅显示请求的属性。对于更新,需要将其作为要更新的属性。
这个 --value 参数仅在更新期间使用。
15.4.2.8. stats-analyze¶
此命令将重新生成由GeoMesa维护的缓存数据统计信息。出于以下几个原因,这可能是可取的:
统计数据在接收过程中以增量方式进行编译,这有时会导致准确性降低
删除要素时,大多数统计数据不会更新,因为它们没有维护足够的信息来处理删除操作
错误或数据损坏可能导致统计数据变得不可读
论据 |
描述 |
|---|---|
|
包含架构元数据的目录表 |
|
架构的名称 |