7 Using the dcli Utility
This chapter contains the following sections:
1 Overview of the dcli Utility
dcli utility executes commands on multiple Oracle Big Data Appliance servers in parallel, using the InfiniBand (bondib0) interface to make the connections. You can run the utility from any server.
1.1 Setting Up Passwordless SSH
dcli utility requires a passwordless Secure Shell (SSH) between the local server and all target servers. You run the
dcli utility on the local server, and the commands specified in
dcli execute on the target servers.
Two scripts facilitate the use of SSH on Oracle Big Data Appliance:
remove-root-ssh. These scripts accept two options that are also used by
-C: Targets all the servers in a Hadoop cluster
-g: Targets a user-defined set of servers
- Connect to an Oracle Big Data Appliance server using PuTTY or a similar utility. Select an SSH connection type.
- Log in as
- Set up passwordless SSH for
rootacross the rack:
Or, to set up passwordless SSH across a Hadoop cluster of multiple racks:
You see the message “ssh key added” from each server.
- You can now run any ssh command on any server in the rack without entering a password. In addition to
dclicommands, you can use
scpto copy files between servers.
- To remove passwordless SSH from
1.2 Basic Use of dcli
This topic identifies some of the basic options to the
1.2.1 Getting Help
To see the
dcli help page, issue the
dcli command with the
--help options. You can see a description of the commands by issuing the
dclicommand with no options.
1.2.2 Identifying the Target Servers
You can identify the servers where you want the commands to run either in the command line or in a file. For a list of default target servers, use the
-toption. To change the target servers for the current command, use the
-g options described in below table.
The /opt/oracle/bda directory contains two files for executing commands on multiple servers:
- rack-hosts-infiniband is the default target group of servers for the
remove-root-sshutilities. The file initially contains the default factory IP addresses. The network configuration process changes this file to the custom IP addresses identified in the Oracle Big Data Appliance Configuration Worksheets.
- cluster-hosts-infiniband contains the names of all servers in the Hadoop cluster created by the Mammoth Utility. A cluster can span one or more Oracle Big Data Appliance racks.
You can manually create additional files with groups of servers that you want to manage together. For example, you might manage servers 5 to 18 together, because they have no special functions like servers 1 to 4.
1.2.3 Specifying the Commands
You typically specify a command for execution on the target servers on the command line. However, you can also create a command file for a series of commands that you often issue together or for commands with complex syntax. See the
-x option in below table.
You can also copy files to the target servers without executing them by using the
1.2.4 Controlling the Output Levels
You can request more information with the
-v option or less information with the
-n option. You can also limit the number of returned lines with the
--maxlines option, or replace matching strings with the
Following are examples of various output levels using a simple example: the Linux
The output from only one server (node07) is shown. The syntax in these examples issues the
date command on all 18 servers.
This is the default output, which lists the server followed by the output.
# dcli date bda1node07-adm.example.com: Tue Feb 14 10:22:31 PST 2012
The minimal output returns
OK for completed execution:
# dcli -n date OK: ['bda1node07.example.com']
Verbose output provides extensive information about the settings under which the command ran:
dcli -v dateoptions.nodes: Noneoptions.destfile: Noneoptions.file: Noneoptions.group: dcserversoptions.maxLines: 100000options.listNegatives: Falseoptions.pushKey: Falseoptions.regexp: Noneoptions.sshOptions: Noneoptions.scpOptions: Noneoptions.dropKey: Falseoptions.serializeOps: Falseoptions.userID: rootoptions.verbosity 1options.vmstatOps Noneoptions.execfile: Noneargv: ['/opt/oracle/bda/bin/dcli', '-g', 'dcservers', '-v', 'date']Success connecting to nodes: ['bda1node07.example.com']...entering thread for bda1node07.example.com:execute: /usr/bin/ssh -l root bda1node07.example.com ' date' ...exiting thread for bda1node07.example.com status: 0bda1node07.example.com: Tue Feb 14 10:24:43 PST 2013]
2 dcli Syntax
dcli [options] [command]
- The options described in below table. You can omit all options to run a command on all servers.
- Any command that runs from the operating system prompt. If the command contains punctuation marks or special characters, then enclose the command in double quotation marks.
The backslash (\) is the escape character. Precede the following special characters with a backslash on the command line to prevent interpretation by the shell. The backslash is not needed in a command file. See the
-xoption for information about command files.
||Specifies a comma-separated list of Oracle Big Data Appliance
servers where the command is executed
||Uses the list of servers in /opt/oracle/bda/cluster-rack-infiniband
as the target.
||Specifies a target directory or file name for the
||Specifies files to be copied to the user’s home directory on the
target servers. The files are not executed. See the
||Specifies a file containing a list of Oracle Big Data Appliance
servers where the command is executed. Either server names
or IP addresses can be used in the file.
||Displays a description of the commands|
||Identifies the user ID for logging in to another server.
The default ID is
||Identifies the maximum lines of output displayed from a
command executed on multiple servers. The default is 10,000 lines.
||Abbreviates the output for non-error messages. Only the
server name is displayed when a server returns normal
output (return code
||Replaces the output with the server name for lines
that match the specified regular expression
||Specifies a string of options that are passed to SSH|
||Specifies a string of options that are passed to
Secure Copy (SCP), when these options are different from
||Serializes execution over the servers. The default is
||Lists the target servers|
||Drops the keys from the authorized_key files of the target
||Displays the verbose version of all messages|
||Displays the syntax of the Linux Virtual Memory Statistics utility
trap, and CPU activity information.To issue a
enclose its options in quotation marks. For example:
--vmstat="-a 3 5"
See your Linux documentation for more information about
||Specifies a command file to be copied to the user’s home directory
and executed on the target servers. See the
3 dcli Return Values
0: The command ran successfully on all servers.
1: One or more servers were inaccessible or remote execution returned a nonzero value. A message lists the unresponsive servers. Execution continues on the other servers.
2: A local error prevented the command from executing.
If you interrupt the local
dcli process, then the remote commands may continue without returning their output or status.
4 dcli Examples
Following are examples of the
This example returns the default list of target servers:
# dcli -t Target nodes: ['bda1node01-adm.example.com', 'bda1node02-adm.example.com', 'bda1node03-adm.example.com', 'bda1node04-adm.example.com', 'bda1node05-adm.example.com', 'bda1node06-adm.example.com', 'bda1node07-adm.example.com', 'bda1node08-adm.example.com', 'bda1node09-adm.example.com']
The next example checks the temperature of all servers:
# dcli 'ipmitool sunoem cli "show /SYS/T_AMB" | grep value' bda1node01-adm.example.com: value = 22.000 degree C bda1node02-adm.example.com: value = 22.000 degree C bda1node03-adm.example.com: value = 22.000 degree C bda1node04-adm.example.com: value = 23.000 degree C