How Data Fabric Clients Connect to the Cluster

Explains how clients connect to a HPE Ezmeral Data Fabric cluster.

The Data Fabric client connects to the cluster via CLDB nodes. When a connection attempt fails, the Data Fabric client returns an error. When an existing connection is no longer available, the Data Fabric client attempts to reconnect to a CLDB node.

For information about installing the Data Fabric client, see HPE Ezmeral Data Fabric Client.

How the Data Fabric Client Establishes Connections to the Cluster

Client applications connect to a cluster via CLDB nodes. To identify the CLDB nodes, check the connection request or the mapr-clusters.conf file on the node that submits the connection request. When a client application attempts to connect to the cluster for the first time, the following scenarios can occur:

  • At least one of the CLDB nodes is online, in which case the connection is successful.
  • None of the CLDB nodes is online, in which case the connection attempt fails.
  • The CLDB nodes are listed incorrectly (for example, the IP addresses are incorrect), in which case the connection attempt fails.
When a connection attempt fails, the Data Fabric client returns one of the following errors based on the application type:
Application Type Error
C Application using HBase API ErrorCode = 1.
C Applications using HDFS API NULL handle
Java Application using HBase, OJAI, or file system API java.io.IOException: Could not create FileClient
Java Application using Kafka API for HPE Ezmeral Data Fabric Streams org.apache.kafka.common.errors.NetworkException.

How the Data Fabric Client Re-establishes Failed Connections to the Cluster

If the CLDB goes down after a client application establishes its first connection to HPE Ezmeral Data Fabric, the client behavior depends on the setting for the fs.mapr.hardmount property in the core-site.xml file. The core-site.xml file is located in the client installation directory.

  • If fs.mapr.hardmount is set to true, the Data Fabric client is nonresponsive as it continuously attempts to reconnect to the CLDB. The Data Fabric client responds when the CLDB comes back online. This is the default behavior.
  • If fs.mapr.hardmount is set to false, the Data Fabric client attempts to connect to each CLDB node that is listed in the mapr-clusters.conf file on the node that submitted the connection request. If all of the CLDB nodes are down, the Data Fabric client returns the error EAGAIN/-EAGAIN to the client application. This error indicates that a connection could not be established because the CLDB nodes were not available or because the request timed out for specific reasons. For example, heavy traffic might have caused the network to be slow, or other nodes were unavailable.

Configuring Timeout for Inactive Connections

Configure fs.mapr.binding.inactive.threshold in core-site.xml. This parameter accepts a value in seconds, and refreshes existing bindings before performing the next I/O, if the time from the previous I/O crosses the given threshold. For example:
<property>
<name>fs.mapr.binding.inactive.threshold</name>
<value>600</value>
</property>

In this example, when the client tries to send data to the CLDB after a certain idle time, the system checks if the specified time (here 600 seconds, which is 10 minutes) is crossed after the previous request was sent. If so, the system tears down the existing TCP connection and creates a new TCP connection for the file client and CLDB to use for communication.