Install Data Fabric Software

Describes the process for installing Data Fabric software in a hardened OS environment.

Installing Data Fabric software involves several key steps to ensure that the software is installed and configured correctly across a multi-node environment.

Disable apparmor

AppArmor (Application Armor) is a Linux security module that provides mandatory access control (MAC) by restricting the capabilities of individual applications based on predefined security profiles. Disabling AppArmor facilitates the deployment and operation of Data Fabric components, which may require broader system access than what AppArmor profiles permit, especially on a hardened OS where security policies are already in place through other means.

Use the following command to disable AppArmor:
systemctl disable apparmor

Install all required software depenedencies on all nodes

Prepare the system by configuring kernel parameters for optimal operation and installing all required software dependencies for application deployment or development.
  1. Run sysctl -p /etc/sysctl.conf
  2. Execute this command:
    zypper install \
      vim \
      wget \
      java-17-openjdk.x86_64 \
      java-17-openjdk-devel.x86_64 \
      epel-release \
      ncurses-compat-libs \
      python3-pyparsing \
      syslinux \
      syslinux-nonlinux \
      systemtap-sdt-devel \
      compat-openssl11 \
      perl \
      perl-Algorithm-Diff \
      perl-Archive-Tar \
      perl-Archive-Zip \
      perl-Attribute-Handlers \
      perl-AutoSplit \
      perl-autouse \
      perl-Benchmark \
      perl-bignum \
      perl-blib \
      perl-Compress-Bzip2 \
      perl-Compress-Raw-Lzma \
      perl-Config-Extensions \
      perl-Config-Perl-V \
      perl-CPAN \
      perl-CPAN-DistnameInfo \
      perl-CPAN-Meta \
      perl-CPAN-Meta-Requirements \
      perl-CPAN-Meta-YAML \
      perl-Data-OptList \
      perl-Data-Section \
      perl-DB_File \
      perl-DBM_Filter \
      perl-debugger \
      perl-deprecate \
      perl-devel \
      perl-Devel-Peek \
      perl-Devel-PPPort \
      perl-Devel-SelfStubber \
      perl-Devel-Size \
      perl-diagnostics \
      perl-Digest-SHA1 \
      perl-DirHandle \
      perl-doc \
      perl-Dumpvalue \
      perl-Encode-devel \
      perl-encoding \
      perl-encoding-warnings \
      perl-English \
      perl-Env \
      perl-experimental \
      perl-ExtUtils-CBuilder \
      perl-ExtUtils-Command \
      perl-ExtUtils-Constant \
      perl-ExtUtils-Embed \
      perl-ExtUtils-Install \
      perl-ExtUtils-MakeMaker \
      perl-ExtUtils-Manifest \
      perl-ExtUtils-Miniperl \
      perl-ExtUtils-MM-Utils \
      perl-ExtUtils-ParseXS \
      perl-fields \
      perl-FileCache \
      perl-File-DosGlob \
      perl-File-Fetch \
      perl-File-HomeDir \
      perl-filetest \
      perl-File-Which \
      perl-Filter \
      perl-Filter-Simple \
      perl-FindBin \
      perl-GDBM_File \
      perl-Hash-Util \
      perl-Hash-Util-FieldHash \
      perl-I18N-Collate \
      perl-I18N-LangTags \
      perl-Importer \
      perl-inc-latest \
      perl-IO-Compress-Lzma \
      perl-IO-Zlib \
      perl-IPC-Cmd \
      perl-IPC-SysV \
      perl-JSON-PP \
      perl-less \
      perl-libnetcfg \
      perl-Locale-Maketext \
      perl-Locale-Maketext-Simple \
      perl-local-lib \
      perl-Math-BigInt-FastCalc \
      perl-Math-BigRat \
      perl-Memoize \
      perl-meta-notation \
      perl-MIME-Charset \
      perl-Module-Build \
      perl-Module-CoreList \
      perl-Module-CoreList-tools \
      perl-Module-Load \
      perl-Module-Load-Conditional \
      perl-Module-Loaded \
      perl-Module-Metadata \
      perl-Module-Signature \
      perl-MRO-Compat \
      perl-Net \
      perl-Net-Ping \
      perl-NEXT \
      perl-Object-HashBase \
      perl-ODBM_File \
      perl-Opcode \
      perl-open \
      perl-Package-Generator \
      perl-Params-Check \
      perl-Params-Util \
      perl-perlfaq \
      perl-PerlIO-via-QuotedPrint \
      perl-Perl-OSType \
      perl-ph \
      perl-Pod-Checker \
      perl-Pod-Functions \
      perl-Pod-Html \
      perl-Safe \
      perl-Search-Dict \
      perl-SelfLoader \
      perl-sigtrap \
      perl-Software-License \
      perl-sort \
      perl-Sub-Exporter \
      perl-Sub-Install \
      perl-Sys-Hostname \
      perl-Sys-Syslog \
      perl-Term-Complete \
      perl-Term-ReadLine \
      perl-Term-Size-Any \
      perl-Term-Size-Perl \
      perl-Term-Table \
      perl-Test \
      perl-Test-Harness \
      perl-Test-Simple \
      perl-Text-Abbrev \
      perl-Text-Balanced \
      perl-Text-Diff \
      perl-Text-Glob \
      perl-Text-Template \
      perl-Thread \
      perl-Thread-Semaphore \
      perl-Tie \
      perl-Tie-File \
      perl-Tie-Memoize \
      perl-Time \
      perl-Time-Piece \
      perl-Unicode-Collate \
      perl-Unicode-LineBreak \
      perl-Unicode-Normalize \
      perl-Unicode-UCD \
      perl-User-pwent \
      perl-utils \
      perl-vmsish
NOTE
If prompted with any warnings or errors, choose the ignore option (i) and proceed with installation.

Install required MAPR packages on all nodes

To ensure that Data Fabric software is properly installed on each node in the cluster, run the following command on all nodes:
zypper -y install \
  mapr-cldb \
  mapr-zookeeper \
  mapr-s3server \
  mapr-collectd \
  mapr-apiserver \
  mapr-webserver \
  mapr-fileserver \
  mapr-nfs \
  mapr-mastgateway \
  mapr-opentsdb
NOTE
  • If prompted with any warnings or errors, choose the ignore option (i) and proceed with installation.
  • mapr-cldb and mapr-zookeeper are required for only 3 nodes in the cluster. Plan the services according to the cluster requirements and modify the above command as needed.

Add the Mapr disk to the cluster

In our example, the /dev/sda drive was previously designated as the MapR disk. Run the following commands to add the disk to the cluster:
echo -e "/dev/sda" > /tmp/disklist.txt
/opt/mapr/server/disksetup -F -W 1 /tmp/disklist.txt 

After the services are installed and disks are added, start the cluster configuration.

Validate the MAPR services on all nodes

Verify the services on each node based on the Service Layout.
maprcli service list

Configure the Data Fabric cluster on Node 1 only

Run the following command to configure the Data Fabric cluster:
/opt/mapr/server/configure.sh \
  -C edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
  -Z edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
  -OT edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
  -N ftcmapr.ftc.local \
  -secure \
  -genkeys \
  -no-autostart
Where:
  • C = CLDB
  • Z = Zookeeper
  • OT = OpenTSDB
  • N = the name of the cluster (in this example, ftcmapr.ftc.local
The DARE master key is generated in the /opt/mapr/conf/tokens directory only if data-at-rest encryption is enabled on the cluster using the -dare option with configure.sh. If DARE is required, use this command instead of the above command:
/opt/mapr/server/configure.sh \
  -C edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
  -Z edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
  -OT edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
  -N ftcmapr.ftc.local \
  -secure \
  -dare \
  -genkeys \
  -no-autostart
NOTE
Replace the hostnames with the hosts n the Greenboat cluster.

Start and enable the Zookeeper and Warden services on Node 1 only

Issue the following commands to start and enable Zookeeper and Warden:
systemctl start mapr-zookeeper
systemctl start mapr-warden
systemctl enable --now mapr-zookeeper
systemctl enable --now mapr-warden

Copy configurations from Node 1 to all nodes in the cluster

  1. From Node 1, copy the contents of the /opt/mapr/conf/tokens directory to the /opt/mapr/conf/token directory on all nodes.
    cd opt/mapr/conf/tokens
    scp -r * root@172.18.207.13:/opt/mapr/conf/tokens
  2. Copy files to the destination nodes.
    If your cluster consists pf all secure, non-FIPS-enabled nodes, follow the instructions below to copy files to the destination nodes - those nodes in which the -genkeys option was not used to generate keys.
    scp \
      maprhsm.conf \
      maprkeycreds.conf \
      maprkeycreds.jceks \
      maprserverticket \
      maprtrustcreds.conf \
      maprtrustcreds.jceks \
      ssl_keystore \
      ssl_keystore.p12 \
      ssl_keystore.pem \
      ssl_keystore-signed.pem \
      ssl_truststore \
      ssl_truststore.p12 \
      ssl_trust \
      store.pem \
      ssl_userkeystore \
      ssl_userkeystore.p12 \
      ssl_userkeystore.pem \
      ssl_userkeystore-signed.pem \
      ssl_usertruststore \
      ssl_usertruststore.p12 \
      ssl_usertruststore.pem \
      root@172.18.207.12:/opt/mapr/conf
  3. After the files are copied to the other nodes, execute this command:
    /opt/mapr/server/configure.sh \
      -C edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
      -Z edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
      -OT edfnode1.ftc.local,edfnode2.ftc.local,edfnode3.ftc.local \
      -N ftcmapr.ftc.local \
      -secure \
      -no-autostart
  4. Start and enable Zookeeper and Warden in their respective nodes. In our example, Zookeepr and Warden are on Node 3.
    systemctl start mapr-zookeeper
    systemctl start mapr-warden
    systemctl enable --now mapr-zookeeper
    systemctl enable --now mapr-warden