You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apex.apache.org by da...@apache.org on 2016/03/04 20:48:55 UTC

[34/50] [abbrv] incubator-apex-core git commit: SPOI-6747 SPOI-6751 SPOI-6752 #resolve Adding configuration guide; Adding dtcli guide; Adding dtgateway guide

SPOI-6747 SPOI-6751 SPOI-6752 #resolve Adding configuration guide; Adding dtcli guide; Adding dtgateway guide


Project: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/commit/00936117
Tree: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/tree/00936117
Diff: http://git-wip-us.apache.org/repos/asf/incubator-apex-core/diff/00936117

Branch: refs/heads/master
Commit: 0093611724d053e9e1c923a592f1745520a64d99
Parents: 2a7d7c0
Author: sashadt <sa...@datatorrent.com>
Authored: Wed Nov 11 17:59:07 2015 -0800
Committer: Thomas Weise <th...@datatorrent.com>
Committed: Sun Feb 28 22:46:40 2016 -0800

----------------------------------------------------------------------
 apex.md  |   2 +-
 dtcli.md | 274 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 274 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-apex-core/blob/00936117/apex.md
----------------------------------------------------------------------
diff --git a/apex.md b/apex.md
index b6813a5..215a957 100644
--- a/apex.md
+++ b/apex.md
@@ -11,4 +11,4 @@ Apache Apex (incubating) is the industry’s only open source, enterprise-grade
 
 For additional information visit [Apache Apex](http://apex.incubator.apache.org/).
 
-![](images/apex_logo.png)
+[![](images/apex_logo.png)](http://apex.incubator.apache.org/)

http://git-wip-us.apache.org/repos/asf/incubator-apex-core/blob/00936117/dtcli.md
----------------------------------------------------------------------
diff --git a/dtcli.md b/dtcli.md
index d30962b..813a27f 100644
--- a/dtcli.md
+++ b/dtcli.md
@@ -1 +1,273 @@
-# Coming Soon
+Apache Apex Command Line Interface
+================================================================================
+
+dtCli, the Apache Apex command line interface, can be used to launch, monitor, and manage
+Apache Apex applications.  dtCli is a wrapper around the [REST API](dtgateway_api.md) provided by dtGatway, and
+provides a developer friendly way of interacting with Apache Apex platform. The CLI enables a much higher level of feature set by
+hiding deep details of REST API.  Another advantage of dtCli is to provide scope, by connecting and executing commands in a context
+of specific application.  dtCli enables easy integration with existing enterprise toolset for automated application monitoring
+and management.  Currently the following high level tasks are supported.
+
+-   Launch or kill applications
+-   View system metrics including load, throughput, latency, etc.
+-   Start or stop tuple recording
+-   Read operator, stream, port properties and attributes
+-   Write to operator properties
+-   Dynamically change the application logical plan
+-   Create custom macros
+
+
+## dtcli Commands
+
+dtCli can be launched by running following command on the same machine where dtGatway was installed
+
+    dtcli
+
+Help on all commands is available via “help” command in the CLI
+
+### Global Commands
+
+```
+GLOBAL COMMANDS EXCEPT WHEN CHANGING LOGICAL PLAN:
+
+alias alias-name command
+	Create a command alias
+
+begin-macro name
+	Begin Macro Definition ($1...$9 to access parameters and type 'end' to end the definition)
+
+connect app-id
+	Connect to an app
+
+dump-properties-file out-file jar-file class-name
+	Dump the properties file of an app class
+
+echo [arg ...]
+	Echo the arguments
+
+exit
+	Exit the CLI
+
+get-app-info app-id
+	Get the information of an app
+
+get-app-package-info app-package-file
+	Get info on the app package file
+
+get-app-package-operator-properties app-package-file operator-class
+	Get operator properties within the given app package
+
+get-app-package-operators [options] app-package-file [search-term]
+	Get operators within the given app package
+	Options:
+            -parent    Specify the parent class for the operators
+
+get-config-parameter [parameter-name]
+	Get the configuration parameter
+
+get-jar-operator-classes [options] jar-files-comma-separated [search-term]
+	List operators in a jar list
+	Options:
+            -parent    Specify the parent class for the operators
+
+get-jar-operator-properties jar-files-comma-separated operator-class-name
+	List properties in specified operator
+
+help [command]
+	Show help
+
+kill-app app-id [app-id ...]
+	Kill an app
+
+  launch [options] jar-file/json-file/properties-file/app-package-file [matching-app-name]
+  	Launch an app
+  	Options:
+            -apconf <app package configuration file>        Specify an application
+                                                            configuration file
+                                                            within the app
+                                                            package if launching
+                                                            an app package.
+            -archives <comma separated list of archives>    Specify comma
+                                                            separated archives
+                                                            to be unarchived on
+                                                            the compute machines.
+            -conf <configuration file>                      Specify an
+                                                            application
+                                                            configuration file.
+            -D <property=value>                             Use value for given
+                                                            property.
+            -exactMatch                                     Only consider
+                                                            applications with
+                                                            exact app name
+            -files <comma separated list of files>          Specify comma
+                                                            separated files to
+                                                            be copied on the
+                                                            compute machines.
+            -ignorepom                                      Do not run maven to
+                                                            find the dependency
+            -libjars <comma separated list of libjars>      Specify comma
+                                                            separated jar files
+                                                            or other resource
+                                                            files to include in
+                                                            the classpath.
+            -local                                          Run application in
+                                                            local mode.
+            -originalAppId <application id>                 Specify original
+                                                            application
+                                                            identifier for restart.
+            -queue <queue name>                             Specify the queue to
+                                                            launch the application
+
+list-application-attributes
+	Lists the application attributes
+list-apps [pattern]
+	List applications
+list-operator-attributes
+	Lists the operator attributes
+list-port-attributes
+	Lists the port attributes
+set-pager on/off
+	Set the pager program for output
+show-logical-plan [options] jar-file/app-package-file [class-name]
+	List apps in a jar or show logical plan of an app class
+	Options:
+            -exactMatch                                Only consider exact match
+                                                       for app name
+            -ignorepom                                 Do not run maven to find
+                                                       the dependency
+            -libjars <comma separated list of jars>    Specify comma separated
+                                                       jar/resource files to
+                                                       include in the classpath.
+shutdown-app app-id [app-id ...]
+	Shutdown an app
+source file
+	Execute the commands in a file
+```
+
+### Commands after connecting to an application
+
+```
+COMMANDS WHEN CONNECTED TO AN APP (via connect <appid>) EXCEPT WHEN CHANGING LOGICAL PLAN:
+
+begin-logical-plan-change
+	Begin Logical Plan Change
+dump-properties-file out-file [jar-file] [class-name]
+	Dump the properties file of an app class
+get-app-attributes [attribute-name]
+	Get attributes of the connected app
+get-app-info [app-id]
+	Get the information of an app
+get-operator-attributes operator-name [attribute-name]
+	Get attributes of an operator
+get-operator-properties operator-name [property-name]
+	Get properties of a logical operator
+get-physical-operator-properties [options] operator-id
+	Get properties of a physical operator
+	Options:
+            -propertyName <property name>    The name of the property whose
+                                             value needs to be retrieved
+            -waitTime <wait time>            How long to wait to get the result
+get-port-attributes operator-name port-name [attribute-name]
+	Get attributes of a port
+get-recording-info [operator-id] [start-time]
+	Get tuple recording info
+kill-app [app-id ...]
+	Kill an app
+kill-container container-id [container-id ...]
+	Kill a container
+list-containers
+	List containers
+list-operators [pattern]
+	List operators
+set-operator-property operator-name property-name property-value
+	Set a property of an operator
+set-physical-operator-property operator-id property-name property-value
+	Set a property of an operator
+show-logical-plan [options] [jar-file/app-package-file] [class-name]
+	Show logical plan of an app class
+	Options:
+            -exactMatch                                Only consider exact match
+                                                       for app name
+            -ignorepom                                 Do not run maven to find
+                                                       the dependency
+            -libjars <comma separated list of jars>    Specify comma separated
+                                                       jar/resource files to
+                                                       include in the classpath.
+show-physical-plan
+	Show physical plan
+shutdown-app [app-id ...]
+	Shutdown an app
+start-recording operator-id [port-name] [num-windows]
+	Start recording
+stop-recording operator-id [port-name]
+	Stop recording
+wait timeout
+	Wait for completion of current application
+```
+
+### Commands when changing the logical plan
+
+```
+COMMANDS WHEN CHANGING LOGICAL PLAN (via begin-logical-plan-change):
+
+abort
+	Abort the plan change
+add-stream-sink stream-name to-operator-name to-port-name
+	Add a sink to an existing stream
+create-operator operator-name class-name
+	Create an operator
+create-stream stream-name from-operator-name from-port-name to-operator-name to-port-name
+	Create a stream
+help [command]
+	Show help
+remove-operator operator-name
+	Remove an operator
+remove-stream stream-name
+	Remove a stream
+set-operator-attribute operator-name attr-name attr-value
+	Set an attribute of an operator
+set-operator-property operator-name property-name property-value
+	Set a property of an operator
+set-port-attribute operator-name port-name attr-name attr-value
+	Set an attribute of a port
+set-stream-attribute stream-name attr-name attr-value
+	Set an attribute of a stream
+show-queue
+	Show the queue of the plan change
+submit
+	Submit the plan change
+```
+
+
+
+## Examples
+
+An example of defining a custom macro.  The macro updates a running application by inserting a new operator.  It takes three parameters and executes a logical plan changes.
+
+```
+dt> begin-macro add-console-output
+macro> begin-logical-plan-change
+macro> create-operator $1 com.datatorrent.lib.io.ConsoleOutputOperator
+macro> create-stream stream_$1 $2 $3 $1 in
+macro> submit
+```
+
+
+Then execute the `add-console-output` macro like this
+
+```
+dt> add-console-output xyz opername portname
+```
+
+This macro then expands to run the following command
+
+```
+begin-logical-plan-change
+create-operator xyz com.datatorrent.lib.io.ConsoleOutputOperator
+create-stream stream_xyz opername portname xyz in
+submit
+```
+
+
+*Note*:  To perform runtime logical plan changes, like ability to add new operators,
+they must be part of the jar files that were deployed at application launch time.