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.
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 totrue
, 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 tofalse
, the Data Fabric client attempts to connect to each CLDB node that is listed in themapr-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
Configurefs.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.