File/Hadoop JSON Output Adapter Configuration

Configure the File/Hadoop JSON Output adapter by specifying values for the ESP connector, formatter, and transporter modules in the adapter configuration file.

Logging

XML Element Description
Log4jProperty

Type: string

(Optional) Specify a full path to the log4j.properties logging file you wish to use. The default value is $ESP_HOME/adapters/framework/config/log4j.properties.

ESPConnector Module: ESP Subscriber

The ESP Subscriber module obtains data from an ESP project and passes it along to a transporter or formatter module.

XML Element Description
Module

(Required) Element containing all information for this module. It contains a type attribute for specifying the module type.

For example, espconnector.

InstanceName

Type: string

(Required) Instance name of the specific module you want to use. For example, MyInputTransporter.

Name

Type: string

(Required) Name of the module as defined in the modulesdefine.xml file. For example, <TransporterType>InputTransporter.

Next

Type: string

(Required) Instance name of the module that follows this one.

BufferMaxSize

Type: integer

(Advanced) Capacity of the buffer queue between this module and the next. The default value is 10240.

Parameters (Required) Element containing the EspSubscriberParameters element.
EspSubscriberParameters

(Required) Element containing elements for the ESP subscriber.

ProjectName

Type: string

(Required if running adapter in standalone mode; optional if running in managed mode) Specifies the unique project tag of the ESP project to which the adapter is connected. For example, EspProject2.

This is the same project tag that you specify later in the adapter configuration file in the Name element within the Event Stream Processor (EspProjects) element.

If you are starting the adapter with the ESP project to which it is attached (running the adapter in managed mode), you do not need to set this element as the adapter automatically detects the project name.

StreamName

Type: string

(Required if running adapter in standalone mode; optional if running in managed mode) Name of the ESP stream from which the adapter subscribes to data.

If you are starting the adapter with the ESP project to which it is attached (running the adapter in managed mode), you do not need to set this element as the adapter automatically detects the stream name.

Formatter Module: ESP to JSON Stream Formatter

The ESP to JSON Stream formatter translates AepRecord objects to JSON strings, and sends the JSON strings to next streaming output transporter that is configured in the adapter configuration file.

XML Element Description
Module

(Required) Element containing all information for this module. It contains a type attribute for specifying the module type.

For example, formatter.

InstanceName

Type: string

(Required) Instance name of the specific module you want to use. For example, MyInputTransporter.

Name

Type: string

(Required) Name of the module as defined in the modulesdefine.xml file. For example, <TransporterType>InputTransporter.

Next

Type: string

(Required) Instance name of the module that follows this one.

BufferMaxSize

Type: integer

(Advanced) Capacity of the buffer queue between this module and the next. The default value is 10240.

Parameters

(Required) Element containing the EsptoJsonStreamFormatterParameters element.

EsptoJsonStreamFormatterParameters

(Required) Element containing the ESP to JSON Stream formatter elements.

ColsMapping

(Required) Element containing the Column element.

Column

Type: complextype

(Required) Specify JSONPath expressions for the JSON data that you want to map to columns of an ESP stream. You can have multiple Column elements.

For example, if you had the following JSON data about a person,
{
"firstName": "John",       
"lastName": "Smith", 
"phoneNumbers": [
        {
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "fax",
            "number": "646 555-4567"
        }
],
"friends": [
["female1","female2","female3"],
["male1","male2","male3"]
]
}
you could get the individual's first name by using the JSONPath expression firstname. If you want the first phone number, specify phoneNumbers[0].number as the JSONPath expression. Each JSONPath expression must represent one record.

The first <Column/> element and its value are mapped to the first column of an ESP stream, the second <Column/> element and its value are mapped to the second column of an ESP stream, and so on.

DateFormat

Type: string

(Advanced) The format string for date values. For example, yyyy-MM-dd'T'HH:mm:ss.

TimestampFormat

Type: string

(Advanced) Format string for timestamp values. For example, yyyy-MM-dd'T'HH:mm:ss.SSS.

Transporter Module: File Output Transporter

The File Output transporter obtains data from the previous module specified in the adapter configuration file and writes it to local files.

XML Element Description
Module

(Required) Element containing all information for this module. It contains a type attribute for specifying the module type.

For example, transporter.

InstanceName

Type: string

(Required) Instance name of the specific module you want to use. For example, MyInputTransporter.

Name

Type: string

(Required) Name of the module as defined in the modulesdefine.xml file. For example, <TransporterType>InputTransporter.

BufferMaxSize

Type: integer

(Advanced) Capacity of the buffer queue between this module and the next. The default value is 10240.

Parameters

(Required) Element containing the FileOutputTransporterParameters element.

FileOutputTransporterParameters

(Required) Element containing the elements for the File Output transporter.

Dir

Type: string

(Required) Specify the absolute path to the data files that you want the adapter to write to. For example, <username>/<foldername>. The default value is ".", meaning the current directory in which the adapter is running.

To use Hadoop system files, use an HDFS folder instead of a local file system folder. For example, hdfs://<hdfsserver>:9000/<foldername>/<subfoldername>/<leaffoldername>.

To use Hadoop, download the binaries for Hadoop version 1.2.1 from http://hadoop.apache.org. Copy the hadoop-core .jar file (for example, for version 1.2.1 hadoop-core-1.2.1.jar) to %ESP_HOME%\ adapters\framework\libj. Ensure you use a stable version rather than a beta.

Use a forward slash for both UNIX and Windows paths.

File

Type: string

(Required) Specify the file to which the adapter writes.

AccessMode

Type: string

(Required) Specify an access mode:
  • rowBased – the adapter writes one text line at a time into the file.
  • Streaming – the adapter writes the raw data in ByteBuffer into the file.
No default value.
AppendMode

Type: boolean

(Optional) If set to true, the adapter appends the data into the existing file. If set to false, the adapter overwrites existing content in the file. Default value is false.

Event Stream Processor Elements

Event Stream Processor elements configure communication between Event Stream Processor and the File/Hadoop JSON Output adapter.

XML Element Description
EspProjects

(Required) Element containing elements for connecting to Event Stream Processor.

EspProject

(Required) Element containing the Name and Uri elements. Specifies information for the ESP project to which the adapter is connected.

Name

Type: string

(Required) Specifies the unique project tag of the ESP project which the EspConnector (publisher/subscriber) module references.

Uri

Type: string

(Required) Specifies the total project URI to connect to the ESP project. For example, esp://localhost:19011/ws1/p1.

Security

(Required) Element containing all the authentication elements below. Specifies details for the authentication method used for Event Stream Processor.

User

Type: string

(Required) Specifies the user name required to log in to Event Stream Processor (see AuthType). No default value.

Password

Type: string

(Required) Specifies the password required to log in to Event Stream Processor (see espAuthType).

Includes an "encrypted" attribute indicating whether the Password value is encrypted. The default value is false. If set to true, the password value is decrypted using RSAKeyStore and RSAKeyStorePassword.

AuthType

Type: string

(Required) Method used to authenticate to the Event Stream Processor. Valid values are:
  • server_rsa – RSA authentication using keystore
  • kerberos – Kerberos authentication using ticket-based authentication
  • user_password – LDAP, SAP BI, and Native OS (user name/password) authentication

If the adapter is operated as a Studio plug-in, AuthType is overridden by the Authentication Mode Studio start-up parameter.

RSAKeyStore

Type: string

(Dependent required) Specifies the location of the RSA keystore, and decrypts the password value. Required if AuthType is set to server_rsa, or the encrypted attribute for Password is set to true, or both.

RSAKeyStorePassword

Type:string

(Dependent required) Specifies the keystore password, and decrypts the password value. Required if AuthType is set to server_rsa, or the encrypted attribute for Password is set to true, or both.

KerberosKDC

Type: string

(Dependent required) Specifies host name of Kerberos key distribution center. Required if AuthType is set to kerberos.

KerberosRealm

Type: string

(Dependent required) Specifies the Kerberos realm setting. Required if AuthType is set to kerberos.

KerberosService

Type: string

(Dependent required) Specifies the Kerberos principal name that identifies an Event Stream Processor cluster. Required if AuthType is set to kerberos.

KerberosTicketCache

Type: string

(Dependent required) Specifies the location of the Kerberos ticket cache file. Required if AuthType is set to kerberos.

EncryptionAlgorithm

Type: string

(Optional) Used when the encrypted attribute for Password is set to true. If left blank, RSA is used as default.