Spectrum Scale HDFS Transparency Guide



Similar documents
HDFS Users Guide. Table of contents

Distributed Filesystems

Introduction to HDFS. Prasanth Kothuri, CERN

Introduction to HDFS. Prasanth Kothuri, CERN

How To Install Hadoop From Apa Hadoop To (Hadoop)

HADOOP MOCK TEST HADOOP MOCK TEST I

Lecture 2 (08/31, 09/02, 09/09): Hadoop. Decisions, Operations & Information Technologies Robert H. Smith School of Business Fall, 2015

Apache Hadoop 2.0 Installation and Single Node Cluster Configuration on Ubuntu A guide to install and setup Single-Node Apache Hadoop 2.

Set JAVA PATH in Linux Environment. Edit.bashrc and add below 2 lines $vi.bashrc export JAVA_HOME=/usr/lib/jvm/java-7-oracle/

HDFS Installation and Shell

HSearch Installation

Hadoop. Apache Hadoop is an open-source software framework for storage and large scale processing of data-sets on clusters of commodity hardware.

CDH 5 High Availability Guide

Hadoop Setup Walkthrough

CDH 5 High Availability Guide

Prepared By : Manoj Kumar Joshi & Vikas Sawhney

docs.hortonworks.com

CURSO: ADMINISTRADOR PARA APACHE HADOOP

Command Line Install and Config For IBM BPM 8.5

HADOOP MOCK TEST HADOOP MOCK TEST II

CS2510 Computer Operating Systems

CS2510 Computer Operating Systems

Pivotal HD Enterprise

Hadoop Basics with InfoSphere BigInsights

Setting up Hadoop with MongoDB on Windows 7 64-bit

研 發 專 案 原 始 程 式 碼 安 裝 及 操 作 手 冊. Version 0.1

The objective of this lab is to learn how to set up an environment for running distributed Hadoop applications.

THE HADOOP DISTRIBUTED FILE SYSTEM

CDH 5 Quick Start Guide

HDFS: Hadoop Distributed File System

HADOOP CLUSTER SETUP GUIDE:

Hadoop Lab - Setting a 3 node Cluster. Java -

Hadoop Distributed File System. T Seminar On Multimedia Eero Kurkela

Hadoop Distributed File System. Dhruba Borthakur June, 2007

Take An Internal Look at Hadoop. Hairong Kuang Grid Team, Yahoo! Inc

5 HDFS - Hadoop Distributed System

This handout describes how to start Hadoop in distributed mode, not the pseudo distributed mode which Hadoop comes preconfigured in as on download.

HADOOP - MULTI NODE CLUSTER

Deploying Hadoop with Manager

INF-110. GPFS Installation

Hadoop Distributed File System. Dhruba Borthakur Apache Hadoop Project Management Committee

Certified Big Data and Apache Hadoop Developer VS-1221

Introduction to Hadoop HDFS and Ecosystems. Slides credits: Cloudera Academic Partners Program & Prof. De Liu, MSBA 6330 Harvesting Big Data

Hadoop Installation. Sandeep Prasad

HDFS Architecture Guide

How to Install and Configure EBF15328 for MapR or with MapReduce v1

Hadoop Basics with InfoSphere BigInsights

Implementation of Hadoop Distributed File System Protocol on OneFS Tanuj Khurana EMC Isilon Storage Division

Tableau Spark SQL Setup Instructions

CS380 Final Project Evaluating the Scalability of Hadoop in a Real and Virtual Environment

Apache Hadoop. Alexandru Costan

Gluster Filesystem 3.3 Beta 2 Hadoop Compatible Storage

Integrating SAP BusinessObjects with Hadoop. Using a multi-node Hadoop Cluster

Hadoop Distributed File System. Dhruba Borthakur Apache Hadoop Project Management Committee June 3 rd, 2008

Hadoop (pseudo-distributed) installation and configuration

The Hadoop Distributed File System

Distributed File Systems

How to install Apache Hadoop in Ubuntu (Multi node setup)

Single Node Hadoop Cluster Setup

Big Data Operations Guide for Cloudera Manager v5.x Hadoop

RDMA for Apache Hadoop User Guide

MarkLogic Server. Installation Guide for All Platforms. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

Installation and Configuration Documentation

1. GridGain In-Memory Accelerator For Hadoop. 2. Hadoop Installation. 2.1 Hadoop 1.x Installation

TP1: Getting Started with Hadoop

Michael Thomas, Dorian Kcira California Institute of Technology. CMS Offline & Computing Week

CactoScale Guide User Guide. Athanasios Tsitsipas (UULM), Papazachos Zafeirios (QUB), Sakil Barbhuiya (QUB)

HDFS Federation. Sanjay Radia Founder and Hortonworks. Page 1

Oracle Fusion Middleware 11gR2: Forms, and Reports ( ) Certification with SUSE Linux Enterprise Server 11 SP2 (GM) x86_64

Overview. Big Data in Apache Hadoop. - HDFS - MapReduce in Hadoop - YARN. Big Data Management and Analytics

How To Use Hadoop

Apache Sentry. Prasad Mujumdar

The Hadoop Distributed File System

Hadoop Architecture. Part 1

Pivotal HD Enterprise 1.0 Stack and Tool Reference Guide. Rev: A03

Insights to Hadoop Security Threats

HADOOP. Installation and Deployment of a Single Node on a Linux System. Presented by: Liv Nguekap And Garrett Poppe

Comparative analysis of mapreduce job by keeping data constant and varying cluster size technique

CN=Monitor Installation and Configuration v2.0

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

Hadoop Distributed File System (HDFS)

Sector vs. Hadoop. A Brief Comparison Between the Two Systems

Apache Hadoop new way for the company to store and analyze big data

Welcome to the unit of Hadoop Fundamentals on Hadoop architecture. I will begin with a terminology review and then cover the major components

Hadoop: Embracing future hardware

Hadoop Training Hands On Exercise

Installing Hadoop. You need a *nix system (Linux, Mac OS X, ) with a working installation of Java 1.7, either OpenJDK or the Oracle JDK. See, e.g.

H2O on Hadoop. September 30,

docs.hortonworks.com

IBM TSM DISASTER RECOVERY BEST PRACTICES WITH EMC DATA DOMAIN DEDUPLICATION STORAGE

E6893 Big Data Analytics: Demo Session for HW I. Ruichi Yu, Shuguan Yang, Jen-Chieh Huang Meng-Yi Hsu, Weizhen Wang, Lin Haung.

HDFS Under the Hood. Sanjay Radia. Grid Computing, Hadoop Yahoo Inc.

Running Kmeans Mapreduce code on Amazon AWS

Implementing the Hadoop Distributed File System Protocol on OneFS Jeff Hughes EMC Isilon

Table of Contents Introduction and System Requirements 9 Installing VMware Server 35

HDFS Cluster Installation Automation for TupleWare

Transcription:

Spectrum Scale Guide Spectrum Scale BDA 2016-1-5

Contents 1. Overview... 3 2. Supported Spectrum Scale storage mode... 4 2.1. Local Storage mode... 4 2.2. Shared Storage Mode... 4 3. Hadoop cluster planning... 6 3.1. Node Roles Planning in FPO mode... 7 3.2. Node Roles Planning in shared storage mode... 8 4. Installation and configuration... 9 4.1. Installation... 9 4.2. Configuration... 9 4.2.1. OS tuning for all nodes... 10 4.2.2. Configure Hadoop Nodes... 10 4.2.3. Configure Nodes... 11 4.2.2.1 Sync Hadoop configurations... 11 4.2.2.2 Configure the storage mode... 12 4.2.2.3 Update other configuration files... 12 4.2.2.4 Update environment variables for service.... 14 4.3. Startup and stop the service... 14 4.4. Healthcheck the service... 15 5. High Availability configuration... 15 6. Short circuit Read configuration... 17 7. How application interact with... 19 7.1. Application interface... 19 7.2. Command line... 19 8. Security... 20 9. Upgrading protocol cluster... 20 9.1. Removing Spectrum Scale Hadoop connector... 20 9.2. Upgrading cluster... 23 10. Limitation and difference from... 23 11. Problem Determination... 24

12. Revision History... 24 1. Overview IBM Spectrum Scale (aka, Protocol) offers a set of interfaces that allows applications to use Client to access IBM Spectrum Scale through RPC requests. All data transmission and meta data operations in are through RPC and processed by NameNode and DataNode services within. IBM Spectrum Scale protocol implementation integrates both NameNode and DataNode services and responds to the request as in. Advantages of transparency are as follows: Compliant APIs or shell-interface command Application client isolation from storage. Application Client may access IBM Spectrum Scale without GPFS client installed. Improved security management by Kerberos authentication and encryption in RPC Simplified file system monitor by Hadoop Metrics2 integration The following Figure 1 shows the framework of transparency over Spectrum Scale: Figure 1 Spectrum Scale Framework

2. Supported Spectrum Scale storage mode 2.1. Local Storage mode allows big data applications to access IBM Spectrum Scale local storage mode-file Placement Optimizer (FPO) mode (since gpfs.hdfs-protocol.2.7.0-0) and enable the support for shared storage mode (such SAN-based storage, ESS etc). In FPO mode, data blocks are stored in chunks in IBM Spectrum Scale, and replicated to protect against disk or node failure. DFS clients run over the storage node so it can leverage the data location for executing the task quickly. In such a storage mode, short-circuit read is recommended to improve the access efficiency. Figure 2 illustrates the over FPO: Physical node1 Physical node2 Physical node3 Hadoop Service Hadoop Service Hadoop Service Hadoop GPFS GPFS GPFS GPFS cluster Figure 2: over Spectrum Scale FPO 2.2. Shared Storage Mode allows big data applications to access data stored in shared storage (such SAN-based storage, ESS etc). In this mode, data are stored in SAN storage which will offer better storage efficiency than local storage. RAID and other technology can be used to protect hardware failure instead of taking replication. DFSClient access to data through protocol RPC. When DFS Client request to write blocks to

Spectrum Scale, Name Node will select DataNode randomly for this request. Especially, when DFS Client is located on one DataNode, the current node will be selected for this request. When DFS Client request to getblocklocation of one existing block, NameNode will select 3 DataNodes randomly for this request. allows Hadoop application access data stored in both local Spectrum Scale file system and remote Spectrum Scale file system from multiple cluster. Figure 3 and Figure 4 illustrates the over shared storage. Hadoop Node Hadoop Node Hadoop Node Hadoop Physical node1 Physical node2 Physical node3 GPFS GPFS GPFS GPFS cluster SAN Figure 3: over shared storage

Hadoop Node Hadoop Node Hadoop Node Hadoop Physical node1 Physical node2 Physical node3 GPFS GPFS GPFS GPFS cluster Remote mount NSD Server NSD Server Shared Storage Figure 4: over shared storage(remotely mounted mode) 3. Hadoop cluster planning In an Hadoop cluster that runs the protocol, a node can take on the roles of DFS Client, NameNode, and DataNode. The Hadoop cluster may contain the whole IBM Spectrum Scale cluster or some of the nodes in the IBM Spectrum Scale cluster. NameNode: You can specify one NameNode or multiple NameNodes to protect themselves against single node failure problems in a cluster. For more information, see High availability configuration. NameNode must be selected from the IBM Spectrum Scale cluster and should be a robust node to reduce the single-node failure. NameNode is configured as the hostname by fs.defaultfs in the core-site.xml file in Hadoop 2.4, 2.5, and 2.7 release. DataNode: You can specify multiple DataNodes in a cluster. DataNodes must be within IBM Spectrum Scale

cluster. DataNode are specified by the hostname in the slaves configuration file. DFS Client DFS Client can be placed within a IBM Spectrum Scale cluster or outside a IBM Spectrum Scale cluster. When placed within a IBM Spectrum Scale cluster, DFS Client can read data from IBM Spectrum Scale through RPC or short-circuit mode. Otherwise, DFS Client can access IBM Spectrum Scale only through RPC. You can specify the NameNode address in DFS Client configuration so that DFS Client can communicate with the appropriate NameNode service. The purpose of cluster planning is to define the node roles: Hadoop node, transparency node and GPFS node. 3.1. Node Roles Planning in FPO mode In FPO mode, usually, all nodes will be FPO nodes, Hadoop nodes and nodes: Physical node1 Physical node2 Physical node3 Hadoop Service Hadoop Service Hadoop Service Hadoop (NameNode) GPFS (DataNode) GPFS (DataNode) GPFS GPFS cluster Figure 5: Typical Cluster Planning for FPO mode In Figure 5, one node is selected as NameNode; all other nodes are DataNodes. Also, the NameNode could be DataNode. Any one node could be selected as HA NameNode and ensure that, primary NameNode and standby NameNode are not the same node. In this mode, Hadoop cluster could be equal or larger than transparency cluster(hadoop cluster could be smaller than transparency cluster but this configuration is not typical and not recommended); Also, transparency cluster could be smaller or equal to GPFS cluster because needs to read/write data from the local mounted file system. Usually, in FPO mode, cluster is equal to GPFS cluster.

Note: Some nodes in GPFS FPO cluster could be GPFS client (without any disks in the file system). 3.2. Node Roles Planning in shared storage mode In shared storage mode, usually, Figure 6 is the typical configuration. If the IO stress is heavy, you could exclude the NSD servers from cluster. Typical, in shared storage mode, all nodes in Hadoop cluster could be GPFS client free, which means GPFS is not needed to be installed in these Hadoop nodes. Hadoop Node Hadoop Node Hadoop Node Hadoop Physical node1 Physical node2 Physical node3 (NameNode) (DataNode) (DataNode) GPFS GPFS GPFS GPFS cluster SAN Figure 6: Typical Cluster Planning for shared storage mode If taking multi-cluster mode, you could refer the Figure 4 in the section 2.2. In the section, we just need to figure out nodes (Note: all nodes need to be installed with GPFS and mount the file systems). After that, follow the Section 4 to configure configurations over these nodes. Note: if you deploy transparency for Hadoop distro, such as IBM BigInsights IOP, you should take the NameNode as the NameNode and also put it into the Spectrum Scale cluster. If not, you will fail to start other services in the Hadoop distro.

4. Installation and configuration This section describes the installation and configuration of. Note: as for how to install and configure Spectrum Scale, refer the Spectrum Scale Concepts, Planning and Installation Guide and Advanced Administration Guide in IBM Knowledge Center. Also, you are recommended to refer the best practice in IBM DeveloperWorks GPFS Wiki. 4.1. Installation IBM Spectrum Scale should be installed on nodes that take roles of NameNode or DataNodes. Use the following command to install the : # rpm -hiv gpfs.hdfs-protocol-2.7.0-0.x86_64.rpm This package has the following dependencies: libacl libattr openjdk 7.0+ is installed under the /usr/lpp/mmfs/hadoop folder. To list the contents of this directory, use the following command: #ls /usr/lpp/mmfs/hadoop/ bin etc lib libexec README_dev sbin share You can add /usr/lpp/mmfs/hadoop/bin and /usr/lpp/mmfs/hadoop/sbin directory into the system bash shell PATH. 4.2. Configuration In this section, the assumption is that you have installed Hadoop distribution under $HADOOP_PREFIX on each machine in the cluster. The configuration for GPFS protocol are located under /usr/lpp/mmfs/hadoop/etc/hadoop for any Hadoop distribution. Configurations for Hadoop distribution are located in different locations, for example, /etc/hadoop/conf for IBM BigInsights IOP. The core-site.xml and hdfs-site.xml configuration files should be synced and kept identical for the IBM Spectrum Scale and Hadoop distribution. For slaves and log4j.properties, the IBM Spectrum Scale protocol and Hadoop distribution can take different configuration.

4.2.1. OS tuning for all nodes ulimit tuning for all nodes, ulimit -n and ulimit -u should be equal or larger than 65536. Too small value will make Hadoop java processes report unexpected exceptions. In Redhat, add the following lines at the end of /etc/security/limits.conf: * soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 For other Linux, you could check the linux guide of your distro. After the above change, you need to restart all services to make it effective. 4.2.2. Configure Hadoop Nodes Here, we just give the simple example about core-site.xml and slaves for open source Apache Hadoop: In the example, hostname of NameNode service is hs22n44, edit the following files in Hadoop standard configuration. In $HADOOP_PREFIX/etc/hadoop/core-site.xml, ensure that the configuration is fs.defaultfs: <name>fs.defaultfs</name> <value>hdfs://hs22n44:9000</value> Replace hs22n44:9000 with the hostname of your NameNode service and preferred port number. User can customize the other configurations like service port as. For more information, see http://hadoop.apache.org. In $HADOOP_PREFIX/etc/hadoop/slaves file, ensure that all nodes are listed in the file, for example: # cat $HADOOP_PREFIX/etc/hadoop/slaves hs22n44 hs22n54 hs22n45 As for hdfs-site.xml and other detailed configuration in core-site.xml, follow the link http://hadoop.apache.org to configure Hadoop nodes. So far, the following should be configured to avoid unexpected exceptions from Hadoop:

<name>dfs.datanode.handler.count</name> <value>40</value> <name>dfs.namenode.handler.count</name> <value>400</value> <name>dfs.datanode.max.transfer.threads</name> <value>8192</value> After the configuration, sync them to all Hadoop nodes. Note: if you take Hadoop distribution, like IBM BigInsights, you need to configure Hadoop components (e.g. HBase, Hive, oozie etc) in the management GUI, e.g. Ambari for IBM BigInsights. If you have trouble in configuration, send mail to scale@us.ibm.com for help. 4.2.3. Configure Nodes 4.2.2.1 Sync Hadoop configurations will take core-site.xml and hdfs-site.xml from the configuration of Hadoop distro, and gpfs-site.xml located under /usr/lpp/mmfs/hadoop/etc/hadoop by default. On any one node, assuming it s hdfs_transparency_node1 here, if the node is also Hadoop node, you could take the following command to sync core-site.xml, hdfs-site.xml, slaves and log4j.properties from Hadoop configuration to configuration directory(/usr/lpp/mmfs/hadoop/etc/hadoop by default): hdfs_transparency_node1#/usr/lpp/mmfs/hadoop/sbin/mmhadoopctl connector syncconf <hadoop-conf-dir> if the node hdfs_transparency_node1 is not Hadoop node, you need to take scp to copy <hadoop-conf-dir>/core-site.xml, <hadoop-conf-dir>/hdfs-site.xml, <hadoop-conf-dir>/log4j.properties into /usr/lpp/mmfs/hadoop/etc/hadoop/ on hdfs_transparency_node1.

4.2.2.2 Configure the storage mode Modify /usr/lpp/mmfs/hadoop/etc/hadoop/gpfs-site.xml on the node hdfs_transparency_node1: <name>gpfs.storage.type</name> <value>local</value> The property gpfs.storage.type is used to specify storage mode: local or shared. This is a required configuration and gpfs-site.xml should be synced to all nodes after the above modification. 4.2.2.3 Update other configuration files Note: as for how to configure hadoop, Yarn etc, please refer the hadoop.apache.org. In this section, we only focus on those configurations related with. Configurations for Apache Hadoop Modify /usr/lpp/mmfs/hadoop/etc/hadoop/gpfs-site.xml on the node hdfs_transparency_node1: <name>gpfs.mnt.dir</name> <value>/gpfs_mount_point</value> <name>gpfs.data.dir</name> <value>data_dir</value> <name>gpfs.supergroup</name> <value>hadoop</value> <name>gpfs.replica.enforced</name> <value>dfs</value> In gpfs-site.xml, all Hadoop data is stored under /gpfs_mount_point/data_dir directory. So, you can have two Hadoop clusters over the same file system and they will be isolated with each other. One

limitation is that if you have a link from outside of /gpfs_mount_point/data_dir directory into inside of /gpfs_mount_point/data_dir, when Hadoop operates the file, it will report an exception because Hadoop only sees it as /gpfs_mount_point/data_dir. All files outside of /gpfs_mount_point/data_dir is not visible for Hadoop jobs. gpf.supergroup should be configured as per your cluster. We need to add some Hadoop users, such as, yarn, hbase, hive, oozie, and etc, under the same group named hadoop and configure gpfs.supergroup as hadoop. You could specify two or more comma separated groups as gpfs.supergroup, for example, group1,group2,group3. Note: Users in gpfs.supergroup are super users who can control all the data in /gpfs_mount_point/data_dir, similar to the user root in Linux. gpfs.replica.enforced is used to control the replica rules. Hadoop controls the data replica by dfs.replication. When running Hadoop over IBM Spectrum Scale, IBM Spectrum Scale has its own replica rules. If we configure gpfs.replica.enforced as dfs, then dfs.replication will be effective always unless you specify dfs.replication in the command options when submitting jobs. If you configure it into gpfs.replica.enforced as gpfs, then all data will replicate from GPFS self as dfs.replication is not effective. Usually, it is taken as dfs. Usually, you shouldn t change core-site.xml and hdfs-site.xml located under /usr/lpp/mmfs/hadoop/etc/hadoop/. These two files should be consistent as the files used by Hadoop nodes. You need to modify /usr/lpp/mmfs/hadoop/etc/hadoop/slaves to add all DataNode hostnames and one hostname per line, for example: # cat /usr/lpp/mmfs/hadoop/etc/hadoop/slaves hs22n44 hs22n54 hs22n45 you could check /usr/lpp/mmfs/hadoop/etc/hadoop/log4j.properties and modify it accordingly(this file could be different as the log4j.properties used by Hadoop nodes). After you finish the configurations, use the following command to sync it to all GPFS nodes: hdfs_transparency_node1#/usr/lpp/mmfs/hadoop/sbin/mmhadoopctl connector syncconf /usr/lpp/mmfs/hadoop/etc/hadoop Configuration for IBM BigInsights IOP In IBM BigInsights IOP 4.0/4.1, IOP and IBM Spectrum Scale are integrated manually. So, it is easy to configure the IBM Spectrum Scale. For IBM BigInsights IOP 4.1, if you deployed IOP 4.1 with IBM Spectrum Scale Ambari integration, then email scale@us.ibm.com for more information. If you deployed IOP 4.1 without IBM Spectrum Scale Ambari integration, perform the following steps:

1. On the node hdfs_transparency_node1, run the following command to sync IBM BigInsights IOP configuration into GPFS protocol configuration directory: /usr/lpp/mmfs/hadoop/sbin/mmhadoopctl connector syncconf /etc/hadoop/conf/ 2. On the node hdfs_transparency_node1, refer the Configurations for Apache Hadoop section to create the /usr/lpp/mmfs/hadoop/etc/hadoop/gpfs-site.xml file, update /usr/lpp/mmfs/hadoop/etc/hadoop/slaves and /usr/lpp/mmfs/hadoop/etc/hadoop/log4j.properties. 3. On the node hdfs_transparency_node1, run the /usr/lpp/mmfs/hadoop/sbin/mmhadoopctl connector syncconf /usr/lpp/mmfs/ hadoop/etc/hadoop/ command to sync the gpfs-site.xml, core-site.xml, hdfs-site.xml, slaves and log4j.properties to all the IBM Spectrum protocol nodes. 4.2.2.4 Update environment variables for service. In some situations, user needs to update some environment variables for service, i.e. change JVM option or Hadoop environment variables like HADOOP_LOG_DIR. Following the steps: 1. On NameNode, modify /usr/lpp/mmfs/hadoop/etc/hadoop/hadoop-env.sh and other files accordingly 2. Sync the change to all other nodes by #/usr/lpp/mmfs/hadoop/sbin/mmhadoopctl connector syncconf /usr/lpp/mmfs/hadoop/etc/hadoop 4.3. Startup and stop the service On Name Node, start the hdfs protocol service by /usr/lpp/mmfs/hadoop/sbin/mmhadoopctl connector start Stop the service by /usr/lpp/mmfs/hadoop/sbin/mmhadoopctl connector stop Note: only root can start/stop the protocol services; Also, you need to keep native service down because provides the same services. If you keep both service up, it will report conflict in service network port number. You need to restart all other Hadoop services, such as Yarn, Hive, HBase etc after you replace native with.

4.4. Healthcheck the service #/usr/lpp/mmfs/hadoop/sbin/mmhadoopctl connector getstate #hadoop dfs -ls / If you see the configured nodes running the service and you can see the files from hadoop dfs -ls /, that means your setup is successful. Note: all users can run the above commands. 5. High Availability configuration The high availability (HA) implementation follows the High Availability feature using NFS. You can define a GPFS directory instead of a NFS directory to sync up information between two NameNodes. In the following configuration example, the nameservice ID is mycluster and name node ID are nn1 and nn2. Configuration should be done in the core-site.xml file by defining fs.defaultfs with the nameservice ID. <name>fs.defaultfs</name> <value>hdfs://mycluster</value> The following configuration should be done in the hdfs-site.xml file: <!--define dfs.nameservices ID--> <name>dfs.nameservices</name> <value>mycluster</value> <!--define name nodes ID for HA--> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> <!--Actual hostname and rpc address of name node ID--> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>c8f2n06.gpfs.net:8020</value>

<!--Actual hostname and rpc address of name node ID--> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>c8f2n07.gpfs.net:8020</value> <!--Actual hostname and http address of name node ID--> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>c8f2n06.gpfs.net:50070</value> <!--Actual hostname and http address of name node ID--> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>c8f2n07.gpfs.net:50070</value> <!--Shared directory used for status sync up--> <name>dfs.namenode.shared.edits.dir</name> <value>/gpfs/bigfs/ha</value> These configurations should be synced up into all nodes running services. Then you can start the service using the mmhadoopctl command. After the service gets started, both NameNodes are in the standby mode, by default. You can activate one NameNode using the following command so that it responds to the client: gpfs haadmin -transitiontoactive --forceactive [name node ID] For example, you can activate the nn1 NameNode by running the following command: #/usr/lpp/mmfs/hadoop/bin/gpfs haadmin -transitiontoactive forceactive nn1 If the nn1 NameNode fails, you can activate another NameNode and relay the service by running the following command #/usr/lpp/mmfs/hadoop/bin/gpfs haadmin -transitiontoactive forceactive nn2 Use the following command to get the status of the NameNode: /usr/lpp/mmfs/hadoop/bin/gpfs haadmin -getservicestate [name node ID]

6. Short circuit Read configuration In, read requests go through the DataNode. When the client asks the DataNode to read a file, the DataNode reads that file off of the disk and sends the data to the client over a TCP socket. The short-circuit read obtains the file descriptor from the DataNode, allowing the client to read the file directly. This is possible only in cases where the client is co-located with the data and used in the FPO mode. Short-circuit reads provide a substantial performance boost to many applications. Note: Short-circuit local reads can only be enabled on Hadoop 2.7.0. For more information on how to enable short-circuit reads on other Hadoop versions, contact scale@us.ibm.com. Configuring short-circuit local read: To configure short-circuit local reads, you will need to enable libhadoop.so and use the DFS Client shipped by the IBM Spectrum Scale protocol, the package name is gpfs.hdfs-protocol. You cannot use standard DFS Client to enable the short-circuit mode over the protocol. About this task To enable libhadoop.so, compile the native library on the target machine or use the library shipped by IBM Spectrum Scale protocol. To compile the native library on the specific machine, do the following steps: Procedure 1. Download hadoop source code from Hadoop community; untar the package and cd into that directory 2. Build by mvn: $ mvn package -Pdist,native -DskipTests -Dtar 3. Copy hadoop-dist/target/hadoop-2.7.1/lib/native/libhadoop.so.* to $HADOOP_PREFIX/lib/native/ Or, to use the libhadoop.so delivered by the protocol, copy /usr/lpp/mmfs/hadoop/lib/native/ libhadoop.so to $HADOOP_PREFIX /lib/native/libhadoop.so The shipped libhadoop.so is built on x86_64, ppc64, or ppc64le respectively. Note: This step should be done over all nodes running the Hadoop tasks. Enabling DFS Client: About this task To enable DFS Client, shipped along with the protocol, on each node that accesses IBM Spectrum Scale in the short-circuit mode: Procedure

1. Back up hadoop-hdfs-2.7.0.jar using $ mv $HADOOP_PREFIX/share/hadoop/hdfs/hadoop-hdfs-2.7.0.jar $HADOOP_PREFIX/share/hadoop/hdfs/hadoop-hdfs-2.7.0.jar.backup 2. Link hadoop-gpfs-2.7.0.jar to classpath $ln -s /usr/lpp/mmfs/hadoop/share/hadoop/hdfs/hadoop-gpfs-2.7.0.jar $HADOOP_PREFIX/share/hadoop/hdfs/hadoop-gpfs-2.7.0.jar 3. Update the core-site.xml file with the following information: <name>fs.hdfs.impl</name> <value>org.apache.hadoop.gpfs.distributedfilesystem</value> Results Short-circuit reads make use of a UNIX domain socket. This is a special path in the file system that allows the client and the DataNodes to communicate. You will need to set a path to this socket. The DataNode needs to be able to create this path. However, it should not be possible for any user except the user or root to create this path. Therefore, paths under /var/run or /var/lib folders are often used. The client and the DataNode exchange information through a shared memory segment on the /dev/shm path. Short-circuit local reads need to be configured on both the DataNode and the client. Here is an example configuration. <configuration> <name>dfs.client.read.shortcircuit</name> <value>true</value> <name>dfs.domain.socket.path</name> <value>/var/lib/hadoop-hdfs/dn_socket</value> </configuration> Sync up all these changes in the entire cluster and if needed, restart the service. Note: The /var/lib/hadoop-hdfs and dfs.domain.socket.path should be created manually by the root user before running the short-circuit read. The /var/lib/hadoop-hdfs should be owned by the root user. If not, the DataNode service will fail when starting up. #mkdir p /var/lib/hadoop-hdfs #chown root:root /var/lib/hadoop-hdfs #touch /var/lib/hadoop-hdfs/${dfs.dome.socket.path} #chmod 666 /var/lib/hadoop-hdfs/${dfs.dome.socket.path} The permission control in short-circuit reads is similar to the common user access in. If you

have the permission to read the file, then you can access it through short-circuit read. 7. How application interact with The Hadoop application interacts with the protocol similar to their interactions with. They can access using Hadoop file system APIs and DistributedFileSystem APIs. The application may have its own cluster that is larger than protocol cluster. However, all the nodes within the application cluster should be able to connect to all nodes in protocol cluster by RPC. Yarn can define the nodes in cluster using the slave files. However, protocol can use a set of configuration files that are different from yarn. In that case, slave files in protocol can be different from the one in the yarn. 7.1. Application interface In protocol, applications can use the APIs defined in org.apache.hadoop.fs.filesystem class and org.apache.hadoop.fs.abstractfilesystem class to access the file system. 7.2. Command line You can use the shell command line in the protocol. You can access commands from the command shell: $HADOOP_PREFIX/bin/hdfs Usage: hdfs [--config confdir] [--loglevel loglevel] COMMAND where COMMAND is one of: dfs run a filesystem command on the file systems supported in Hadoop. classpath prints the classpath version print the version Most commands print help when invoked without parameters. Notes: All commands from hdfs dfs are supported( hdfs dfs -du and hdfs dfs -df are not exact in the output, take du or df/mmdf for exact output). Other commands from hdfs interface are not supported(e.g. hdfs namenode format ) because these commands are not needed for GPFS.

8. Security So far, supports full Kerberos and it s verified over IBM BigInsights IOP 4.1 Refer the Spectrum Scale Security Guide in IBM DeveloperWorks GPFS Wiki. 9. Upgrading protocol cluster Before upgrading the protocol, you need to remove the older IBM Spectrum Scale Hadoop connector. 9.1. Removing Spectrum Scale Hadoop connector Removing IBM Spectrum Scale Hadoop connector 2.4 over IBM Spectrum Scale 4.1.0.4, 4.1.0.5, 4.1.0.6, or 4.1.0.7 releases For users who are using IBM Spectrum Scale Hadoop connector 2.4 over IBM Spectrum Scale 4.1.0.4, 4.1.0.5, 4.1.0.6, or 4.1.0.7 releases, this section explains the steps required to remove the old connector over each node in the cluster. Before you begin If you are using Hadoop 1.x, IBM Spectrum Scale Hadoop Connector 2.7 does not support Hadoop 1.x and you need to upgrade your Hadoop version first. Procedure 1. Remove any links or copies of the hadoop-gpfs-2.4.jar file from your Hadoop distribution directory. Also, remove any links or copies of the libgpfshadoop.64.so file from your Hadoop distribution directory. Note: For IBM BigInsights IOP 4.0, the distribution directory is /usr/iop/4.0.0.0. 2. Stop the current connector daemon: # ps -elf grep gpfs-connector-daemon #kill -9 <pid-of-connector-daemon> 3. Run the following commands, to remove callbacks from IBM Spectrum Scale: cd /usr/lpp/mmfs/fpo/hadoop-2.4/install_script./gpfs-callbacks.sh --delete Run the mmlscallbacks all command to check whether connector-related callbacks, such as

callback ID start-connector-daemon and stop-connector-daemon, have been removed. The IBM Spectrum Scale Hadoop connector callbacks are cluster-wide and this step is required to be done over any one of node. 4. Remove the following files: rm -f /var/mmfs/etc/gpfs-callbacks.sh rm -f /var/mmfs/etc/gpfs-callback_start_connector_daemon.sh rm -f /var/mmfs/etc/gpfs-callback_stop_connector_daemon.sh rm -f /var/mmfs/etc/gpfs-connector-daemon 5. Remove the IBM Spectrum Scale-specific configuration from your Hadoop core-site.xml file. Modify the fs.defaultfs into a schema format after removing the following configurations: fs.abstractfilesystem.gpfs.impl, fs.abstractfilesystem.hdfs.impl, fs.gpfs.impl, fs.hdfs.impl, gpfs.mount.dir, gpfs.supergroup What to do next Install and setup the protocol, see the Upgrading protocol cluster. Removing IBM Spectrum Scale Hadoop connector 2.4 over IBM Spectrum Scale 4.1.0.7 (efix3) or 4.1.0.8 releases For users who are using IBM Spectrum Scale Hadoop connector 2.4 over IBM Spectrum Scale 4.1.0.7 (efix3) or 4.1.0.8 releases, this section explains the steps required to remove the old connector over each node in the cluster. Before you begin If you are using Hadoop 1.x, IBM Spectrum Scale Hadoop Connector 2.7 does not support Hadoop 1.x and you need to upgrade your Hadoop version first. Procedure 1. mmhadoopctl connector stop 2. mmhadoopctl connector detach --distribution BigInsights 3. rpm -e gpfs.hadoop-2-connector 4. Remove the IBM Spectrum Scale-specific configuration from your Hadoop core-site.xml file. Modify the fs.defaultfs into a schema format after removing the following configurations: fs.abstractfilesystem.gpfs.impl, fs.abstractfilesystem.hdfs.impl, fs.gpfs.impl, fs.hdfs.impl, gpfs.mount.dir, gpfs.supergroup What to do next Install and setup the protocol, see the Upgrading protocol cluster. Removing IBM Spectrum Scale Hadoop connector 2.4 or 2.5 over IBM Spectrum Scale 4.1.1+ releases For users who are using IBM Spectrum Scale Hadoop connector 2.4 or 2.5 over IBM Spectrum Scale 4.1.1+ releases, this section explains the steps required to remove the old connector over each node in

the cluster. Before you begin If you are using Hadoop 1.x, IBM Spectrum Scale Hadoop Connector 2.7 does not support Hadoop 1.x and you need to upgrade your Hadoop version first. Procedure 1. mmhadoopctl connector stop 2. mmhadoopctl connector detach --distribution BigInsights 3. rpm -e gpfs.hadoop-2-connector 4. Remove the IBM Spectrum Scale-specific configuration from your Hadoop core-site.xml file. Modify the fs.defaultfs into a schema format after removing the following configurations: fs.abstractfilesystem.gpfs.impl, fs.abstractfilesystem.hdfs.impl, fs.gpfs.impl, fs.hdfs.impl, gpfs.mount.dir, gpfs.supergroup What to do next Install and setup the protocol, see the information. Upgrading protocol cluster for more Removing IBM Spectrum Scale Hadoop connector 2.7 (earlier release) over IBM Spectrum Scale 4.1.0.7 (efix3+), 4.1.0.8, or 4.1.1+ releases For users who are using IBM Spectrum Scale Hadoop connector 2.7 (earlier release) over IBM Spectrum Scale 4.1.0.7 (efix3+), 4.1.0.8, or 4.1.1+ releases, this section explains the steps required to remove the old connector over each node in the cluster. Before you begin If you are using Hadoop 1.x, IBM Spectrum Scale Hadoop Connector 2.7 does not support Hadoop 1.x and you need to upgrade your Hadoop version first. Procedure 1. mmhadoopctl connector stop 2. mmhadoopctl connector detach --distribution BigInsights 3. rpm -e gpfs.hadoop-2-connector 4. Remove the IBM Spectrum Scale-specific configuration from your Hadoop core-site.xml file. Modify the fs.defaultfs into a schema format after removing the following configurations: fs.abstractfilesystem.gpfs.impl, fs.abstractfilesystem.hdfs.impl, fs.gpfs.impl, fs.hdfs.impl, gpfs.mount.dir, gpfs.supergroup What to do next Install and setup the protocol, see the information. Upgrading protocol cluster for more

9.2. Upgrading cluster This section explains how to upgrade cluster. Procedure 1. Backup the configuration, in case of any failures. 2. Stop the protocol service on all nodes using the command: /usr/lpp/mmfs/hadoop/sbin/ mmhadoopctl connector stop 3. Upgrade the RPM on each node by using the command: rpm U gpfs.hdfs-protocol-2.7.0-<x>.x86_64.rpm. It does not update any configuration files under the /usr/lpp/mmfs/hadoop/etc/hadoop folder. core-site.xml, hdfs-site.xml, and slaves files will not be removed during the upgrade. 4. Start service on all nodes using the command: /usr/lpp/mmfs/hadoop/sbin/ mmhadoopctl connector start 10. Limitation and difference from The configuration that differ from in SPECTRUM SCALE Property name Value New definition or limitation dfs.permissions.enabled True/false For protocol, permission check is always done. dfs.namenode.acls.enabled True/false For native, its NameNode will manage all meta data including ACL information. So, can use this to turn on or off the ACL checking. However, for SPECTRUM SCALE, protocol won t hold the meta data. When it s on, the ACL will be set and stored in SPECTRUM SCALE file system; if the admin turns this off later, the ACL entries set before are still stored in SPECTRUM SCALE and take effective. This will be improved in the next release. dfs.blocksize Long digital Must be integer multiple of SPECTRUM SCALE file system

blocksize (mmlsfs -B), the maximal value is 1024 * file-system-data-block-size(mmlsfs B) Spectrum Scale.data.dir String Any user in Hadoop should have full access to this directory. If this configuration is omitted, any user in Hadoop should have full access to Spectrum Scale.mount.dir dfs.namenode.fs-limits.max-xattrs-perinode INT Does not apply to protocol dfs.namenode.fs-limits.max-xattr-size INT Not apply to hdfs protocol Function limitation. Max number of EA is limited by SPECTRUM SCALE, the total size of EA key and value should be less than an metadata block size in SPECTRUM SCALE. EA operation on snapshots is not supported now. Raw namespace is not implemented as it's not used internally. 11. Problem Determination Refer the link for known problem determination 12. Revision History # Date Comments 0.1 2016-1-4 Yong(zhengyzy@cn.ibm.com) initialized the first version from GPFS Advanced PDF. 0.2 2016-1-5 Merge the draft from Tian(ftbj@cn.ibm.com) about shared storage support. 0.3 2016-1-5 Yong(zhengyzy@cn.ibm.com) re-constructed the sections for installation, configuration and upgrade. 0.4 2016-1-13 Tian(ftbj@cn.ibm.com) added the section How to update environment variables for hdfs service. 0.5 2016-1-22 Merge the comments from

Akash(avagrawa@in.ibm.com)