id: version-2.2.1-pulsar-admin title: Pulsar admin CLI sidebar_label: Pulsar Admin CLI original_id: pulsar-admin

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
  • namespaces
  • ns-isolation-policy
  • sink
  • source
  • topics
  • tenants
  • resource-quotas
  • schemas

broker-stats

Operations to collect broker statistics

$ pulsar-admin broker-stats subcommand

Subcommands

  • allocator-stats
  • destinations
  • mbeans
  • monitoring-metrics
  • topics

allocator-stats

Dump allocator stats

Usage

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

destinations

Dump topic stats

Usage

$ pulsar-admin broker-stats destinations 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

topics

Dump topic stats

Usage

$ pulsar-admin broker-stats topics options

Options

FlagDescriptionDefault
-i, --indentIndent JSON outputfalse

brokers

Operations about brokers

$ pulsar-admin brokers subcommand

Subcommands

  • list
  • namespaces
  • update-dynamic-config
  • list-dynamic-config
  • get-all-dynamic-config
  • get-internal-config

list

List active brokers of the cluster

Usage

$ pulsar-admin brokers list cluster-name

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 list of updatable configuration name

Usage

$ pulsar-admin brokers list-dynamic-config

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

clusters

Operations about clusters

Usage

$ pulsar-admin clusters subcommand

Subcommands

  • get
  • create
  • update
  • delete
  • list
  • update-peer-clusters

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

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 peer-cluster-names

functions

A command-line interface for Pulsar Functions

Usage

$ pulsar-admin functions subcommand

Subcommands

  • localrun
  • create
  • delete
  • update
  • get
  • getstatus
  • list
  • querystate
  • trigger

localrun

Run a Pulsar Function locally

Usage

$ pulsar-admin functions localrun options

Options

FlagDescriptionDefault
--cpuThe CPU to allocate to each function instance (in number of cores)
--ramThe RAM to allocate to each function instance (in bytes)
--diskThe disk space to allocate to each function instance (in bytes)
--auto-ackLet the functions framework manage acking
--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 name of the function’s class
--custom-serde-inputsA map of the input topic to SerDe name
--custom-schema-inputsA map of the input topic to Schema class name
--client-auth-paramsClient Authentication Params
--function-config-fileThe path of the YAML config file used to configure the function
--hostname-verification-enabledEnable Hostname verification
--instance-id-offsetInstance ids will be assigned starting from this offset
--inputsThe input topics for the function (as a comma-separated list if more than one topic is desired)
--log-topicThe topic to which logs from this function are published
--jarA path to the JAR file for the function (if the function is written in Java)
--nameThe name of the function
--namespaceThe function’s namespace
--outputThe name of the topic to which the function publishes its output (if any)
--output-serde-classnameThe SerDe class used for the function’s output
--parallelismThe function’s parallelism factor, i.e. the number of instances of the function to run1
--processing-guaranteesThe processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCEATLEAST_ONCE
--pyThe path of the Python file containing the function’s processing logic (if the function is written in Python)
--schema-typeSchema Type to be used for storing output messages
--sliding-interval-countNumber of messages after which the window ends
--sliding-interval-duration-msThe time duration after which the window slides
--state-storage-service-urlThe service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)
--tenantThe function’s tenant
--topics-patternThe topic pattern to consume from list of topics under a namespace that match the pattern
--user-configA user-supplied config value, set as a key/value pair. You can set multiple user config values.
--window-length-countThe number of messages per window.
--window-length-duration-msThe time duration of the window in milliseconds.

create

Creates a new Pulsar Function on the target infrastructure

Usage

$ pulsar-admin functions create options

Options

FlagDescriptionDefault
--cpuThe CPU to allocate to each function instance (in number of cores)
--ramThe RAM to allocate to each function instance (in bytes)
--diskThe disk space to allocate to each function instance (in bytes)
--auto-ackLet the functions framework manage acking
--subs-namePulsar source subscription name if user wants a specific subscription-name for input-topic consumer
--classnameThe name of the function’s class
--custom-serde-inputsA map of the input topic to SerDe name
--custom-schema-inputsA map of the input topic to Schema class name
--function-config-fileThe path of the YAML config file used to configure the function
--inputsThe input topics for the function (as a comma-separated list if more than one topic is desired)
--log-topicThe topic to which logs from this function are published
--jarA path to the JAR file for the function (if the function is written in Java)
--nameThe name of the function
--namespaceThe function’s namespace
--outputThe name of the topic to which the function publishes its output (if any)
--output-serde-classnameThe SerDe class used for the function’s output
--parallelismThe function’s parallelism factor, i.e. the number of instances of the function to run1
--processing-guaranteesThe processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCEATLEAST_ONCE
--pyThe path of the Python file containing the function’s processing logic (if the function is written in Python)
--schema-typeSchema Type to be used for storing output messages
--sliding-interval-countNumber of messages after which the window ends
--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
--user-configA user-supplied config value, set as a key/value pair. You can set multiple user config values.
--window-length-countThe number of messages per window.
--window-length-duration-msThe time duration of the window in milliseconds.

delete

Deletes an existing Pulsar Function

Usage

$ pulsar-admin functions delete options

Options

FlagDescriptionDefault
--nameThe name of the function to delete
--namespaceThe namespace of the function to delete
--tenantThe tenant of the function to delete

update

Updates an existing Pulsar Function

Usage

$ pulsar-admin functions update options

Options

FlagDescriptionDefault
--cpuThe CPU to allocate to each function instance (in number of cores)
--ramThe RAM to allocate to each function instance (in bytes)
--diskThe disk space to allocate to each function instance (in bytes)
--auto-ackLet the functions framework manage acking
--subs-namePulsar source subscription name if user wants a specific subscription-name for input-topic consumer
--classnameThe name of the function’s class
--custom-serde-inputsA map of the input topic to SerDe name
--custom-schema-inputsA map of the input topic to Schema class name
--function-config-fileThe path of the YAML config file used to configure the function
--inputsThe input topics for the function (as a comma-separated list if more than one topic is desired)
--log-topicThe topic to which logs from this function are published
--jarA path to the JAR file for the function (if the function is written in Java)
--nameThe name of the function
--namespaceThe function’s namespace
--outputThe name of the topic to which the function publishes its output (if any)
--output-serde-classnameThe SerDe class used for the function’s output
--parallelismThe function’s parallelism factor, i.e. the number of instances of the function to run1
--processing-guaranteesThe processing guarantees applied to the function. Can be one of: ATLEAST_ONCE, ATMOST_ONCE, or EFFECTIVELY_ONCEATLEAST_ONCE
--pyThe path of the Python file containing the function’s processing logic (if the function is written in Python)
--schema-typeSchema Type to be used for storing output messages
--sliding-interval-countNumber of messages after which the window ends
--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
--user-configA user-supplied config value, set as a key/value pair. You can set multiple user config values.
--window-length-countThe number of messages per window.
--window-length-duration-msThe time duration of the window in milliseconds.

get

Fetch information about an existing Pulsar Function

Usage

$ pulsar-admin functions get options

Options

FlagDescriptionDefault
--nameThe name of the function
--namespaceThe namespace of the function
--tenantThe tenant of the function

restart

Restarts either all instances or one particular instance of a function

Usage

$ pulsar-admin functions restart options

Options

FlagDescriptionDefault
--nameThe name of the function
--namespaceThe namespace of the function
--tenantThe tenant of the function
--instance-idThe function instanceId; restart all instances if instance-id is not provided

stop

Temporary stops function instance. (If worker restarts then it reassigns and starts functiona again)

Usage

$ pulsar-admin functions stop options

Options

FlagDescriptionDefault
--nameThe name of the function
--namespaceThe namespace of the function
--tenantThe tenant of the function
--instance-idThe function instanceId; stop all instances if instance-id is not provided

getstatus

Get the status of an existing Pulsar Function

Usage

$ pulsar-admin functions getstatus options

Options

FlagDescriptionDefault
--nameThe name of the function
--namespaceThe namespace of the function
--tenantThe tenant of the function
--instance-idThe function instanceId; get status of all instances if instance-id is not provided

list

List all Pulsar Functions for a specific tenant and namespace

Usage

$ pulsar-admin functions list options

Options

FlagDescriptionDefault
--namespaceThe namespace of the function
--tenantThe tenant of the function

querystate

Retrieve the current state of a Pulsar Function by key

Usage

$ pulsar-admin functions querystate options

Options

FlagDescriptionDefault
-k, --keyThe key for the state you want to fetch
--nameThe name of the function whose state you want to query
--namespaceThe namespace of the function whose state you want to query
--tenantThe tenant of the function whose state you want to query
-u, --storage-service-urlThe service URL for the function’s state storage (if the function uses a storage system different from the Apache BookKeeper cluster used by Pulsar)
-w, --watchIf set, watching for state changes is enabledfalse

trigger

Triggers the specified Pulsar Function with a supplied value or file data

Usage

$ pulsar-admin functions trigger options

Options

FlagDescriptionDefault
--nameThe name of the Pulsar Function to trigger
--namespaceThe namespace of the Pulsar Function to trigger
--tenantThe tenant of the Pulsar Function to trigger
--trigger-fileThe path to the file containing the data with which the Pulsar Function is to be triggered
--trigger-valueThe value with which the Pulsar Function is to be triggered

namespaces

Operations for managing namespaces

$ pulsar-admin namespaces subcommand

Subcommands

  • list
  • list-cluster
  • destinations
  • policies
  • create
  • delete
  • set-deduplication
  • permissions
  • grant-permission
  • revoke-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-retention
  • set-retention
  • unload
  • clear-backlog
  • unsubscribe
  • get-compaction-threshold
  • set-compaction-threshold
  • get-offload-threshold
  • set-offload-threshold

list

Get the namespaces for a tenant

Usage

$ pulsar-admin namespaces list tenant-name

list-cluster

Get the namespaces for a tenant in the cluster

Usage

$ pulsar-admin namespaces list-cluster tenant/cluster

destinations

Get the destinations for a namespace

Usage

$ pulsar-admin namespaces destinations tenant/cluster/namespace

policies

Get the policies of a namespace

Usage

$ pulsar-admin namespaces policies tenant/cluster/namespace

create

Create a new namespace

Usage

$ pulsar-admin namespaces create tenant/cluster/namespace options

Options

FlagDescriptionDefault
-b , --bundlesThe number of bundles to activate0

delete

Deletes a namespace

Usage

$ pulsar-admin namespaces delete tenant/cluster/namespace

set-deduplication

Enable or disable message deduplication on a namespace

Usage

$ pulsar-admin namespaces set-deduplication tenant/cluster/namespace options

Options

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

permissions

Get the permissions on a namespace

Usage

$ pulsar-admin namespaces permissions tenant/cluster/namespace

grant-permission

Grant permissions on a namespace

Usage

$ pulsar-admin namespaces grant-permission tenant/cluster/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/cluster/namespace options

Options

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

set-clusters

Set replication clusters for a namespace

Usage

$ pulsar-admin namespaces set-clusters tenant/cluster/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/cluster/namespace

get-backlog-quotas

Get the backlog quota policies for a namespace

Usage

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

set-backlog-quota

Set a backlog quota for a namespace

Usage

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

Options

FlagDescriptionDefault
-l, --limitThe backlog size limit (for example 10M or 16G)
-p, --policyThe retention policy to enforce when the limit is reached. The valid options are: producer_request_hold, producer_exception or consumer_backlog_eviction

Example

$ pulsar-admin namespaces set-backlog-quota my-prop/my-cluster/my-ns \
--limit 2G \
--policy producer_request_hold

remove-backlog-quota

Remove a backlog quota policy from a namespace

Usage

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

get-persistence

Get the persistence policies for a namespace

Usage

$ pulsar-admin namespaces get-persistence tenant/cluster/namespace

set-persistence

Set the persistence policies for a namespace

Usage

$ pulsar-admin namespaces set-persistence tenant/cluster/namespace options

Options

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

get-message-ttl

Get the message TTL for a namespace

Usage

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

set-message-ttl

Set the message TTL for a namespace

Usage

$ pulsar-admin namespaces set-message-ttl options

Options

FlagDescriptionDefault
-ttl, --messageTTLMeMessage TTL in seconds. When the value is set to 0, TTL is disabled. TTL is disabled by default.0

get-retention

Get the retention policy for a namespace

Usage

$ pulsar-admin namespaces get-retention tenant/cluster/namespace

set-retention

Set the retention policy for a namespace

Usage

$ pulsar-admin namespaces set-retention tenant/cluster/namespace options

Options

FlagDescriptionDefault
-s, --sizeThe retention size limits (for example 10M, 16G or 3T). 0 means no retention and -1 means infinite size retention
-t, --timeThe 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

$ pulsar-admin namespaces unload tenant/cluster/namespace options

Options

FlagDescriptionDefault
-b, --bundle

clear-backlog

Clear the backlog for a namespace

Usage

$ pulsar-admin namespaces clear-backlog tenant/cluster/namespace options

Options

FlagDescriptionDefault
-b, --bundle
-f, --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/cluster/namespace options

Options

FlagDescriptionDefault
-b, --bundle
-s, --subThe subscription name

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

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

ns-isolation-policy

Operations for managing namespace isolation policies.

Usage

$ pulsar-admin ns-isolation-policy subcommand

Subcommands

  • set
  • get
  • list
  • delete

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

sink

An interface for managing Pulsar IO sinks (egress data from Pulsar)

Usage

$ pulsar-admin sink subcommand

Subcommands

  • create
  • update
  • delete
  • localrun
  • available-sinks

create

Submit a Pulsar IO sink connector to run in a Pulsar cluster

Usage

$ pulsar-admin sink create options

Options

FlagDescriptionDefault
--classnameThe sink’s Java class name
--cpuThe CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--custom-serde-inputsThe map of input topics to SerDe class names (as a JSON string)
--custom-schema-inputsThe map of input topics to Schema types or class names (as a JSON string)
--diskThe disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--inputsThe sink’s input topic(s) (multiple topics can be specified as a comma-separated list)
--archivePath to the archive file for the sink
--nameThe sink’s name
--namespaceThe sink’s namespace
--parallelism“The sink’s parallelism factor (i.e. the number of sink instances to run).”
--processing-guarantees“The processing guarantees (aka delivery semantics) applied to the sink. Available values: ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE.”
--ramThe RAM (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--sink-configSink config key/values
--sink-config-fileThe path to a YAML config file specifying the sink’s configuration
--sink-typeThe built-in sinks's connector provider. The sink-type parameter of the currently built-in connectors is determined by the setting of the name parameter specified in the pulsar-io.yaml file.
--topics-patternTopicsPattern to consume from list of topics under a namespace that match the pattern.
--tenantThe sink’s tenant
--auto-ackLet the functions framework manage acking
--timeout-msThe message timeout in milliseconds

update

Submit a Pulsar IO sink connector to run in a Pulsar cluster

Usage

$ pulsar-admin sink update options

Options

FlagDescriptionDefault
--classnameThe sink’s Java class name
--cpuThe CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--custom-serde-inputsThe map of input topics to SerDe class names (as a JSON string)
--custom-schema-inputsThe map of input topics to Schema types or class names (as a JSON string)
--diskThe disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--inputsThe sink’s input topic(s) (multiple topics can be specified as a comma-separated list)
--archivePath to the archive file for the sink
--nameThe sink’s name
--namespaceThe sink’s namespace
--parallelism“The sink’s parallelism factor (i.e. the number of sink instances to run).”
--processing-guarantees“The processing guarantees (aka delivery semantics) applied to the sink. Available values: ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE.”
--ramThe RAM (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--sink-configSink config key/values
--sink-config-fileThe path to a YAML config file specifying the sink’s configuration
--sink-typeThe built-in sinks's connector provider. The sink-type parameter of the currently built-in connectors is determined by the setting of the name parameter specified in the pulsar-io.yaml file.
--topics-patternTopicsPattern to consume from list of topics under a namespace that match the pattern.
--tenantThe sink’s tenant

delete

Stops a Pulsar IO sink

Usage

$ pulsar-admin sink delete options

Options

FlagDescriptionDefault
--nameThe name of the function to delete
--namespaceThe namespace of the function to delete
--tenantThe tenant of the function to delete

localrun

Run the Pulsar sink locally (rather than in the Pulsar cluster)

Usage

$ pulsar-admin sink localrun options

Options

FlagDescriptionDefault
--broker-service-urlThe URL for the Pulsar broker
--classnameThe sink’s Java class name
--cpuThe CPU (in cores) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--custom-serde-inputsThe map of input topics to SerDe class names (as a JSON string)
--custom-schema-inputsThe map of input topics to Schema types or class names (as a JSON string)
--diskThe disk (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--inputsThe sink’s input topic(s) (multiple topics can be specified as a comma-separated list)
--archivePath to the archive file for the sink
--nameThe sink’s name
--namespaceThe sink’s namespace
--parallelism“The sink’s parallelism factor (i.e. the number of sink instances to run).”
--processing-guarantees“The processing guarantees (aka delivery semantics) applied to the sink. Available values: ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE.”
--ramThe RAM (in bytes) that needs to be allocated per sink instance (applicable only to the Docker runtime)
--sink-configSink config key/values
--sink-config-fileThe path to a YAML config file specifying the sink’s configuration
--sink-typeThe built-in sinks's connector provider. The sink-type parameter of the currently built-in connectors is determined by the setting of the name parameter specified in the pulsar-io.yaml file.
--topics-patternTopicsPattern to consume from list of topics under a namespace that match the pattern.
--tenantThe sink’s tenant
--auto-ackLet the functions framework manage acking
--timeout-msThe message timeout in milliseconds

available-sinks

Get a list of all built-in sink connectors

Usage

$ pulsar-admin sink available-sinks

source

An interface for managing Pulsar IO sources (ingress data into Pulsar)

Usage

$ pulsar-admin source subcommand

Subcommands

  • create
  • update
  • delete
  • localrun
  • available-sources

create

Submit a Pulsar IO source connector to run in a Pulsar cluster

Usage

$ pulsar-admin source create options

Options

FlagDescriptionDefault
--classnameThe source’s Java class name
--cpuThe CPU (in cores) that needs to be allocated per source instance (applicable only to the Docker runtime)
--deserialization-classnameThe SerDe classname for the source
--destination-topic-nameThe Pulsar topic to which data is sent
--diskThe disk (in bytes) that needs to be allocated per source instance (applicable only to the Docker runtime)
--archiveThe path to the NAR archive for the Source
--nameThe source’s name
--namespaceThe source’s namespace
--parallelismThe source’s parallelism factor (i.e. the number of source instances to run).
--processing-guarantees“The processing guarantees (aka delivery semantics) applied to the source. Available values: ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE.”
--ramThe RAM (in bytes) that needs to be allocated per source instance (applicable only to the Docker runtime)
--schema-typeThe schema type (either a builtin schema like ‘avro’, ‘json’, etc, or custom Schema class name to be used to encode messages emitted from the source
--source-typeOne of the built-in source's connector provider. The source-type parameter of the currently built-in connectors is determined by the setting of the name parameter specified in the pulsar-io.yaml file.
--source-configSource config key/values
--source-config-fileThe path to a YAML config file specifying the source’s configuration
--tenantThe source’s tenant

update

Update a already submitted Pulsar IO source connector

Usage

$ pulsar-admin source update options

Options

FlagDescriptionDefault
--classnameThe source’s Java class name
--cpuThe CPU (in cores) that needs to be allocated per source instance (applicable only to the Docker runtime)
--deserialization-classnameThe SerDe classname for the source
--destination-topic-nameThe Pulsar topic to which data is sent
--diskThe disk (in bytes) that needs to be allocated per source instance (applicable only to the Docker runtime)
--archiveThe path to the NAR archive for the Source
--nameThe source’s name
--namespaceThe source’s namespace
--parallelismThe source’s parallelism factor (i.e. the number of source instances to run).
--processing-guarantees“The processing guarantees (aka delivery semantics) applied to the source. Available values: ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE.”
--ramThe RAM (in bytes) that needs to be allocated per source instance (applicable only to the Docker runtime)
--schema-typeThe schema type (either a builtin schema like ‘avro’, ‘json’, etc, or custom Schema class name to be used to encode messages emitted from the source
--source-typeOne of the built-in source's connector provider. The source-type parameter of the currently built-in connectors is determined by the setting of the name parameter specified in the pulsar-io.yaml file.
--source-configSource config key/values
--source-config-fileThe path to a YAML config file specifying the source’s configuration
--tenantThe source’s tenant

delete

Stops a Pulsar IO source

Usage

$ pulsar-admin source delete options

Options

FlagDescriptionDefault
--nameThe name of the function to delete
--namespaceThe namespace of the function to delete
--tenantThe tenant of the function to delete

localrun

Run the Pulsar source locally (rather than in the Pulsar cluster)

Usage

$ pulsar-admin source localrun options

Options

FlagDescriptionDefault
--classnameThe source’s Java class name
--cpuThe CPU (in cores) that needs to be allocated per source instance (applicable only to the Docker runtime)
--deserialization-classnameThe SerDe classname for the source
--destination-topic-nameThe Pulsar topic to which data is sent
--diskThe disk (in bytes) that needs to be allocated per source instance (applicable only to the Docker runtime)
--archiveThe path to the NAR archive for the Source
--nameThe source’s name
--namespaceThe source’s namespace
--parallelismThe source’s parallelism factor (i.e. the number of source instances to run).
--processing-guarantees“The processing guarantees (aka delivery semantics) applied to the source. Available values: ATLEAST_ONCE, ATMOST_ONCE, EFFECTIVELY_ONCE.”
--ramThe RAM (in bytes) that needs to be allocated per source instance (applicable only to the Docker runtime)
--schema-typeThe schema type (either a builtin schema like ‘avro’, ‘json’, etc, or custom Schema class name to be used to encode messages emitted from the source
--source-typeOne of the built-in source's connector provider. The source-type parameter of the currently built-in connectors is determined by the setting of the name parameter specified in the pulsar-io.yaml file.
--source-configSource config key/values
--source-config-fileThe path to a YAML config file specifying the source’s configuration
--tenantThe source’s tenant

available-sources

Get a list of all built-in source connectors

Usage

$ pulsar-admin source available-sources

topics

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

Usage

$ pulsar-admin topics subcommand

Subcommands

  • compact
  • compaction-status
  • offload
  • offload-status
  • create-partitioned-topic
  • delete-partitioned-topic
  • get-partitioned-topic-metadata
  • update-partitioned-topic
  • list
  • list-in-bundle
  • terminate
  • permissions
  • grant-permission
  • revoke-permission
  • lookup
  • bundle-range
  • delete
  • unload
  • subscriptions
  • unsubscribe
  • stats
  • stats-internal
  • info-internal
  • partitioned-stats
  • skip
  • skip-all
  • expire-messages
  • expire-messages-all-subscriptions
  • peek-messages
  • reset-cursor

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.

Usage

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

Options

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

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}

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 non-global 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

Get the list of topics under a namespace

Usage

$ pulsar-admin topics list tenant/cluster/namespace

list-in-bundle

Get a list of non-persistent topics present under a namespace bundle

Usage

$ pulsar-admin topics list-in-bundle tenant/namespace options

Options

FlagDescriptionDefault
-b, --bundleThe bundle range

terminate

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

Usage

$ 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

$ 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

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

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

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
--per-partitionGet per-partition statsfalse

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

skip-all

Skip all the messages for the subscription

Usage

$ pulsar-admin topics skip-all 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)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)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 closest to timestamp

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.

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

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

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.