Skip to main content

Pulsar admin CLI

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.