Skip to main content

Pulsar admin CLI

tip

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

pulsar-admin command

Commands

  • broker-stats
  • brokers
  • clusters
  • functions
  • functions-worker
  • namespaces
  • ns-isolation-policy
  • sources For more information, see here
  • sinks For more information, see here
  • topics
  • tenants
  • resource-quotas
  • schemas

broker-stats

Operations to collect broker statistics

pulsar-admin broker-stats subcommand

Subcommands

  • allocator-stats
  • topics(destinations)
  • mbeans
  • monitoring-metrics
  • load-report

allocator-stats

Dump allocator stats

Usage

pulsar-admin broker-stats allocator-stats allocator-name

topics(destinations)

Dump topic stats

Usage

pulsar-admin broker-stats topics options

Options

FlagDescriptionDefault
-i, --indentIndent JSON outputfalse

mbeans

Dump Mbean stats

Usage

pulsar-admin broker-stats mbeans options

Options

FlagDescriptionDefault
-i, --indentIndent JSON outputfalse

monitoring-metrics

Dump metrics for monitoring

Usage

pulsar-admin broker-stats monitoring-metrics options

Options

FlagDescriptionDefault
-i, --indentIndent JSON outputfalse

load-report

Dump broker load-report

Usage

pulsar-admin broker-stats load-report

brokers

Operations about brokers

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

pulsar-admin brokers list cluster-name

leader-broker

Get the information of the leader broker

Usage

pulsar-admin brokers leader-broker

namespaces

List namespaces owned by the broker

Usage

pulsar-admin brokers namespaces cluster-name options

Options

FlagDescriptionDefault
--urlThe URL for the broker

update-dynamic-config

Update a broker's dynamic service configuration

Usage

pulsar-admin brokers update-dynamic-config options

Options

FlagDescriptionDefault
--configService configuration parameter name
--valueValue for the configuration parameter value specified using the --config flag

list-dynamic-config

Get the list of updatable configuration names

Usage

pulsar-admin brokers list-dynamic-config

delete-dynamic-config

Delete dynamic-serviceConfiguration of broker

Usage

pulsar-admin brokers delete-dynamic-config options

Options

FlagDescriptionDefault
--configService configuration parameter name

get-all-dynamic-config

Get all overridden dynamic-configuration values

Usage

pulsar-admin brokers get-all-dynamic-config

get-internal-config

Get internal configuration information

Usage

pulsar-admin brokers get-internal-config

get-runtime-config

Get runtime configuration values

Usage

pulsar-admin brokers get-runtime-config

healthcheck

Run a health check against the broker

Usage

pulsar-admin brokers healthcheck

clusters

Operations about clusters

Usage

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

pulsar-admin clusters get cluster-name

create

Provisions a new cluster. This operation requires Pulsar super-user privileges.

Usage

pulsar-admin clusters create cluster-name options

Options

FlagDescriptionDefault
--broker-urlThe URL for the broker service.
--broker-url-secureThe broker service URL for a secure connection
--urlservice-url
--url-secureservice-url for secure connection

update

Update the configuration for a cluster

Usage

pulsar-admin clusters update cluster-name options

Options

FlagDescriptionDefault
--broker-urlThe URL for the broker service.
--broker-url-secureThe broker service URL for a secure connection
--urlservice-url
--url-secureservice-url for secure connection

update cluster migration

Update the configuration for a cluster

Usage

pulsar-admin clusters update-cluster-migration cluster-name options

Options

FlagDescriptionDefault
--migratedIs cluster migrated.
--broker-urlNew cluster URL for the broker service.
--broker-url-secureNew cluster service URL for a secure connection
--urlservice-url
--url-secureservice-url for secure connection

delete

Deletes an existing cluster

Usage

pulsar-admin clusters delete cluster-name

list

List the existing clusters

Usage

pulsar-admin clusters list

update-peer-clusters

Update peer cluster names

Usage

pulsar-admin clusters update-peer-clusters cluster-name options

Options

FlagDescriptionDefault
--peer-clustersComma separated peer cluster names (Pass empty string "" to delete list)

get-peer-clusters

Get the list of peer clusters

Usage

pulsar-admin clusters get-peer-clusters

get-failure-domain

Get the configuration brokers of a failure domain

Usage

pulsar-admin clusters get-failure-domain cluster-name options

Options

FlagDescriptionDefault
--domain-nameThe 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

pulsar-admin clusters create-failure-domain cluster-name options

Options

FlagDescriptionDefault
--broker-listComma separated broker list
--domain-nameThe 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

pulsar-admin clusters update-failure-domain cluster-name options

Options

FlagDescriptionDefault
--broker-listComma separated broker list
--domain-nameThe failure domain name, which is a logical domain under a Pulsar cluster

delete-failure-domain

Delete an existing failure domain

Usage

pulsar-admin clusters delete-failure-domain cluster-name options

Options

FlagDescriptionDefault
--domain-nameThe failure domain name, which is a logical domain under a Pulsar cluster

list-failure-domains

List the existing failure domains for a cluster

Usage

pulsar-admin clusters list-failure-domains cluster-name

functions

A command-line interface for Pulsar Functions

Usage

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

pulsar-admin functions localrun options

Options

FlagDescriptionDefault
--cpuThe cpu in cores that need to be allocated per function instance(applicable only to docker runtime)
--ramThe ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)
--diskThe disk in bytes that need to be allocated per function instance(applicable only to docker runtime)
--auto-ackWhether or not the framework will automatically acknowledge messages
--subs-namePulsar source subscription name if user wants a specific subscription-name for input-topic consumer
--broker-service-url The URL of the Pulsar broker
--classnameThe function's class name
--custom-serde-inputsThe map of input topics to SerDe class names (as a JSON string)
--custom-schema-inputsThe map of input topics to Schema class names (as a JSON string)
--client-auth-paramsClient authentication param
--client-auth-pluginClient authentication plugin using which function-process can connect to broker
--function-config-fileThe absolute path to a YAML config file specifying the function's configuration
--hostname-verification-enabledEnable hostname verificationfalse
--instance-id-offsetStart the instanceIds from this offset0
--inputsThe function's input topic or topics (multiple topics can be specified as a comma-separated list)
--log-topicThe topic to which the function's logs are produced
--jarAbsolute 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)/function (package URL from packages management service)] from which worker can download the package.
--nameThe function's name
--namespaceThe function's namespace
--outputThe function's output topic (If none is specified, no output is written)
--output-serde-classnameThe SerDe class to be used for messages output by the function
--parallelismThe function's parallelism factor, i.e. the number of instances of the function to run1
--processing-guaranteesThe processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]ATLEAST_ONCE
--pyAbsolute path to the main Python file/Python Wheel file for the function (if the function is written in Python). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)/function (package URL from packages management service)] from which worker can download the package.
--goAbsolute path to the main Go executable binary for the function (if the function is written in Go). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)/function (package URL from packages management service)] from which worker can download the package.
--schema-typeThe built-in schema type or custom schema class name to be used for messages output by the function
--sliding-interval-countThe number of messages after which the window slides
--sliding-interval-duration-msThe time duration after which the window slides
--state-storage-service-urlThe URL for the state storage service. By default, it it set to the service URL of the Apache BookKeeper. This service URL must be added manually when the Pulsar Function runs locally.
--tenantThe function's tenant
--topics-patternThe 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-configUser-defined config key/values
--window-length-countThe number of messages per window
--window-length-duration-msThe time duration of the window in milliseconds
--dead-letter-topicThe topic where all messages which could not be processed successfully are sent
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--max-message-retriesHow many times should we try to process a message before giving up
--retain-orderingFunction consumes and processes messages in order
--retain-key-orderingFunction consumes and processes messages in key order
--timeout-msThe message timeout in milliseconds
--tls-allow-insecureAllow insecure tls connectionfalse
--tls-trust-cert-pathThe tls trust cert file path
--use-tlsUse tls connectionfalse
--producer-configThe custom producer configuration (as a JSON string)

create

Create a Pulsar Function in cluster mode (i.e. deploy it on a Pulsar cluster)

Usage

pulsar-admin functions create options

Options

FlagDescriptionDefault
--cpuThe cpu in cores that need to be allocated per function instance(applicable only to docker runtime)
--ramThe ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)
--diskThe disk in bytes that need to be allocated per function instance(applicable only to docker runtime)
--auto-ackWhether or not the framework will automatically acknowledge messages
--subs-namePulsar source subscription name if user wants a specific subscription-name for input-topic consumer
--classnameThe function's class name
--custom-serde-inputsThe map of input topics to SerDe class names (as a JSON string)
--custom-schema-inputsThe map of input topics to Schema class names (as a JSON string)
--function-config-fileThe absolute path to a YAML config file specifying the function's configuration
--inputsThe function's input topic or topics (multiple topics can be specified as a comma-separated list)
--log-topicThe topic to which the function's logs are produced
--jarAbsolute 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)/function (package URL from packages management service)] from which worker can download the package.
--nameThe function's name
--namespaceThe function's namespace
--outputThe function's output topic (If none is specified, no output is written)
--output-serde-classnameThe SerDe class to be used for messages output by the function
--parallelismThe function's parallelism factor, i.e. the number of instances of the function to run1
--processing-guaranteesThe processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]ATLEAST_ONCE
--pyAbsolute path to the main Python file/Python Wheel file for the function (if the function is written in Python). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)/function (package URL from packages management service)] from which worker can download the package.
--goAbsolute path to the main Go executable binary for the function (if the function is written in Go). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)/function (package URL from packages management service)] from which worker can download the package.
--schema-typeThe built-in schema type or custom schema class name to be used for messages output by the function
--sliding-interval-countThe number of messages after which the window slides
--sliding-interval-duration-msThe time duration after which the window slides
--tenantThe function's tenant
--topics-patternThe 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-configUser-defined config key/values
--window-length-countThe number of messages per window
--window-length-duration-msThe time duration of the window in milliseconds
--dead-letter-topicThe topic where all messages which could not be processed
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--max-message-retriesHow many times should we try to process a message before giving up
--retain-orderingFunction consumes and processes messages in order
--retain-key-orderingFunction consumes and processes messages in key order
--timeout-msThe message timeout in milliseconds
--producer-configThe custom producer configuration (as a JSON string)

delete

Delete a Pulsar Function that's running on a Pulsar cluster

Usage

pulsar-admin functions delete options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant

update

Update a Pulsar Function that's been deployed to a Pulsar cluster

Usage

pulsar-admin functions update options

Options

FlagDescriptionDefault
--cpuThe cpu in cores that need to be allocated per function instance(applicable only to docker runtime)
--ramThe ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime)
--diskThe disk in bytes that need to be allocated per function instance(applicable only to docker runtime)
--auto-ackWhether or not the framework will automatically acknowledge messages
--subs-namePulsar source subscription name if user wants a specific subscription-name for input-topic consumer
--classnameThe function's class name
--custom-serde-inputsThe map of input topics to SerDe class names (as a JSON string)
--custom-schema-inputsThe map of input topics to Schema class names (as a JSON string)
--function-config-fileThe absolute path to a YAML config file specifying the function's configuration
--inputsThe function's input topic or topics (multiple topics can be specified as a comma-separated list)
--log-topicThe topic to which the function's logs are produced
--jarAbsolute 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)/function (package URL from packages management service)] from which worker can download the package.
--nameThe function's name
--namespaceThe function's namespace
--outputThe function's output topic (If none is specified, no output is written)
--output-serde-classnameThe SerDe class to be used for messages output by the function
--parallelismThe function's parallelism factor, i.e. the number of instances of the function to run1
--processing-guaranteesThe processing guarantees (aka delivery semantics) applied to the function. Possible Values: [ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE]ATLEAST_ONCE
--pyAbsolute path to the main Python file/Python Wheel file for the function (if the function is written in Python). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)/function (package URL from packages management service)] from which worker can download the package.
--goAbsolute path to the main Go executable binary for the function (if the function is written in Go). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)/function (package URL from packages management service)] from which worker can download the package.
--schema-typeThe built-in schema type or custom schema class name to be used for messages output by the function
--sliding-interval-countThe number of messages after which the window slides
--sliding-interval-duration-msThe time duration after which the window slides
--tenantThe function's tenant
--topics-patternThe 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-configUser-defined config key/values
--window-length-countThe number of messages per window
--window-length-duration-msThe time duration of the window in milliseconds
--dead-letter-topicThe topic where all messages which could not be processed
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--max-message-retriesHow many times should we try to process a message before giving up
--retain-orderingFunction consumes and processes messages in order
--retain-key-orderingFunction consumes and processes messages in key order
--timeout-msThe message timeout in milliseconds
--producer-configThe custom producer configuration (as a JSON string)

get

Fetch information about a Pulsar Function

Usage

pulsar-admin functions get options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant

restart

Restart function instance

Usage

pulsar-admin functions restart options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--instance-idThe function instanceId (restart all instances if instance-id is not provided)
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant

stop

Stops function instance

Usage

pulsar-admin functions stop options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--instance-idThe function instanceId (stop all instances if instance-id is not provided)
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant

start

Starts a stopped function instance

Usage

pulsar-admin functions start options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--instance-idThe function instanceId (start all instances if instance-id is not provided)
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant

status

Check the current status of a Pulsar Function

Usage

pulsar-admin functions status options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--instance-idThe function instanceId (Get-status of all instances if instance-id is not provided)
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant

stats

Get the current stats of a Pulsar Function

Usage

pulsar-admin functions stats options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--instance-idThe function instanceId (Get-stats of all instances if instance-id is not provided)
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant

list

List all of the Pulsar Functions running under a specific tenant and namespace

Usage

pulsar-admin functions list options

Options

FlagDescriptionDefault
--namespaceThe function's namespace
--tenantThe function's tenant

querystate

Fetch the current state associated with a Pulsar Function running in cluster mode

Usage

pulsar-admin functions querystate options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
-k, --keyThe key for the state you want to fetch
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant
-w, --watchWatch for changes in the value associated with a key for a Pulsar Functionfalse

putstate

Put a key/value pair to the state associated with a Pulsar Function

Usage

pulsar-admin functions putstate options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the Pulsar Function
--nameThe name of a Pulsar Function
--namespaceThe namespace of a Pulsar Function
--tenantThe tenant of a Pulsar Function
-s, --stateThe FunctionState that needs to be put

trigger

Triggers the specified Pulsar Function with a supplied value

Usage

pulsar-admin functions trigger options

Options

FlagDescriptionDefault
--fqfnThe Fully Qualified Function Name (FQFN) for the function
--nameThe function's name
--namespaceThe function's namespace
--tenantThe function's tenant
--topicThe specific topic name that the function consumes from that you want to inject the data to
--trigger-fileThe path to the file that contains the data with which you'd like to trigger the function
--trigger-valueThe value with which you want to trigger the function

functions-worker

Operations to collect function-worker statistics

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

pulsar-admin functions-worker function-stats

get-cluster

Get all workers belonging to this cluster

Usage

pulsar-admin functions-worker get-cluster

get-cluster-leader

Get the leader of the worker cluster

Usage

pulsar-admin functions-worker get-cluster-leader

get-function-assignments

Get the assignments of the functions across the worker cluster

Usage

pulsar-admin functions-worker get-function-assignments

monitoring-metrics

Dump metrics for Monitoring

Usage

pulsar-admin functions-worker monitoring-metrics

namespaces

Operations for managing namespaces

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
  • remove-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
  • 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
  • set-max-subscriptions-per-topic
  • get-max-subscriptions-per-topic
  • remove-max-subscriptions-per-topic

list

Get the namespaces for a tenant

Usage

pulsar-admin namespaces list tenant-name

topics

Get the list of topics for a namespace

Usage

pulsar-admin namespaces topics tenant/namespace

policies

Get the configuration policies of a namespace

Usage

pulsar-admin namespaces policies tenant/namespace

create

Create a new namespace

Usage

pulsar-admin namespaces create tenant/namespace options

Options

FlagDescriptionDefault
-b, --bundlesThe number of bundles to activate0
-c, --clustersList of clusters this namespace will be assigned

delete

Deletes a namespace. The namespace needs to be empty

Usage

pulsar-admin namespaces delete tenant/namespace

set-deduplication

Enable or disable message deduplication on a namespace

Usage

pulsar-admin namespaces set-deduplication tenant/namespace options

Options

FlagDescriptionDefault
--enable, -eEnable message deduplication on the specified namespacefalse
--disable, -dDisable message deduplication on the specified namespacefalse

set-auto-topic-creation

Enable or disable autoTopicCreation for a namespace, overriding broker settings

Usage

pulsar-admin namespaces set-auto-topic-creation tenant/namespace options

Options

FlagDescriptionDefault
--enable, -eEnable allowAutoTopicCreation on namespacefalse
--disable, -dDisable allowAutoTopicCreation on namespacefalse
--type, -tType of topic to be auto-created. Possible values: (partitioned, non-partitioned)non-partitioned
--num-partitions, -nDefault 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

pulsar-admin namespaces remove-auto-topic-creation tenant/namespace

set-auto-subscription-creation

Enable autoSubscriptionCreation for a namespace, overriding broker settings

Usage

pulsar-admin namespaces set-auto-subscription-creation tenant/namespace options

Options

FlagDescriptionDefault
--enable, -eEnable allowAutoSubscriptionCreation on namespacefalse

remove-auto-subscription-creation

Remove override of autoSubscriptionCreation for a namespace

Usage

pulsar-admin namespaces remove-auto-subscription-creation tenant/namespace

permissions

Get the permissions on a namespace

Usage

pulsar-admin namespaces permissions tenant/namespace

grant-permission

Grant permissions on a namespace

Usage

pulsar-admin namespaces grant-permission tenant/namespace options

Options

FlagDescriptionDefault
--actionsActions to be granted (produce or consume)
--roleThe client role to which to grant the permissions

revoke-permission

Revoke permissions on a namespace

Usage

pulsar-admin namespaces revoke-permission tenant/namespace options

Options

FlagDescriptionDefault
--roleThe client role to which to revoke the permissions

grant-subscription-permission

Grant permissions to access subscription admin-api

Usage

pulsar-admin namespaces grant-subscription-permission tenant/namespace options

Options

FlagDescriptionDefault
--rolesThe client roles to which to grant the permissions (comma separated roles)
--subscriptionThe subscription name for which permission will be granted to roles

revoke-subscription-permission

Revoke permissions to access subscription admin-api

Usage

pulsar-admin namespaces revoke-subscription-permission tenant/namespace options

Options

FlagDescriptionDefault
--roleThe client role to which to revoke the permissions
--subscriptionThe subscription name for which permission will be revoked to roles

set-clusters

Set replication clusters for a namespace

Usage

pulsar-admin namespaces set-clusters tenant/namespace options

Options

FlagDescriptionDefault
-c, --clustersReplication clusters ID list (comma-separated values)

get-clusters

Get replication clusters for a namespace

Usage

pulsar-admin namespaces get-clusters tenant/namespace

get-backlog-quotas

Get the backlog quota policies for a namespace

Usage

pulsar-admin namespaces get-backlog-quotas tenant/namespace

set-backlog-quota

Set a backlog quota policy for a namespace

Usage

pulsar-admin namespaces set-backlog-quota tenant/namespace options

Options

FlagDescriptionDefault
-t, --typeThe backlog quota type. The valid options are: destination_storage and message_age.destination_storage
-l, --limitIf the backlog quota type is set to destination_storage, you can use this parameter to set the backlog size limit (for example, 10MB or 16GB). To disable the size limit, use a non-positive number.
-lt, --limitTimeIf the backlog quota type is set to message_age, you can use this parameter to set the time limit in seconds (or minutes, hours, days, weeks, e.g., 100m, 3h, 2d, 5w). To disable the time limit, use a non-positive number.
-p, --policyThe retention policy to enforce when the limit is reached. The valid options are: producer_request_hold, producer_exception, and consumer_backlog_eviction.

If you want to set both the time limit and the size limit, you need to set them separately.

Example

pulsar-admin namespaces set-backlog-quota my-tenant/my-ns \
--type destination_storage \
--limit 2G \
--policy producer_request_hold
pulsar-admin namespaces set-backlog-quota my-tenant/my-ns \
--limitTime 3600 \
--policy producer_request_hold \
--type message_age

remove-backlog-quota

Remove a backlog quota policy from a namespace

FlagDescriptionDefault
-t, --typeBacklog quota type to remove. The valid options are: destination_storage, message_agedestination_storage

Usage

pulsar-admin namespaces remove-backlog-quota tenant/namespace

get-persistence

Get the persistence policies for a namespace

Usage

pulsar-admin namespaces get-persistence tenant/namespace

set-persistence

Set the persistence policies for a namespace

Usage

pulsar-admin namespaces set-persistence tenant/namespace options

Options

FlagDescriptionDefault
-a, --bookkeeper-ack-quorumThe number of acks (guaranteed copies) to wait for each entry2
-e, --bookkeeper-ensembleThe number of bookies to use for a topic2
-w, --bookkeeper-write-quorumHow many writes to make of each entry2
-r, --ml-mark-delete-max-rateThrottling rate of mark-delete operation (0 means no throttle)0

get-message-ttl

Get the message TTL for a namespace

Usage

pulsar-admin namespaces get-message-ttl tenant/namespace

set-message-ttl

Set the message TTL for a namespace

Usage

pulsar-admin namespaces set-message-ttl tenant/namespace options

Options

FlagDescriptionDefault
-ttl, --messageTTLMessage TTL in seconds (or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w). When the value is set to 0, TTL is disabled. TTL is disabled by default.0

remove-message-ttl

Remove the message TTL for a namespace.

Usage

pulsar-admin namespaces remove-message-ttl tenant/namespace

get-anti-affinity-group

Get Anti-affinity group name for a namespace

Usage

pulsar-admin namespaces get-anti-affinity-group tenant/namespace

set-anti-affinity-group

Set Anti-affinity group name for a namespace

Usage

pulsar-admin namespaces set-anti-affinity-group tenant/namespace options

Options

FlagDescriptionDefault
-g, --groupAnti-affinity group name

get-anti-affinity-namespaces

Get Anti-affinity namespaces grouped with the given anti-affinity group name

Usage

pulsar-admin namespaces get-anti-affinity-namespaces options

Options

FlagDescriptionDefault
-c, --clusterCluster name
-g, --groupAnti-affinity group name
-p, --tenantTenant 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

pulsar-admin namespaces delete-anti-affinity-group tenant/namespace

get-retention

Get the retention policy that is applied to each topic within the specified namespace

Usage

pulsar-admin namespaces get-retention tenant/namespace

set-retention

Set the retention policy for each topic within the specified namespace

Usage

pulsar-admin namespaces set-retention tenant/namespace

Options

FlagDescriptionDefault
-s, --sizeThe retention size limits (for example 10M, 16G or 3T) for each topic in the namespace. 0 means no retention and -1 means infinite size retention
-t, --timeThe retention time with optional time unit suffix. For example, 100m, 3h, 2d, 5w. If the time unit is not specified, the default unit is seconds. For example, -t 120 sets retention to 2 minutes. 0 means no retention and -1 means infinite time retention

unload

Unload a namespace or namespace bundle from the current serving broker.

Usage

pulsar-admin namespaces unload tenant/namespace options

Options

FlagDescriptionDefault
-b, --bundle{start-boundary}_{end-boundary} (e.g. 0x00000000_0xffffffff)

split-bundle

Split a namespace-bundle from the current serving broker

Usage

pulsar-admin namespaces split-bundle tenant/namespace options

Options

FlagDescriptionDefault
-b, --bundle{start-boundary}_{end-boundary} (e.g. 0x00000000_0xffffffff)
-u, --unloadUnload newly split bundles after splitting old bundlefalse

set-dispatch-rate

Set message-dispatch-rate for all topics of the namespace

Usage

pulsar-admin namespaces set-dispatch-rate tenant/namespace options

Options

FlagDescriptionDefault
-bd, --byte-dispatch-rateThe byte dispatch rate (default -1 will be overwrite if not passed)-1
-dt, --dispatch-rate-periodThe dispatch rate period in second type (default 1 second will be overwrite if not passed)1
-md, --msg-dispatch-rateThe 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

pulsar-admin namespaces get-dispatch-rate tenant/namespace

set-replicator-dispatch-rate

Set replicator message-dispatch-rate for all topics of the namespace

Usage

pulsar-admin namespaces set-replicator-dispatch-rate tenant/namespace options

Options

FlagDescriptionDefault
-bd, --byte-dispatch-rateThe byte dispatch rate (default -1 will be overwrite if not passed)-1
-dt, --dispatch-rate-periodThe dispatch rate period in second type (default 1 second will be overwrite if not passed)1
-md, --msg-dispatch-rateThe 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

pulsar-admin namespaces get-replicator-dispatch-rate tenant/namespace

set-subscribe-rate

Set subscribe-rate per consumer for all topics of the namespace

Usage

pulsar-admin namespaces set-subscribe-rate tenant/namespace options

Options

FlagDescriptionDefault
-sr, --subscribe-rateThe subscribe rate (default -1 will be overwrite if not passed)-1
-st, --subscribe-rate-periodThe 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

pulsar-admin namespaces get-subscribe-rate tenant/namespace

set-subscription-dispatch-rate

Set subscription message-dispatch-rate for all subscription of the namespace

Usage

pulsar-admin namespaces set-subscription-dispatch-rate tenant/namespace options

Options

FlagDescriptionDefault
-bd, --byte-dispatch-rateThe byte dispatch rate (default -1 will be overwrite if not passed)-1
-dt, --dispatch-rate-periodThe dispatch rate period in second type (default 1 second will be overwrite if not passed)1
-md, --sub-msg-dispatch-rateThe 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

pulsar-admin namespaces get-subscription-dispatch-rate tenant/namespace

clear-backlog

Clear the backlog for a namespace

Usage

pulsar-admin namespaces clear-backlog tenant/namespace options

Options

FlagDescriptionDefault
-b, --bundle{start-boundary}_{end-boundary} (e.g. 0x00000000_0xffffffff)
-force, --forceWhether to force a clear backlog without promptfalse
-s, --subThe subscription name

unsubscribe

Unsubscribe the given subscription on all destinations on a namespace

Usage

pulsar-admin namespaces unsubscribe tenant/namespace options

Options

FlagDescriptionDefault
-b, --bundle{start-boundary}_{end-boundary} (e.g. 0x00000000_0xffffffff)
-s, --subThe subscription name

set-encryption-required

Enable or disable message encryption required for a namespace

Usage

pulsar-admin namespaces set-encryption-required tenant/namespace options

Options

FlagDescriptionDefault
-d, --disableDisable message encryption requiredfalse
-e, --enableEnable message encryption requiredfalse

set-delayed-delivery

Set the delayed delivery policy on a namespace

Usage

pulsar-admin namespaces set-delayed-delivery tenant/namespace options

Options

FlagDescriptionDefault
-d, --disableDisable delayed delivery messagesfalse
-e, --enableEnable delayed delivery messagesfalse
-t, --timeThe tick time for when retrying on delayed delivery messages1s

get-delayed-delivery

Get the delayed delivery policy on a namespace

Usage

pulsar-admin namespaces get-delayed-delivery-time tenant/namespace

Options

FlagDescriptionDefault
-t, --timeThe tick time for when retrying on delayed delivery messages1s

set-subscription-auth-mode

Set subscription auth mode on a namespace

Usage

pulsar-admin namespaces set-subscription-auth-mode tenant/namespace options

Options

FlagDescriptionDefault
-m, --subscription-auth-modeSubscription authorization mode for Pulsar policies. Valid options are: [None, Prefix]

get-max-producers-per-topic

Get maxProducersPerTopic for a namespace

Usage

pulsar-admin namespaces get-max-producers-per-topic tenant/namespace

set-max-producers-per-topic

Set maxProducersPerTopic for a namespace

Usage

pulsar-admin namespaces set-max-producers-per-topic tenant/namespace options

Options

FlagDescriptionDefault
-p, --max-producers-per-topicmaxProducersPerTopic for a namespace0

get-max-consumers-per-topic

Get maxConsumersPerTopic for a namespace

Usage

pulsar-admin namespaces get-max-consumers-per-topic tenant/namespace

set-max-consumers-per-topic

Set maxConsumersPerTopic for a namespace

Usage

pulsar-admin namespaces set-max-consumers-per-topic tenant/namespace options

Options

FlagDescriptionDefault
-c, --max-consumers-per-topicmaxConsumersPerTopic for a namespace0

get-max-consumers-per-subscription

Get maxConsumersPerSubscription for a namespace

Usage

pulsar-admin namespaces get-max-consumers-per-subscription tenant/namespace

set-max-consumers-per-subscription

Set maxConsumersPerSubscription for a namespace

Usage

pulsar-admin namespaces set-max-consumers-per-subscription tenant/namespace options

Options

FlagDescriptionDefault
-c, --max-consumers-per-subscriptionmaxConsumersPerSubscription for a namespace0

get-max-unacked-messages-per-subscription

Get maxUnackedMessagesPerSubscription for a namespace

Usage

pulsar-admin namespaces get-max-unacked-messages-per-subscription tenant/namespace

set-max-unacked-messages-per-subscription

Set maxUnackedMessagesPerSubscription for a namespace

Usage

pulsar-admin namespaces set-max-unacked-messages-per-subscription tenant/namespace options

Options

FlagDescriptionDefault
-c, --max-unacked-messages-per-subscriptionmaxUnackedMessagesPerSubscription for a namespace-1

get-max-unacked-messages-per-consumer

Get maxUnackedMessagesPerConsumer for a namespace

Usage

pulsar-admin namespaces get-max-unacked-messages-per-consumer tenant/namespace

set-max-unacked-messages-per-consumer

Set maxUnackedMessagesPerConsumer for a namespace

Usage

pulsar-admin namespaces set-max-unacked-messages-per-consumer tenant/namespace options

Options

FlagDescriptionDefault
-c, --max-unacked-messages-per-consumermaxUnackedMessagesPerConsumer for a namespace-1

get-compaction-threshold

Get compactionThreshold for a namespace

Usage

pulsar-admin namespaces get-compaction-threshold tenant/namespace

set-compaction-threshold

Set compactionThreshold for a namespace

Usage

pulsar-admin namespaces set-compaction-threshold tenant/namespace options

Options

FlagDescriptionDefault
-t, --thresholdMaximum number of bytes in a topic backlog before compaction is triggered (eg: 10M, 16G, 3T). 0 disables automatic compaction0

get-offload-threshold

Get offloadThreshold for a namespace

Usage

pulsar-admin namespaces get-offload-threshold tenant/namespace

set-offload-threshold

Set offloadThreshold for a namespace

Usage

pulsar-admin namespaces set-offload-threshold tenant/namespace options

Options

FlagDescriptionDefault
-s, --sizeMaximum 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

pulsar-admin namespaces get-offload-deletion-lag tenant/namespace

set-offload-deletion-lag

Set offloadDeletionLag for a namespace

Usage

pulsar-admin namespaces set-offload-deletion-lag tenant/namespace options

Options

FlagDescriptionDefault
-l, --lagDuration 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

pulsar-admin namespaces clear-offload-deletion-lag tenant/namespace

get-schema-autoupdate-strategy

Get the schema auto-update strategy for a namespace

Usage

pulsar-admin namespaces get-schema-autoupdate-strategy tenant/namespace

set-schema-autoupdate-strategy

Set the schema auto-update strategy for a namespace

Usage

pulsar-admin namespaces set-schema-autoupdate-strategy tenant/namespace options

Options

FlagDescriptionDefault
-c, --compatibilityCompatibility level required for new schemas created via a Producer. Possible values (Full, Backward, Forward, None).Full
-d, --disabledDisable 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

pulsar-admin namespaces get-publish-rate tenant/namespace

set-publish-rate

Set the message publish rate for each topic in a namespace

Usage

pulsar-admin namespaces set-publish-rate tenant/namespace options

Options

FlagDescriptionDefault
-m, --msg-publish-rateThreshold for number of messages per second per topic in the namespace (-1 implies not set, 0 for no limit).-1
-b, --byte-publish-rateThreshold for number of bytes per second per topic in the namespace (-1 implies not set, 0 for no limit).-1

set-offload-policies

Set the offload policy for a namespace.

Usage

pulsar-admin namespaces set-offload-policies tenant/namespace options

Options

FlagDescriptionDefault
-d, --driverDriver to use to offload old data to long term storage,(Possible values: S3, aws-s3, google-cloud-storage)
-r, --regionThe long term storage region
-b, --bucketBucket to place offloaded ledger into
-e, --endpointAlternative endpoint to connect to
-i, --aws-idAWS Credential Id to use when using driver S3 or aws-s3
-s, --aws-secretAWS Credential Secret to use when using driver S3 or aws-s3
-ro, --s3-roleS3 Role used for STSAssumeRoleSessionCredentialsProvider using driver S3 or aws-s3
-rsn, --s3-role-session-nameS3 role session name used for STSAssumeRoleSessionCredentialsProvider using driver S3 or aws-s3
-mbs, --maxBlockSizeMax block size64MB
-rbs, --readBufferSizeRead buffer size1MB
-oat, --offloadAfterThresholdOffload after threshold size (eg: 1M, 5M)
-oae, --offloadAfterElapsedOffload after elapsed in millis (or minutes, hours,days,weeks eg: 100m, 3h, 2d, 5w).

get-offload-policies

Get the offload policy for a namespace.

Usage

pulsar-admin namespaces get-offload-policies tenant/namespace

set-max-subscriptions-per-topic

Set the maximum subscription per topic for a namespace.

Usage

pulsar-admin namespaces set-max-subscriptions-per-topic tenant/namespace

get-max-subscriptions-per-topic

Get the maximum subscription per topic for a namespace.

Usage

pulsar-admin namespaces get-max-subscriptions-per-topic tenant/namespace

remove-max-subscriptions-per-topic

Remove the maximum subscription per topic for a namespace.

Usage

pulsar-admin namespaces remove-max-subscriptions-per-topic tenant/namespace

ns-isolation-policy

Operations for managing namespace isolation policies.

Usage

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

pulsar-admin ns-isolation-policy set cluster-name policy-name options

Options

FlagDescriptionDefault
--auto-failover-policy-paramsComma-separated name=value auto failover policy parameters[]
--auto-failover-policy-typeAuto failover policy type name. Currently available options: min_available.[]
--namespacesComma-separated namespaces regex list[]
--primaryComma-separated primary broker regex list[]
--secondaryComma-separated secondary broker regex list[]

get

Get the namespace isolation policy of a cluster. This operation requires Pulsar superuser privileges.

Usage

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

pulsar-admin ns-isolation-policy list cluster-name

delete

Delete namespace isolation policy of a cluster. This operation requires superuser privileges.

Usage

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

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

pulsar-admin ns-isolation-policy broker cluster-name options

Options

FlagDescriptionDefault
--brokerBroker name to get namespace-isolation policies attached to it

topics

Operations for managing Pulsar topics (both persistent and non-persistent).

Usage

pulsar-admin topics subcommand

From Pulsar 2.7.0, some namespace-level policies are available on topic level. To enable topic-level policy in Pulsar, you need to configure the following parameters in the broker.conf file.

systemTopicEnabled=true
topicLevelPoliciesEnabled=true

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
  • get-backlog-quotas
  • set-backlog-quota
  • remove-backlog-quota
  • get-persistence
  • set-persistence
  • remove-persistence
  • get-message-ttl
  • set-message-ttl
  • remove-message-ttl
  • get-deduplication
  • set-deduplication
  • remove-deduplication
  • get-retention
  • set-retention
  • remove-retention
  • get-dispatch-rate
  • set-dispatch-rate
  • remove-dispatch-rate
  • get-max-unacked-messages-per-subscription
  • set-max-unacked-messages-per-subscription
  • remove-max-unacked-messages-per-subscription
  • get-max-unacked-messages-per-consumer
  • set-max-unacked-messages-per-consumer
  • remove-max-unacked-messages-per-consumer
  • get-delayed-delivery
  • set-delayed-delivery
  • remove-delayed-delivery
  • get-max-producers
  • set-max-producers
  • remove-max-producers
  • get-max-consumers
  • set-max-consumers
  • remove-max-consumers
  • get-compaction-threshold
  • set-compaction-threshold
  • remove-compaction-threshold
  • get-offload-policies
  • set-offload-policies
  • remove-offload-policies
  • get-inactive-topic-policies
  • set-inactive-topic-policies
  • remove-inactive-topic-policies
  • set-max-subscriptions
  • get-max-subscriptions
  • remove-max-subscriptions

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

pulsar-admin topics compaction-status persistent://tenant/namespace/topic

Options

FlagDescriptionDefault
-w, --wait-completeWait for compaction to completefalse

offload

Trigger offload of data from a topic to long-term storage (e.g. Amazon S3)

Usage

pulsar-admin topics offload persistent://tenant/namespace/topic options

Options

FlagDescriptionDefault
-s, --size-thresholdThe 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

pulsar-admin topics offload-status persistent://tenant/namespace/topic op

Options

FlagDescriptionDefault
-w, --wait-completeWait for compaction to completefalse

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.

Usage

pulsar-admin topics create-partitioned-topic {persistent|non-persistent}://tenant/namespace/topic options

Options

FlagDescriptionDefault
-p, --partitionsThe number of partitions for the topic0

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

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

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.

Usage

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

pulsar-admin topics get-partitioned-topic-metadata {persistent|non-persistent}://tenant/namespace/topic

update-partitioned-topic

Update existing partitioned topic. New updating number of partitions must be greater than existing number of partitions.

Usage

pulsar-admin topics update-partitioned-topic {persistent|non-persistent}://tenant/namespace/topic options

Options

FlagDescriptionDefault
-p, --partitionsThe number of partitions for the topic0

list-partitioned-topics

Get the list of partitioned topics under a namespace.

Usage

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

pulsar-admin topics terminate persistent://tenant/namespace/topic

partitioned-terminate

Terminate a persistent topic (disallow further messages from being published on the topic)

Usage

pulsar-admin topics partitioned-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

pulsar-admin topics permissions topic

grant-permission

Grant a new permission to a client role on a single topic

Usage

pulsar-admin topics grant-permission {persistent|non-persistent}://tenant/namespace/topic options

Options

FlagDescriptionDefault
--actionsActions to be granted (produce or consume)
--roleThe 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

pulsar-admin topics revoke-permission topic

lookup

Look up a topic from the current serving broker

Usage

pulsar-admin topics lookup topic

bundle-range

Get the namespace bundle which contains the given topic

Usage

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

pulsar-admin topics delete topic

unload

Unload a topic

Usage

pulsar-admin topics unload topic

create-subscription

Create a new subscription on a topic.

Usage

pulsar-admin topics create-subscription [options] persistent://tenant/namespace/topic

Options

FlagDescriptionDefault
-m, --messageIdmessageId where to create the subscription. It can be either 'latest', 'earliest' or (ledgerId:entryId)latest
-s, --subscriptionSubscription to reset position on

subscriptions

Get the list of subscriptions on the topic

Usage

pulsar-admin topics subscriptions topic

unsubscribe

Delete a durable subscriber from a topic

Usage

pulsar-admin topics unsubscribe topic options

Options

FlagDescriptionDefault
-s, --subscriptionThe subscription to delete
-f, --forceDisconnect and close all consumers and delete subscription forcefullyfalse

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

pulsar-admin topics stats topic

Options

FlagDescriptionDefault
-etb,--get-earliest-time-in-backlogSet to true to get the earliest time in backlogfalse
-gpb,--get-precise-backlogSet to true to get precise backlogfalse
-sbs, --get-subscription-backlog-sizeSet to true to get backlog size for each subscription, locking requiredfalse
note

The unit of storageSize and averageMsgSize is Byte.

stats-internal

Get the internal stats for the topic

Usage

pulsar-admin topics stats-internal topic

info-internal

Get the internal metadata info for the topic

Usage

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

pulsar-admin topics partitioned-stats topic options

Options

FlagDescriptionDefault
-gpb,--get-precise-backlogSet to true to get precise backlogfalse
-sbs, --get-subscription-backlog-sizeSet to true to get backlog size for each subscription, locking requiredfalse
--per-partitionGet per-partition statsfalse

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

pulsar-admin topics partitioned-stats-internal topic

skip

Skip some messages for the subscription

Usage

pulsar-admin topics skip topic options

Options

FlagDescriptionDefault
-n, --countThe number of messages to skip0
-s, --subscriptionThe subscription on which to skip messages

clear-backlog

Clear backlog (skip all the messages) for the subscription

Usage

pulsar-admin topics clear-backlog topic options

Options

FlagDescriptionDefault
-s, --subscriptionThe subscription to clear

expire-messages

Expire messages that are older than the given expiry time (in seconds) for the subscription.

Usage

pulsar-admin topics expire-messages topic options

Options

FlagDescriptionDefault
-t, --expireTimeExpire messages older than the time in seconds (or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w)0
-s, --subscriptionThe subscription to skip messages on

expire-messages-all-subscriptions

Expire messages older than the given expiry time (in seconds) for all subscriptions

Usage

pulsar-admin topics expire-messages-all-subscriptions topic options

Options

FlagDescriptionDefault
-t, --expireTimeExpire messages older than the time in seconds (or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w)0

peek-messages

Peek some messages for the subscription.

Usage

pulsar-admin topics peek-messages topic options

Options

FlagDescriptionDefault
-n, --countThe number of messages0
-s, --subscriptionSubscription to get messages from

reset-cursor

Reset position for subscription to a position that is closest to timestamp or messageId.

Usage

pulsar-admin topics reset-cursor topic options

Options

FlagDescriptionDefault
-s, --subscriptionSubscription to reset position on
-t, --timeThe time in minutes to reset back to (or minutes, hours, days, weeks, etc.). Examples: 100m, 3h, 2d, 5w.
-m, --messageIdThe message ID to reset back to (ledgerId:entryId or earliest or latest).

get-message-by-id

Get message by ledger id and entry id

Usage

pulsar-admin topics get-message-by-id topic options

Options

FlagDescriptionDefault
-l, --ledgerIdThe ledger id0
-e, --entryIdThe entry id0

last-message-id

Get the last commit message ID of the topic.

Usage

pulsar-admin topics last-message-id persistent://tenant/namespace/topic

get-backlog-quotas

Get the backlog quota policies for a topic.

Usage

pulsar-admin topics get-backlog-quotas tenant/namespace/topic

set-backlog-quota

Set a backlog quota policy for a topic.

FlagDescriptionDefault
-l, --limitThe backlog size limit (for example 10M or 16G)
-lt, --limitTimeTime limit in second (or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w), non-positive number for disabling time limit. (for example 3600 for 1 hour)
-p, --policyThe retention policy to enforce when the limit is reached. The valid options are: producer_request_hold, producer_exception or consumer_backlog_eviction
-t, --typeBacklog quota type to set. The valid options are: destination_storage, message_agedestination_storage

Usage

pulsar-admin topics set-backlog-quota tenant/namespace/topic options

Example

pulsar-admin namespaces set-backlog-quota my-tenant/my-ns/my-topic \
--limit 2G \
--policy producer_request_hold
pulsar-admin namespaces set-backlog-quota my-tenant/my-ns/my-topic \
--limitTime 3600 \
--policy producer_request_hold \
--type message_age

remove-backlog-quota

Remove a backlog quota policy from a topic.

FlagDescriptionDefault
-t, --typeBacklog quota type to remove. The valid options are: destination_storage, message_agedestination_storage

Usage

pulsar-admin topics remove-backlog-quota tenant/namespace/topic

get-persistence

Get the persistence policies for a topic.

Usage

pulsar-admin topics get-persistence tenant/namespace/topic

set-persistence

Set the persistence policies for a topic.

Usage

pulsar-admin topics set-persistence tenant/namespace/topic options

Options

FlagDescriptionDefault
-e, --bookkeeper-ensembleNumber of bookies to use for a topic2
-w, --bookkeeper-write-quorumHow many writes to make of each entry2
-a, --bookkeeper-ack-quorumNumber of acks (guaranteed copies) to wait for each entry2
-r, --ml-mark-delete-max-rateThrottling rate of mark-delete operation (0 means no throttle)0

remove-persistence

Remove the persistence policy for a topic.

Usage

pulsar-admin topics remove-persistence tenant/namespace/topic

get-message-ttl

Get the message TTL for a topic.

Usage

pulsar-admin topics get-message-ttl tenant/namespace/topic

set-message-ttl

Set the message TTL for a topic.

Usage

pulsar-admin topics set-message-ttl tenant/namespace/topic options

Options

FlagDescriptionDefault
-t, --ttlMessage TTL for a topic in second (or minutes, hours, days, weeks eg: 100m, 3h, 2d, 5w), allowed range from 1 to Integer.MAX_VALUE0

remove-message-ttl

Remove the message TTL for a topic.

Usage

pulsar-admin topics remove-message-ttl tenant/namespace/topic

Options

FlagDescriptionDefault
--enable, -eEnable message deduplication on the specified topic.false
--disable, -dDisable message deduplication on the specified topic.false

get-deduplication

Get a deduplication policy for a topic.

Usage

pulsar-admin topics get-deduplication tenant/namespace/topic

set-deduplication

Set a deduplication policy for a topic.

Usage

pulsar-admin topics set-deduplication tenant/namespace/topic options

remove-deduplication

Remove a deduplication policy for a topic.

Usage

pulsar-admin topics remove-deduplication tenant/namespace/topic

tenants

Operations for managing tenants

Usage

pulsar-admin tenants subcommand

Subcommands

  • list
  • get
  • create
  • update
  • delete

list

List the existing tenants

Usage

pulsar-admin tenants list

get

Gets the configuration of a tenant

Usage

pulsar-admin tenants get tenant-name

create

Creates a new tenant

Usage

pulsar-admin tenants create tenant-name options

Options

FlagDescriptionDefault
-r, --admin-rolesComma-separated admin roles
-c, --allowed-clustersComma-separated allowed clusters

update

Updates a tenant

Usage

pulsar-admin tenants update tenant-name options

Options

FlagDescriptionDefault
-r, --admin-rolesComma-separated admin roles
-c, --allowed-clustersComma-separated allowed clusters

delete

Deletes an existing tenant

Usage

pulsar-admin tenants delete tenant-name

Options

FlagDescriptionDefault
-f, --forceDelete a tenant forcefully by deleting all namespaces under it.false

resource-quotas

Operations for managing resource quotas

Usage

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

pulsar-admin resource-quotas get options

Options

FlagDescriptionDefault
-b, --bundleA bundle of the form {start-boundary}_{end_boundary}. This must be specified together with -n/--namespace.
-n, --namespaceThe namespace

set

Set the resource quota for the specified namespace bundle, or default quota if no namespace/bundle is specified.

Usage

pulsar-admin resource-quotas set options

Options

FlagDescriptionDefault
-bi, --bandwidthInThe expected inbound bandwidth (in bytes/second)0
-bo, --bandwidthOutExpected outbound bandwidth (in bytes/second)0
-b, --bundleA bundle of the form {start-boundary}_{end_boundary}. This must be specified together with -n/--namespace.
-d, --dynamicAllow to be dynamically re-calculated (or not)false
-mem, --memoryExpectred memory usage (in megabytes)0
-mi, --msgRateInExpected incoming messages per second0
-mo, --msgRateOutExpected outgoing messages per second0
-n, --namespaceThe 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

pulsar-admin resource-quotas reset-namespace-bundle-quota options

Options

FlagDescriptionDefault
-b, --bundleA bundle of the form {start-boundary}_{end_boundary}. This must be specified together with -n/--namespace.
-n, --namespaceThe 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

pulsar-admin schemas upload persistent://tenant/namespace/topic options

Options

FlagDescriptionDefault
--filenameThe 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

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

pulsar-admin schemas get persistent://tenant/namespace/topic options

Options

FlagDescriptionDefault
--versionThe 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

pulsar-admin schemas extract persistent://tenant/namespace/topic options

Options

FlagDescriptionDefault
-c, --classnameThe Java class name
-j, --jarAbsolute path to the JAR file which contains the above Java class
-t, --typeThe type of the schema (avro or json)