blob: 04f6accbe105ce11be972a02180afe8476e275ce [file] [view]
---
id: reference-pulsar-admin
title: Pulsar admin CLI
sidebar_label: "Pulsar Admin CLI"
original_id: reference-pulsar-admin
---
> **Important**
>
> This page is deprecated and not updated anymore. For the latest and complete information about `pulsar-admin`, including commands, flags, descriptions, and more, see pulsar-admin doc.
The `pulsar-admin` tool enables you to manage Pulsar installations, including clusters, brokers, namespaces, tenants, and more.
Usage
```bash
$ pulsar-admin command
```
Commands
* `broker-stats`
* `brokers`
* `clusters`
* `functions`
* `functions-worker`
* `namespaces`
* `ns-isolation-policy`
* `sources`
For more information, see [here](io-cli.md#sources)
* `sinks`
For more information, see [here](io-cli.md#sinks)
* `topics`
* `tenants`
* `resource-quotas`
* `schemas`
## `broker-stats`
Operations to collect broker statistics
```bash
$ pulsar-admin broker-stats subcommand
```
Subcommands
* `allocator-stats`
* `topics(destinations)`
* `mbeans`
* `monitoring-metrics`
* `load-report`
### `allocator-stats`
Dump allocator stats
Usage
```bash
$ pulsar-admin broker-stats allocator-stats allocator-name
```
### `topics(destinations)`
Dump topic stats
Usage
```bash
$ pulsar-admin broker-stats topics options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-i`, `--indent`|Indent JSON output|false|
### `mbeans`
Dump Mbean stats
Usage
```bash
$ pulsar-admin broker-stats mbeans options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-i`, `--indent`|Indent JSON output|false|
### `monitoring-metrics`
Dump metrics for monitoring
Usage
```bash
$ pulsar-admin broker-stats monitoring-metrics options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-i`, `--indent`|Indent JSON output|false|
### `load-report`
Dump broker load-report
Usage
```bash
$ pulsar-admin broker-stats load-report
```
## `brokers`
Operations about brokers
```bash
$ pulsar-admin brokers subcommand
```
Subcommands
* `list`
* `namespaces`
* `update-dynamic-config`
* `list-dynamic-config`
* `get-all-dynamic-config`
* `get-internal-config`
* `get-runtime-config`
* `healthcheck`
### `list`
List active brokers of the cluster
Usage
```bash
$ pulsar-admin brokers list cluster-name
```
### `namespaces`
List namespaces owned by the broker
Usage
```bash
$ pulsar-admin brokers namespaces cluster-name options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--url`|The URL for the broker||
### `update-dynamic-config`
Update a broker's dynamic service configuration
Usage
```bash
$ pulsar-admin brokers update-dynamic-config options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--config`|Service configuration parameter name||
|`--value`|Value for the configuration parameter value specified using the `--config` flag||
### `list-dynamic-config`
Get list of updatable configuration name
Usage
```bash
$ pulsar-admin brokers list-dynamic-config
```
### `delete-dynamic-config`
Delete dynamic-serviceConfiguration of broker
Usage
```bash
$ pulsar-admin brokers delete-dynamic-config options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--config`|Service configuration parameter name||
### `get-all-dynamic-config`
Get all overridden dynamic-configuration values
Usage
```bash
$ pulsar-admin brokers get-all-dynamic-config
```
### `get-internal-config`
Get internal configuration information
Usage
```bash
$ pulsar-admin brokers get-internal-config
```
### `get-runtime-config`
Get runtime configuration values
Usage
```bash
$ pulsar-admin brokers get-runtime-config
```
### `healthcheck`
Run a health check against the broker
Usage
```bash
$ pulsar-admin brokers healthcheck
```
## `clusters`
Operations about clusters
Usage
```bash
$ pulsar-admin clusters subcommand
```
Subcommands
* `get`
* `create`
* `update`
* `delete`
* `list`
* `update-peer-clusters`
* `get-peer-clusters`
* `get-failure-domain`
* `create-failure-domain`
* `update-failure-domain`
* `delete-failure-domain`
* `list-failure-domains`
### `get`
Get the configuration data for the specified cluster
Usage
```bash
$ pulsar-admin clusters get cluster-name
```
### `create`
Provisions a new cluster. This operation requires Pulsar super-user privileges.
Usage
```bash
$ pulsar-admin clusters create cluster-name options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--broker-url`|The URL for the broker service.||
|`--broker-url-secure`|The broker service URL for a secure connection||
|`--url`|service-url||
|`--url-secure`|service-url for secure connection||
### `update`
Update the configuration for a cluster
Usage
```bash
$ pulsar-admin clusters update cluster-name options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--broker-url`|The URL for the broker service.||
|`--broker-url-secure`|The broker service URL for a secure connection||
|`--url`|service-url||
|`--url-secure`|service-url for secure connection||
### `delete`
Deletes an existing cluster
Usage
```bash
$ pulsar-admin clusters delete cluster-name
```
### `list`
List the existing clusters
Usage
```bash
$ pulsar-admin clusters list
```
### `update-peer-clusters`
Update peer cluster names
Usage
```bash
$ pulsar-admin clusters update-peer-clusters cluster-name options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--peer-clusters`|Comma separated peer cluster names (Pass empty string "" to delete list)||
### `get-peer-clusters`
Get list of peer clusters
Usage
```bash
$ pulsar-admin clusters get-peer-clusters
```
### `get-failure-domain`
Get the configuration brokers of a failure domain
Usage
```bash
$ pulsar-admin clusters get-failure-domain cluster-name options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--domain-name`|The failure domain name, which is a logical domain under a Pulsar cluster||
### `create-failure-domain`
Create a new failure domain for a cluster (updates it if already created)
Usage
```bash
$ pulsar-admin clusters create-failure-domain cluster-name options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--broker-list`|Comma separated broker list||
|`--domain-name`|The failure domain name, which is a logical domain under a Pulsar cluster||
### `update-failure-domain`
Update failure domain for a cluster (creates a new one if not exist)
Usage
```bash
$ pulsar-admin clusters update-failure-domain cluster-name options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--broker-list`|Comma separated broker list||
|`--domain-name`|The failure domain name, which is a logical domain under a Pulsar cluster||
### `delete-failure-domain`
Delete an existing failure domain
Usage
```bash
$ pulsar-admin clusters delete-failure-domain cluster-name options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--domain-name`|The failure domain name, which is a logical domain under a Pulsar cluster||
### `list-failure-domains`
List the existing failure domains for a cluster
Usage
```bash
$ pulsar-admin clusters list-failure-domains cluster-name
```
## `functions`
A command-line interface for Pulsar Functions
Usage
```bash
$ pulsar-admin functions subcommand
```
Subcommands
* `localrun`
* `create`
* `delete`
* `update`
* `get`
* `restart`
* `stop`
* `start`
* `status`
* `stats`
* `list`
* `querystate`
* `putstate`
* `trigger`
### `localrun`
Run the Pulsar Function locally (rather than deploying it to the Pulsar cluster)
Usage
```bash
$ pulsar-admin functions localrun options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--cpu`|The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)||
|`--ram`|The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)||
|`--disk`|The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)||
|`--auto-ack`|Whether or not the framework will automatically acknowledge messages||
|`--subs-name`|Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer||
|`--broker-service-url `|The URL of the Pulsar broker||
|`--classname`|The function's class name||
|`--custom-serde-inputs`|The map of input topics to SerDe class names (as a JSON string)||
|`--custom-schema-inputs`|The map of input topics to Schema class names (as a JSON string)||
|`--client-auth-params`|Client authentication param||
|`--client-auth-plugin`|Client authentication plugin using which function-process can connect to broker||
|`--function-config-file`|The path to a YAML config file specifying the function's configuration||
|`--hostname-verification-enabled`|Enable hostname verification|false|
|`--instance-id-offset`|Start the instanceIds from this offset|0|
|`--inputs`|The function's input topic or topics (multiple topics can be specified as a comma-separated list)||
|`--log-topic`|The topic to which the function's logs are produced||
|`--jar`|Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--output`|The function's output topic (If none is specified, no output is written)||
|`--output-serde-classname`|The SerDe class to be used for messages output by the function||
|`--parallelism`|The function’s parallelism factor, i.e. the number of instances of the function to run|1|
|`--processing-guarantees`|The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]|ATLEAST_ONCE|
|`--py`|Path to the main Python file/Python Wheel file for the function (if the function is written in Python)||
|`--schema-type`|The builtin schema type or custom schema class name to be used for messages output by the function||
|`--sliding-interval-count`|The number of messages after which the window slides||
|`--sliding-interval-duration-ms`|The time duration after which the window slides||
|`--state-storage-service-url`|The URL for the state storage service (by default Apache BookKeeper)||
|`--tenant`|The function’s tenant||
|`--topics-pattern`|The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)||
|`--user-config`|User-defined config key/values||
|`--window-length-count`|The number of messages per window||
|`--window-length-duration-ms`|The time duration of the window in milliseconds||
|`--dead-letter-topic`|The topic where all messages which could not be processed successfully are sent||
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--max-message-retries`|How many times should we try to process a message before giving up||
|`--retain-ordering`|Function consumes and processes messages in order||
|`--timeout-ms`|The message timeout in milliseconds||
|`--tls-allow-insecure`|Allow insecure tls connection|false|
|`--tls-trust-cert-path`|The tls trust cert file path||
|`--use-tls`|Use tls connection|false|
### `create`
Create a Pulsar Function in cluster mode (i.e. deploy it on a Pulsar cluster)
Usage
```
$ pulsar-admin functions create options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--cpu`|The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)||
|`--ram`|The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)||
|`--disk`|The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)||
|`--auto-ack`|Whether or not the framework will automatically acknowledge messages||
|`--subs-name`|Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer||
|`--classname`|The function's class name||
|`--custom-serde-inputs`|The map of input topics to SerDe class names (as a JSON string)||
|`--custom-schema-inputs`|The map of input topics to Schema class names (as a JSON string)||
|`--function-config-file`|The path to a YAML config file specifying the function's configuration||
|`--inputs`|The function's input topic or topics (multiple topics can be specified as a comma-separated list)||
|`--log-topic`|The topic to which the function's logs are produced||
|`--jar`|Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.||
|`--name`|The function's name||
|`--namespace`|The function’s namespace||
|`--output`|The function's output topic (If none is specified, no output is written)||
|`--output-serde-classname`|The SerDe class to be used for messages output by the function||
|`--parallelism`|The function’s parallelism factor, i.e. the number of instances of the function to run|1|
|`--processing-guarantees`|The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]|ATLEAST_ONCE|
|`--py`|Path to the main Python file/Python Wheel file for the function (if the function is written in Python)||
|`--schema-type`|The builtin schema type or custom schema class name to be used for messages output by the function||
|`--sliding-interval-count`|The number of messages after which the window slides||
|`--sliding-interval-duration-ms`|The time duration after which the window slides||
|`--tenant`|The function’s tenant||
|`--topics-pattern`|The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)||
|`--user-config`|User-defined config key/values||
|`--window-length-count`|The number of messages per window||
|`--window-length-duration-ms`|The time duration of the window in milliseconds||
|`--dead-letter-topic`|The topic where all messages which could not be processed||
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--max-message-retries`|How many times should we try to process a message before giving up||
|`--retain-ordering`|Function consumes and processes messages in order||
|`--timeout-ms`|The message timeout in milliseconds||
### `delete`
Delete a Pulsar Function that's running on a Pulsar cluster
Usage
```bash
$ pulsar-admin functions delete options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
### `update`
Update a Pulsar Function that's been deployed to a Pulsar cluster
Usage
```bash
$ pulsar-admin functions update options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--cpu`|The cpu in cores that need to be allocated per function instance(applicable only to docker runtime)||
|`--ram`|The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)||
|`--disk`|The disk in bytes that need to be allocated per function instance(applicable only to docker runtime)||
|`--auto-ack`|Whether or not the framework will automatically acknowledge messages||
|`--subs-name`|Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer||
|`--classname`|The function's class name||
|`--custom-serde-inputs`|The map of input topics to SerDe class names (as a JSON string)||
|`--custom-schema-inputs`|The map of input topics to Schema class names (as a JSON string)||
|`--function-config-file`|The path to a YAML config file specifying the function's configuration||
|`--inputs`|The function's input topic or topics (multiple topics can be specified as a comma-separated list)||
|`--log-topic`|The topic to which the function's logs are produced||
|`--jar`|Path to the jar file for the function (if the function is written in Java). It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package.||
|`--name`|The function's name||
|`--namespace`|The function’s namespace||
|`--output`|The function's output topic (If none is specified, no output is written)||
|`--output-serde-classname`|The SerDe class to be used for messages output by the function||
|`--parallelism`|The function’s parallelism factor, i.e. the number of instances of the function to run|1|
|`--processing-guarantees`|The processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]|ATLEAST_ONCE|
|`--py`|Path to the main Python file/Python Wheel file for the function (if the function is written in Python)||
|`--schema-type`|The builtin schema type or custom schema class name to be used for messages output by the function||
|`--sliding-interval-count`|The number of messages after which the window slides||
|`--sliding-interval-duration-ms`|The time duration after which the window slides||
|`--tenant`|The function’s tenant||
|`--topics-pattern`|The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only)||
|`--user-config`|User-defined config key/values||
|`--window-length-count`|The number of messages per window||
|`--window-length-duration-ms`|The time duration of the window in milliseconds||
|`--dead-letter-topic`|The topic where all messages which could not be processed||
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--max-message-retries`|How many times should we try to process a message before giving up||
|`--retain-ordering`|Function consumes and processes messages in order||
|`--timeout-ms`|The message timeout in milliseconds||
### `get`
Fetch information about a Pulsar Function
Usage
```bash
$ pulsar-admin functions get options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
### `restart`
Restart function instance
Usage
```bash
$ pulsar-admin functions restart options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--instance-id`|The function instanceId (restart all instances if instance-id is not provided)||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
### `stop`
Stops function instance
Usage
```bash
$ pulsar-admin functions stop options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--instance-id`|The function instanceId (stop all instances if instance-id is not provided)||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
### `start`
Starts a stopped function instance
Usage
```bash
$ pulsar-admin functions start options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--instance-id`|The function instanceId (start all instances if instance-id is not provided)||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
### `status`
Check the current status of a Pulsar Function
Usage
```bash
$ pulsar-admin functions status options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--instance-id`|The function instanceId (Get-status of all instances if instance-id is not provided)||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
### `stats`
Get the current stats of a Pulsar Function
Usage
```bash
$ pulsar-admin functions stats options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--instance-id`|The function instanceId (Get-stats of all instances if instance-id is not provided)||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
### `list`
List all of the Pulsar Functions running under a specific tenant and namespace
Usage
```bash
$ pulsar-admin functions list options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
### `querystate`
Fetch the current state associated with a Pulsar Function running in cluster mode
Usage
```bash
$ pulsar-admin functions querystate options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`-k`, `--key`|The key for the state you want to fetch||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
|`-w`, `--watch`|Watch for changes in the value associated with a key for a Pulsar Function|false|
### `putstate`
Put a key/value pair to the state associated with a Pulsar Function
Usage
```bash
$ pulsar-admin functions putstate options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the Pulsar Function||
|`--name`|The name of a Pulsar Function||
|`--namespace`|The namespace of a Pulsar Function||
|`--tenant`|The tenant of a Pulsar Function||
|`-s`, `--state`|The FunctionState that needs to be put||
### `trigger`
Triggers the specified Pulsar Function with a supplied value
Usage
```bash
$ pulsar-admin functions trigger options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--fqfn`|The Fully Qualified Function Name (FQFN) for the function||
|`--name`|The function's name||
|`--namespace`|The function's namespace||
|`--tenant`|The function's tenant||
|`--topic`|The specific topic name that the function consumes from that you want to inject the data to||
|`--trigger-file`|The path to the file that contains the data with which you'd like to trigger the function||
|`--trigger-value`|The value with which you want to trigger the function||
## `functions-worker`
Operations to collect function-worker statistics
```bash
$ pulsar-admin functions-worker subcommand
```
Subcommands
* `function-stats`
* `get-cluster`
* `get-cluster-leader`
* `get-function-assignments`
* `monitoring-metrics`
### `function-stats`
Dump all functions stats running on this broker
Usage
```bash
$ pulsar-admin functions-worker function-stats
```
### `get-cluster`
Get all workers belonging to this cluster
Usage
```bash
$ pulsar-admin functions-worker get-cluster
```
### `get-cluster-leader`
Get the leader of the worker cluster
Usage
```bash
$ pulsar-admin functions-worker get-cluster-leader
```
### `get-function-assignments`
Get the assignments of the functions across the worker cluster
Usage
```bash
$ pulsar-admin functions-worker get-function-assignments
```
### `monitoring-metrics`
Dump metrics for Monitoring
Usage
```bash
$ pulsar-admin functions-worker monitoring-metrics
```
## `namespaces`
Operations for managing namespaces
```bash
$ pulsar-admin namespaces subcommand
```
Subcommands
* `list`
* `topics`
* `policies`
* `create`
* `delete`
* `set-deduplication`
* `set-auto-topic-creation`
* `remove-auto-topic-creation`
* `set-auto-subscription-creation`
* `remove-auto-subscription-creation`
* `permissions`
* `grant-permission`
* `revoke-permission`
* `grant-subscription-permission`
* `revoke-subscription-permission`
* `set-clusters`
* `get-clusters`
* `get-backlog-quotas`
* `set-backlog-quota`
* `remove-backlog-quota`
* `get-persistence`
* `set-persistence`
* `get-message-ttl`
* `set-message-ttl`
* `get-anti-affinity-group`
* `set-anti-affinity-group`
* `get-anti-affinity-namespaces`
* `delete-anti-affinity-group`
* `get-retention`
* `set-retention`
* `unload`
* `split-bundle`
* `set-dispatch-rate`
* `get-dispatch-rate`
* `set-replicator-dispatch-rate`
* `get-replicator-dispatch-rate`
* `set-subscribe-rate`
* `get-subscribe-rate`
* `set-subscription-dispatch-rate`
* `get-subscription-dispatch-rate`
* `set-subscription-expiration-time`
* `get-subscription-expiration-time`
* `clear-backlog`
* `unsubscribe`
* `set-encryption-required`
* `set-delayed-delivery`
* `get-delayed-delivery`
* `set-subscription-auth-mode`
* `get-max-producers-per-topic`
* `set-max-producers-per-topic`
* `get-max-consumers-per-topic`
* `set-max-consumers-per-topic`
* `get-max-consumers-per-subscription`
* `set-max-consumers-per-subscription`
* `get-max-unacked-messages-per-subscription`
* `set-max-unacked-messages-per-subscription`
* `get-max-unacked-messages-per-consumer`
* `set-max-unacked-messages-per-consumer`
* `get-compaction-threshold`
* `set-compaction-threshold`
* `get-offload-threshold`
* `set-offload-threshold`
* `get-offload-deletion-lag`
* `set-offload-deletion-lag`
* `clear-offload-deletion-lag`
* `get-schema-autoupdate-strategy`
* `set-schema-autoupdate-strategy`
* `set-offload-policies`
* `get-offload-policies`
### `list`
Get the namespaces for a tenant
Usage
```bash
$ pulsar-admin namespaces list tenant-name
```
### `topics`
Get the list of topics for a namespace
Usage
```bash
$ pulsar-admin namespaces topics tenant/namespace
```
### `policies`
Get the configuration policies of a namespace
Usage
```bash
$ pulsar-admin namespaces policies tenant/namespace
```
### `create`
Create a new namespace
Usage
```bash
$ pulsar-admin namespaces create tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-b`, `--bundles`|The number of bundles to activate|0|
|`-c`, `--clusters`|List of clusters this namespace will be assigned||
### `delete`
Deletes a namespace. The namespace needs to be empty
Usage
```bash
$ pulsar-admin namespaces delete tenant/namespace
```
### `set-deduplication`
Enable or disable message deduplication on a namespace
Usage
```bash
$ pulsar-admin namespaces set-deduplication tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--enable`, `-e`|Enable message deduplication on the specified namespace|false|
|`--disable`, `-d`|Disable message deduplication on the specified namespace|false|
### `set-auto-topic-creation`
Enable or disable autoTopicCreation for a namespace, overriding broker settings
Usage
```bash
$ pulsar-admin namespaces set-auto-topic-creation tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--enable`, `-e`|Enable allowAutoTopicCreation on namespace|false|
|`--disable`, `-d`|Disable allowAutoTopicCreation on namespace|false|
|`--type`, `-t`|Type of topic to be auto-created. Possible values: (partitioned, non-partitioned)|non-partitioned|
|`--num-partitions`, `-n`|Default number of partitions of topic to be auto-created, applicable to partitioned topics only||
### `remove-auto-topic-creation`
Remove override of autoTopicCreation for a namespace
Usage
```bash
$ pulsar-admin namespaces remove-auto-topic-creation tenant/namespace
```
### `set-auto-subscription-creation`
Enable autoSubscriptionCreation for a namespace, overriding broker settings
Usage
```bash
$ pulsar-admin namespaces set-auto-subscription-creation tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--enable`, `-e`|Enable allowAutoSubscriptionCreation on namespace|false|
### `remove-auto-subscription-creation`
Remove override of autoSubscriptionCreation for a namespace
Usage
```bash
$ pulsar-admin namespaces remove-auto-subscription-creation tenant/namespace
```
### `permissions`
Get the permissions on a namespace
Usage
```bash
$ pulsar-admin namespaces permissions tenant/namespace
```
### `grant-permission`
Grant permissions on a namespace
Usage
```bash
$ pulsar-admin namespaces grant-permission tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--actions`|Actions to be granted (`produce` or `consume`)||
|`--role`|The client role to which to grant the permissions||
### `revoke-permission`
Revoke permissions on a namespace
Usage
```bash
$ pulsar-admin namespaces revoke-permission tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--role`|The client role to which to revoke the permissions||
### `grant-subscription-permission`
Grant permissions to access subscription admin-api
Usage
```bash
$ pulsar-admin namespaces grant-subscription-permission tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--roles`|The client roles to which to grant the permissions (comma separated roles)||
|`--subscription`|The subscription name for which permission will be granted to roles||
### `revoke-subscription-permission`
Revoke permissions to access subscription admin-api
Usage
```bash
$ pulsar-admin namespaces revoke-subscription-permission tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--role`|The client role to which to revoke the permissions||
|`--subscription`|The subscription name for which permission will be revoked to roles||
### `set-clusters`
Set replication clusters for a namespace
Usage
```bash
$ pulsar-admin namespaces set-clusters tenant/namespace options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-c`, `--clusters`|Replication clusters ID list (comma-separated values)||
### `get-clusters`
Get replication clusters for a namespace
Usage
```bash
$ pulsar-admin namespaces get-clusters tenant/namespace
```
### `get-backlog-quotas`
Get the backlog quota policies for a namespace
Usage
```bash
$ pulsar-admin namespaces get-backlog-quotas tenant/namespace
```
### `set-backlog-quota`
Set a backlog quota policy for a namespace
Usage
```bash
$ pulsar-admin namespaces set-backlog-quota tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-l`, `--limit`|The backlog size limit (for example `10M` or `16G`)||
|`-p`, `--policy`|The retention policy to enforce when the limit is reached. The valid options are: `producer_request_hold`, `producer_exception` or `consumer_backlog_eviction`|
Example
```bash
$ pulsar-admin namespaces set-backlog-quota my-tenant/my-ns \
--limit 2G \
--policy producer_request_hold
```
### `remove-backlog-quota`
Remove a backlog quota policy from a namespace
Usage
```bash
$ pulsar-admin namespaces remove-backlog-quota tenant/namespace
```
### `get-persistence`
Get the persistence policies for a namespace
Usage
```bash
$ pulsar-admin namespaces get-persistence tenant/namespace
```
### `set-persistence`
Set the persistence policies for a namespace
Usage
```bash
$ pulsar-admin namespaces set-persistence tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-a`, `--bookkeeper-ack-quorum`|The number of acks (guaranteed copies) to wait for each entry|0|
|`-e`, `--bookkeeper-ensemble`|The number of bookies to use for a topic|0|
|`-w`, `--bookkeeper-write-quorum`|How many writes to make of each entry|0|
|`-r`, `--ml-mark-delete-max-rate`|Throttling rate of mark-delete operation (0 means no throttle)||
### `get-message-ttl`
Get the message TTL for a namespace
Usage
```bash
$ pulsar-admin namespaces get-message-ttl tenant/namespace
```
### `set-message-ttl`
Set the message TTL for a namespace
Usage
```bash
$ pulsar-admin namespaces set-message-ttl tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-ttl`, `--messageTTL`|Message TTL in seconds. When the value is set to `0`, TTL is disabled. TTL is disabled by default. |0|
### `get-anti-affinity-group`
Get Anti-affinity group name for a namespace
Usage
```bash
$ pulsar-admin namespaces get-anti-affinity-group tenant/namespace
```
### `set-anti-affinity-group`
Set Anti-affinity group name for a namespace
Usage
```bash
$ pulsar-admin namespaces set-anti-affinity-group tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-g`, `--group`|Anti-affinity group name||
### `get-anti-affinity-namespaces`
Get Anti-affinity namespaces grouped with the given anti-affinity group name
Usage
```bash
$ pulsar-admin namespaces get-anti-affinity-namespaces options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-c`, `--cluster`|Cluster name||
|`-g`, `--group`|Anti-affinity group name||
|`-p`, `--tenant`|Tenant is only used for authorization. Client has to be admin of any of the tenant to access this api||
### `delete-anti-affinity-group`
Remove Anti-affinity group name for a namespace
Usage
```bash
$ pulsar-admin namespaces delete-anti-affinity-group tenant/namespace
```
### `get-retention`
Get the retention policy for a namespace
Usage
```bash
$ pulsar-admin namespaces get-retention tenant/namespace
```
### `set-retention`
Set the retention policy for a namespace
Usage
```bash
$ pulsar-admin namespaces set-retention tenant/namespace
```
Options
|Flag|Description|Default|
|----|---|---|
|`-s`, `--size`|The retention size limits (for example 10M, 16G or 3T). 0 means no retention and -1 means infinite size retention||
|`-t`, `--time`|The retention time in minutes, hours, days, or weeks. Examples: 100m, 13h, 2d, 5w. 0 means no retention and -1 means infinite time retention||
### `unload`
Unload a namespace or namespace bundle from the current serving broker.
Usage
```bash
$ pulsar-admin namespaces unload tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-b`, `--bundle`|\{start-boundary\}_\{end-boundary\} (e.g. 0x00000000_0xffffffff)||
### `split-bundle`
Split a namespace-bundle from the current serving broker
Usage
```bash
$ pulsar-admin namespaces split-bundle tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-b`, `--bundle`|\{start-boundary\}_\{end-boundary\} (e.g. 0x00000000_0xffffffff)||
|`-u`, `--unload`|Unload newly split bundles after splitting old bundle|false|
### `set-dispatch-rate`
Set message-dispatch-rate for all topics of the namespace
Usage
```bash
$ pulsar-admin namespaces set-dispatch-rate tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-bd`, `--byte-dispatch-rate`|The byte dispatch rate (default -1 will be overwrite if not passed)|-1|
|`-dt`, `--dispatch-rate-period`|The dispatch rate period in second type (default 1 second will be overwrite if not passed)|1|
|`-md`, `--msg-dispatch-rate`|The message dispatch rate (default -1 will be overwrite if not passed)|-1|
### `get-dispatch-rate`
Get configured message-dispatch-rate for all topics of the namespace (Disabled if value < 0)
Usage
```bash
$ pulsar-admin namespaces get-dispatch-rate tenant/namespace
```
### `set-replicator-dispatch-rate`
Set replicator message-dispatch-rate for all topics of the namespace
Usage
```bash
$ pulsar-admin namespaces set-replicator-dispatch-rate tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-bd`, `--byte-dispatch-rate`|The byte dispatch rate (default -1 will be overwrite if not passed)|-1|
|`-dt`, `--dispatch-rate-period`|The dispatch rate period in second type (default 1 second will be overwrite if not passed)|1|
|`-md`, `--msg-dispatch-rate`|The message dispatch rate (default -1 will be overwrite if not passed)|-1|
### `get-replicator-dispatch-rate`
Get replicator configured message-dispatch-rate for all topics of the namespace (Disabled if value < 0)
Usage
```bash
$ pulsar-admin namespaces get-replicator-dispatch-rate tenant/namespace
```
### `set-subscribe-rate`
Set subscribe-rate per consumer for all topics of the namespace
Usage
```bash
$ pulsar-admin namespaces set-subscribe-rate tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-sr`, `--subscribe-rate`|The subscribe rate (default -1 will be overwrite if not passed)|-1|
|`-st`, `--subscribe-rate-period`|The subscribe rate period in second type (default 30 second will be overwrite if not passed)|30|
### `get-subscribe-rate`
Get configured subscribe-rate per consumer for all topics of the namespace
Usage
```bash
$ pulsar-admin namespaces get-subscribe-rate tenant/namespace
```
### `set-subscription-dispatch-rate`
Set subscription message-dispatch-rate for all subscription of the namespace
Usage
```bash
$ pulsar-admin namespaces set-subscription-dispatch-rate tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-bd`, `--byte-dispatch-rate`|The byte dispatch rate (default -1 will be overwrite if not passed)|-1|
|`-dt`, `--dispatch-rate-period`|The dispatch rate period in second type (default 1 second will be overwrite if not passed)|1|
|`-md`, `--sub-msg-dispatch-rate`|The message dispatch rate (default -1 will be overwrite if not passed)|-1|
### `get-subscription-dispatch-rate`
Get subscription configured message-dispatch-rate for all topics of the namespace (Disabled if value < 0)
Usage
```bash
$ pulsar-admin namespaces get-subscription-dispatch-rate tenant/namespace
```
### `set-subscription-expiration-time`
Set the subscription expiration time for a namespace (in minutes).
Usage
```bash
$ pulsar-admin namespaces set-subscription-expiration-time tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-t`, `--time`|Subscription expiration time in minutes|0|
### `get-subscription-expiration-time`
Get the subscription expiration time for a namespace (in minutes).
Usage
```bash
$ pulsar-admin namespaces get-subscription-expiration-time tenant/namespace
```
### `clear-backlog`
Clear the backlog for a namespace
Usage
```bash
$ pulsar-admin namespaces clear-backlog tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-b`, `--bundle`|\{start-boundary\}_\{end-boundary\} (e.g. 0x00000000_0xffffffff)||
|`-force`, `--force`|Whether to force a clear backlog without prompt|false|
|`-s`, `--sub`|The subscription name||
### `unsubscribe`
Unsubscribe the given subscription on all destinations on a namespace
Usage
```bash
$ pulsar-admin namespaces unsubscribe tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-b`, `--bundle`|\{start-boundary\}_\{end-boundary\} (e.g. 0x00000000_0xffffffff)||
|`-s`, `--sub`|The subscription name||
### `set-encryption-required`
Enable or disable message encryption required for a namespace
Usage
```bash
$ pulsar-admin namespaces set-encryption-required tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-d`, `--disable`|Disable message encryption required|false|
|`-e`, `--enable`|Enable message encryption required|false|
### `set-delayed-delivery`
Set the delayed delivery policy on a namespace
Usage
```bash
$ pulsar-admin namespaces set-delayed-delivery tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-d`, `--disable`|Disable delayed delivery messages|false|
|`-e`, `--enable`|Enable delayed delivery messages|false|
|`-t`, `--time`|The tick time for when retrying on delayed delivery messages|1s|
### `get-delayed-delivery`
Get the delayed delivery policy on a namespace
Usage
```bash
$ pulsar-admin namespaces get-delayed-delivery-time tenant/namespace
```
Options
|Flag|Description|Default|
|----|---|---|
|`-t`, `--time`|The tick time for when retrying on delayed delivery messages|1s|
### `set-subscription-auth-mode`
Set subscription auth mode on a namespace
Usage
```bash
$ pulsar-admin namespaces set-subscription-auth-mode tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-m`, `--subscription-auth-mode`|Subscription authorization mode for Pulsar policies. Valid options are: [None, Prefix]||
### `get-max-producers-per-topic`
Get maxProducersPerTopic for a namespace
Usage
```bash
$ pulsar-admin namespaces get-max-producers-per-topic tenant/namespace
```
### `set-max-producers-per-topic`
Set maxProducersPerTopic for a namespace
Usage
```bash
$ pulsar-admin namespaces set-max-producers-per-topic tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-p`, `--max-producers-per-topic`|maxProducersPerTopic for a namespace|0|
### `get-max-consumers-per-topic`
Get maxConsumersPerTopic for a namespace
Usage
```bash
$ pulsar-admin namespaces get-max-consumers-per-topic tenant/namespace
```
### `set-max-consumers-per-topic`
Set maxConsumersPerTopic for a namespace
Usage
```bash
$ pulsar-admin namespaces set-max-consumers-per-topic tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-c`, `--max-consumers-per-topic`|maxConsumersPerTopic for a namespace|0|
### `get-max-consumers-per-subscription`
Get maxConsumersPerSubscription for a namespace
Usage
```bash
$ pulsar-admin namespaces get-max-consumers-per-subscription tenant/namespace
```
### `set-max-consumers-per-subscription`
Set maxConsumersPerSubscription for a namespace
Usage
```bash
$ pulsar-admin namespaces set-max-consumers-per-subscription tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-c`, `--max-consumers-per-subscription`|maxConsumersPerSubscription for a namespace|0|
### `get-max-unacked-messages-per-subscription`
Get maxUnackedMessagesPerSubscription for a namespace
Usage
```bash
$ pulsar-admin namespaces get-max-unacked-messages-per-subscription tenant/namespace
```
### `set-max-unacked-messages-per-subscription`
Set maxUnackedMessagesPerSubscription for a namespace
Usage
```bash
$ pulsar-admin namespaces set-max-unacked-messages-per-subscription tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-c`, `--max-unacked-messages-per-subscription`|maxUnackedMessagesPerSubscription for a namespace|-1|
### `get-max-unacked-messages-per-consumer`
Get maxUnackedMessagesPerConsumer for a namespace
Usage
```bash
$ pulsar-admin namespaces get-max-unacked-messages-per-consumer tenant/namespace
```
### `set-max-unacked-messages-per-consumer`
Set maxUnackedMessagesPerConsumer for a namespace
Usage
```bash
$ pulsar-admin namespaces set-max-unacked-messages-per-consumer tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-c`, `--max-unacked-messages-per-consumer`|maxUnackedMessagesPerConsumer for a namespace|-1|
### `get-compaction-threshold`
Get compactionThreshold for a namespace
Usage
```bash
$ pulsar-admin namespaces get-compaction-threshold tenant/namespace
```
### `set-compaction-threshold`
Set compactionThreshold for a namespace
Usage
```bash
$ pulsar-admin namespaces set-compaction-threshold tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-t`, `--threshold`|Maximum number of bytes in a topic backlog before compaction is triggered (eg: 10M, 16G, 3T). 0 disables automatic compaction|0|
### `get-offload-threshold`
Get offloadThreshold for a namespace
Usage
```bash
$ pulsar-admin namespaces get-offload-threshold tenant/namespace
```
### `set-offload-threshold`
Set offloadThreshold for a namespace
Usage
```bash
$ pulsar-admin namespaces set-offload-threshold tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-s`, `--size`|Maximum number of bytes stored in the pulsar cluster for a topic before data will start being automatically offloaded to longterm storage (eg: 10M, 16G, 3T, 100). Negative values disable automatic offload. 0 triggers offloading as soon as possible.|-1|
### `get-offload-deletion-lag`
Get offloadDeletionLag, in minutes, for a namespace
Usage
```bash
$ pulsar-admin namespaces get-offload-deletion-lag tenant/namespace
```
### `set-offload-deletion-lag`
Set offloadDeletionLag for a namespace
Usage
```bash
$ pulsar-admin namespaces set-offload-deletion-lag tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-l`, `--lag`|Duration to wait after offloading a ledger segment, before deleting the copy of that segment from cluster local storage. (eg: 10m, 5h, 3d, 2w).|-1|
### `clear-offload-deletion-lag`
Clear offloadDeletionLag for a namespace
Usage
```bash
$ pulsar-admin namespaces clear-offload-deletion-lag tenant/namespace
```
### `get-schema-autoupdate-strategy`
Get the schema auto-update strategy for a namespace
Usage
```bash
$ pulsar-admin namespaces get-schema-autoupdate-strategy tenant/namespace
```
### `set-schema-autoupdate-strategy`
Set the schema auto-update strategy for a namespace
Usage
```bash
$ pulsar-admin namespaces set-schema-autoupdate-strategy tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-c`, `--compatibility`|Compatibility level required for new schemas created via a Producer. Possible values (Full, Backward, Forward, None).|Full|
|`-d`, `--disabled`|Disable automatic schema updates.|false|
### `get-publish-rate`
Get the message publish rate for each topic in a namespace, in bytes as well as messages per second
Usage
```bash
$ pulsar-admin namespaces get-publish-rate tenant/namespace
```
### `set-publish-rate`
Set the message publish rate for each topic in a namespace
Usage
```bash
$ pulsar-admin namespaces set-publish-rate tenant/namespace options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-m`, `--msg-publish-rate`|Threshold for number of messages per second per topic in the namespace (-1 implies not set, 0 for no limit).|-1|
|`-b`, `--byte-publish-rate`|Threshold for number of bytes per second per topic in the namespace (-1 implies not set, 0 for no limit).|-1|
## `ns-isolation-policy`
Operations for managing namespace isolation policies.
Usage
```bash
$ pulsar-admin ns-isolation-policy subcommand
```
Subcommands
* `set`
* `get`
* `list`
* `delete`
* `brokers`
* `broker`
### `set`
Create/update a namespace isolation policy for a cluster. This operation requires Pulsar superuser privileges.
Usage
```bash
$ pulsar-admin ns-isolation-policy set cluster-name policy-name options
```
Options
|Flag|Description|Default|
|----|---|---|
|`--auto-failover-policy-params`|Comma-separated name=value auto failover policy parameters|[]|
|`--auto-failover-policy-type`|Auto failover policy type name. Currently available options: min_available.|[]|
|`--namespaces`|Comma-separated namespaces regex list|[]|
|`--primary`|Comma-separated primary broker regex list|[]|
|`--secondary`|Comma-separated secondary broker regex list|[]|
### `get`
Get the namespace isolation policy of a cluster. This operation requires Pulsar superuser privileges.
Usage
```bash
$ pulsar-admin ns-isolation-policy get cluster-name policy-name
```
### `list`
List all namespace isolation policies of a cluster. This operation requires Pulsar superuser privileges.
Usage
```bash
$ pulsar-admin ns-isolation-policy list cluster-name
```
### `delete`
Delete namespace isolation policy of a cluster. This operation requires superuser privileges.
Usage
```bash
$ pulsar-admin ns-isolation-policy delete
```
### `brokers`
List all brokers with namespace-isolation policies attached to it. This operation requires Pulsar super-user privileges.
Usage
```bash
$ pulsar-admin ns-isolation-policy brokers cluster-name
```
### `broker`
Get broker with namespace-isolation policies attached to it. This operation requires Pulsar super-user privileges.
Usage
```bash
$ pulsar-admin ns-isolation-policy broker cluster-name options
```
Options
|Flag|Description|Default|
|----|---|---|
|`--broker`|Broker name to get namespace-isolation policies attached to it||
## `topics`
Operations for managing Pulsar topics (both persistent and non persistent)
Usage
```bash
$ pulsar-admin topics subcommand
```
Subcommands
* `compact`
* `compaction-status`
* `offload`
* `offload-status`
* `create-partitioned-topic`
* `create-missed-partitions`
* `delete-partitioned-topic`
* `create`
* `get-partitioned-topic-metadata`
* `update-partitioned-topic`
* `list-partitioned-topics`
* `list`
* `terminate`
* `permissions`
* `grant-permission`
* `revoke-permission`
* `lookup`
* `bundle-range`
* `delete`
* `unload`
* `create-subscription`
* `subscriptions`
* `unsubscribe`
* `stats`
* `stats-internal`
* `info-internal`
* `partitioned-stats`
* `partitioned-stats-internal`
* `skip`
* `clear-backlog`
* `expire-messages`
* `expire-messages-all-subscriptions`
* `peek-messages`
* `reset-cursor`
* `get-message-by-id`
* `last-message-id`
### `compact`
Run compaction on the specified topic (persistent topics only)
Usage
```
$ pulsar-admin topics compact persistent://tenant/namespace/topic
```
### `compaction-status`
Check the status of a topic compaction (persistent topics only)
Usage
```bash
$ pulsar-admin topics compaction-status persistent://tenant/namespace/topic
```
Options
|Flag|Description|Default|
|----|---|---|
|`-w`, `--wait-complete`|Wait for compaction to complete|false|
### `offload`
Trigger offload of data from a topic to long-term storage (e.g. Amazon S3)
Usage
```bash
$ pulsar-admin topics offload persistent://tenant/namespace/topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-s`, `--size-threshold`|The maximum amount of data to keep in BookKeeper for the specific topic||
### `offload-status`
Check the status of data offloading from a topic to long-term storage
Usage
```bash
$ pulsar-admin topics offload-status persistent://tenant/namespace/topic op
```
Options
|Flag|Description|Default|
|---|---|---|
|`-w`, `--wait-complete`|Wait for compaction to complete|false|
### `create-partitioned-topic`
Create a partitioned topic. A partitioned topic must be created before producers can publish to it.
:::note
By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.
To disable this feature, set `brokerDeleteInactiveTopicsEnabled` to `false`.
To change the frequency of checking inactive topics, set `brokerDeleteInactiveTopicsFrequencySeconds` to your desired value.
For more information about these two parameters, see [here](reference-configuration.md#broker).
:::
Usage
```bash
$ pulsar-admin topics create-partitioned-topic {persistent|non-persistent}://tenant/namespace/topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-p`, `--partitions`|The number of partitions for the topic|0|
### `create-missed-partitions`
Try to create partitions for partitioned topic. The partitions of partition topic has to be created,
can be used by repair partitions when topic auto creation is disabled
Usage
```bash
$ pulsar-admin topics create-missed-partitions persistent://tenant/namespace/topic
```
### `delete-partitioned-topic`
Delete a partitioned topic. This will also delete all the partitions of the topic if they exist.
Usage
```bash
$ pulsar-admin topics delete-partitioned-topic {persistent|non-persistent}
```
### `create`
Creates a non-partitioned topic. A non-partitioned topic must explicitly be created by the user if allowAutoTopicCreation or createIfMissing is disabled.
:::note
By default, after 60 seconds of creation, topics are considered inactive and deleted automatically to prevent from generating trash data.
To disable this feature, set `brokerDeleteInactiveTopicsEnabled` to `false`.
To change the frequency of checking inactive topics, set `brokerDeleteInactiveTopicsFrequencySeconds` to your desired value.
For more information about these two parameters, see [here](reference-configuration.md#broker).
:::
Usage
```bash
$ pulsar-admin topics create {persistent|non-persistent}://tenant/namespace/topic
```
### `get-partitioned-topic-metadata`
Get the partitioned topic metadata. If the topic is not created or is a non-partitioned topic, this will return an empty topic with zero partitions.
Usage
```bash
$ pulsar-admin topics get-partitioned-topic-metadata {persistent|non-persistent}://tenant/namespace/topic
```
### `update-partitioned-topic`
Update existing non-global partitioned topic. New updating number of partitions must be greater than existing number of partitions.
Usage
```bash
$ pulsar-admin topics update-partitioned-topic {persistent|non-persistent}://tenant/namespace/topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-p`, `--partitions`|The number of partitions for the topic|0|
### `list-partitioned-topics`
Get the list of partitioned topics under a namespace.
Usage
```bash
$ pulsar-admin topics list-partitioned-topics tenant/namespace
```
### `list`
Get the list of topics under a namespace
Usage
```
$ pulsar-admin topics list tenant/cluster/namespace
```
### `terminate`
Terminate a persistent topic (disallow further messages from being published on the topic)
Usage
```bash
$ pulsar-admin topics terminate persistent://tenant/namespace/topic
```
### `permissions`
Get the permissions on a topic. Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at the namespace level combined (union) with any eventual specific permissions set on the topic.
Usage
```bash
$ pulsar-admin topics permissions topic
```
### `grant-permission`
Grant a new permission to a client role on a single topic
Usage
```bash
$ pulsar-admin topics grant-permission {persistent|non-persistent}://tenant/namespace/topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--actions`|Actions to be granted (`produce` or `consume`)||
|`--role`|The client role to which to grant the permissions||
### `revoke-permission`
Revoke permissions to a client role on a single topic. If the permission was not set at the topic level, but rather at the namespace level, this operation will return an error (HTTP status code 412).
Usage
```bash
$ pulsar-admin topics revoke-permission topic
```
### `lookup`
Look up a topic from the current serving broker
Usage
```bash
$ pulsar-admin topics lookup topic
```
### `bundle-range`
Get the namespace bundle which contains the given topic
Usage
```bash
$ pulsar-admin topics bundle-range topic
```
### `delete`
Delete a topic. The topic cannot be deleted if there are any active subscriptions or producers connected to the topic.
Usage
```bash
$ pulsar-admin topics delete topic
```
### `unload`
Unload a topic
Usage
```bash
$ pulsar-admin topics unload topic
```
### `create-subscription`
Create a new subscription on a topic.
Usage
```bash
$ pulsar-admin topics create-subscription [options] persistent://tenant/namespace/topic
```
Options
|Flag|Description|Default|
|---|---|---|
|`-m`, `--messageId`|messageId where to create the subscription. It can be either 'latest', 'earliest' or (ledgerId:entryId)|latest|
|`-s`, `--subscription`|Subscription to reset position on||
### `subscriptions`
Get the list of subscriptions on the topic
Usage
```bash
$ pulsar-admin topics subscriptions topic
```
### `unsubscribe`
Delete a durable subscriber from a topic
Usage
```bash
$ pulsar-admin topics unsubscribe topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-s`, `--subscription`|The subscription to delete||
|`-f`, `--force`|Disconnect and close all consumers and delete subscription forcefully|false|
### `stats`
Get the stats for the topic and its connected producers and consumers. All rates are computed over a 1-minute window and are relative to the last completed 1-minute period.
Usage
```bash
$ pulsar-admin topics stats topic
```
:::note
The unit of `storageSize` and `averageMsgSize` is Byte.
:::
### `stats-internal`
Get the internal stats for the topic
Usage
```bash
$ pulsar-admin topics stats-internal topic
```
### `info-internal`
Get the internal metadata info for the topic
Usage
```bash
$ pulsar-admin topics info-internal topic
```
### `partitioned-stats`
Get the stats for the partitioned topic and its connected producers and consumers. All rates are computed over a 1-minute window and are relative to the last completed 1-minute period.
Usage
```bash
$ pulsar-admin topics partitioned-stats topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`--per-partition`|Get per-partition stats|false|
### `partitioned-stats-internal`
Get the internal stats for the partitioned topic and its connected producers and consumers. All the rates are computed over a 1 minute window and are relative the last completed 1 minute period.
Usage
```bash
$ pulsar-admin topics partitioned-stats-internal topic
```
### `skip`
Skip some messages for the subscription
Usage
```bash
$ pulsar-admin topics skip topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-n`, `--count`|The number of messages to skip|0|
|`-s`, `--subscription`|The subscription on which to skip messages||
### `clear-backlog`
Clear backlog (skip all the messages) for the subscription
Usage
```bash
$ pulsar-admin topics clear-backlog topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-s`, `--subscription`|The subscription to clear||
### `expire-messages`
Expire messages that are older than the given expiry time (in seconds) for the subscription.
Usage
```bash
$ pulsar-admin topics expire-messages topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-t`, `--expireTime`|Expire messages older than the time (in seconds)|0|
|`-s`, `--subscription`|The subscription to skip messages on||
### `expire-messages-all-subscriptions`
Expire messages older than the given expiry time (in seconds) for all subscriptions
Usage
```bash
$ pulsar-admin topics expire-messages-all-subscriptions topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-t`, `--expireTime`|Expire messages older than the time (in seconds)|0|
### `peek-messages`
Peek some messages for the subscription.
Usage
```bash
$ pulsar-admin topics peek-messages topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-n`, `--count`|The number of messages|0|
|`-s`, `--subscription`|Subscription to get messages from||
### `reset-cursor`
Reset position for subscription to a position that is closest to timestamp or messageId.
Usage
```bash
$ pulsar-admin topics reset-cursor topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-s`, `--subscription`|Subscription to reset position on||
|`-t`, `--time`|The time in minutes to reset back to (or minutes, hours, days, weeks, etc.). Examples: `100m`, `3h`, `2d`, `5w`.||
|`-m`, `--messageId`| The messageId to reset back to (ledgerId:entryId). ||
### `last-message-id`
Get the last commit message id of topic.
Usage
```bash
$ pulsar-admin topics last-message-id persistent://tenant/namespace/topic
```
### `get-message-by-id`
Get message by ledger id and entry id
Usage
```bash
$ pulsar-admin topics get-message-by-id topic options
```
Options
|Flag|Description|Default|
|---|---|---|
|`-l`, `--ledgerId`|The ledger id |0|
|`-e`, `--entryId`|The entry id |0|
## `tenants`
Operations for managing tenants
Usage
```bash
$ pulsar-admin tenants subcommand
```
Subcommands
* `list`
* `get`
* `create`
* `update`
* `delete`
### `list`
List the existing tenants
Usage
```bash
$ pulsar-admin tenants list
```
### `get`
Gets the configuration of a tenant
Usage
```bash
$ pulsar-admin tenants get tenant-name
```
### `create`
Creates a new tenant
Usage
```bash
$ pulsar-admin tenants create tenant-name options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-r`, `--admin-roles`|Comma-separated admin roles||
|`-c`, `--allowed-clusters`|Comma-separated allowed clusters||
### `update`
Updates a tenant
Usage
```bash
$ pulsar-admin tenants update tenant-name options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-r`, `--admin-roles`|Comma-separated admin roles||
|`-c`, `--allowed-clusters`|Comma-separated allowed clusters||
### `delete`
Deletes an existing tenant
Usage
```bash
$ pulsar-admin tenants delete tenant-name
```
## `resource-quotas`
Operations for managing resource quotas
Usage
```bash
$ pulsar-admin resource-quotas subcommand
```
Subcommands
* `get`
* `set`
* `reset-namespace-bundle-quota`
### `get`
Get the resource quota for a specified namespace bundle, or default quota if no namespace/bundle is specified.
Usage
```bash
$ pulsar-admin resource-quotas get options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-b`, `--bundle`|A bundle of the form \{start-boundary\}_\{end_boundary\}. This must be specified together with -n/--namespace.||
|`-n`, `--namespace`|The namespace||
### `set`
Set the resource quota for the specified namespace bundle, or default quota if no namespace/bundle is specified.
Usage
```bash
$ pulsar-admin resource-quotas set options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-bi`, `--bandwidthIn`|The expected inbound bandwidth (in bytes/second)|0|
|`-bo`, `--bandwidthOut`|Expected outbound bandwidth (in bytes/second)0|
|`-b`, `--bundle`|A bundle of the form \{start-boundary\}_\{end_boundary\}. This must be specified together with -n/--namespace.||
|`-d`, `--dynamic`|Allow to be dynamically re-calculated (or not)|false|
|`-mem`, `--memory`|Expectred memory usage (in megabytes)|0|
|`-mi`, `--msgRateIn`|Expected incoming messages per second|0|
|`-mo`, `--msgRateOut`|Expected outgoing messages per second|0|
|`-n`, `--namespace`|The namespace as tenant/namespace, for example my-tenant/my-ns. Must be specified together with -b/--bundle.||
### `reset-namespace-bundle-quota`
Reset the specified namespace bundle's resource quota to a default value.
Usage
```bash
$ pulsar-admin resource-quotas reset-namespace-bundle-quota options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-b`, `--bundle`|A bundle of the form \{start-boundary\}_\{end_boundary\}. This must be specified together with -n/--namespace.||
|`-n`, `--namespace`|The namespace||
## `schemas`
Operations related to Schemas associated with Pulsar topics.
Usage
```
$ pulsar-admin schemas subcommand
```
Subcommands
* `upload`
* `delete`
* `get`
* `extract`
### `upload`
Upload the schema definition for a topic
Usage
```bash
$ pulsar-admin schemas upload persistent://tenant/namespace/topic options
```
Options
|Flag|Description|Default|
|----|---|---|
|`--filename`|The path to the schema definition file. An example schema file is available under conf directory.||
### `delete`
Delete the schema definition associated with a topic
Usage
```bash
$ pulsar-admin schemas delete persistent://tenant/namespace/topic
```
### `get`
Retrieve the schema definition associated with a topic (at a given version if version is supplied).
Usage
```bash
$ pulsar-admin schemas get persistent://tenant/namespace/topic options
```
Options
|Flag|Description|Default|
|----|---|---|
|`--version`|The version of the schema definition to retrieve for a topic.||
### `extract`
Provide the schema definition for a topic via Java class name contained in a JAR file
Usage
```bash
$ pulsar-admin schemas extract persistent://tenant/namespace/topic options
```
Options
|Flag|Description|Default|
|----|---|---|
|`-c`, `--classname`|The Java class name||
|`-j`, `--jar`|A path to the JAR file which contains the above Java class||
|`-t`, `--type`|The type of the schema (avro or json)||
### `get-offload-policies`
Get the offload policy for a namespace
Usage
```bash
$ pulsar-admin namespaces get-offload-policies tenant/namespace
```
### `set-offload-policies`
Set the offload policy for a namespace
Usage
```bash
$ pulsar-admin namespaces set-offload-policies tenant/namespace
```
Options
|Flag|Description|Default|
|----|---|---|
|`-d`, `--driver`|Driver to use to offload old data to long term storage,(Possible values: S3, aws-s3, google-cloud-storage)||
|`-r`, `--region`|The long term storage region||
|`-b`, `--bucket`|Bucket to place offloaded ledger into||
|`-e`, `--endpoint`|Alternative endpoint to connect to||
|`-mbs`, `--maxBlockSize`|Max block size|64MB|
|`-rbs`, `--readBufferSize`|Read buffer size|1MB|
|`-oat`, `--offloadAfterThreshold`|Offload after threshold size (eg: 1M, 5M)||
|`-oae`, `--offloadAfterElapsed`|Offload after elapsed in millis (or minutes, hours,days,weeks eg: 100m, 3h, 2d, 5w).||