CentOS7の単一ノードにApacheHadoopをインストールして構成する方法


Apache Hadoopは、分散型ビッグデータストレージおよびコンピュータークラスター間でデータを処理するためのオープンソースフレームワークビルドです。このプロジェクトは、次のコンポーネントに基づいています。

  1. Hadoop Common – it contains the Java libraries and utilities needed by other Hadoop modules.
  2. HDFS – Hadoop Distributed File System – A Java based scalable file system distributed across multiple nodes.
  3. MapReduce – YARN framework for parallel big data processing.
  4. Hadoop YARN: A framework for cluster resource management.

この記事では、CentOS7の単一ノードクラスターにApacheHadoopをインストールする方法について説明します(RHEL7およびFedora23以降のバージョンでも機能します)。このタイプの構成は、Hadoop疑似分散モードとも呼ばれます。

ステップ1:CentOS7にJavaをインストールする

1. Javaのインストールを続行する前に、まずrootユーザーまたはroot権限を持つユーザーでログインし、次のコマンドを使用してマシンのホスト名を設定します。

# hostnamectl set-hostname master

また、システムのIPアドレスを指すように、独自のマシンFQDNを使用してhostsファイルに新しいレコードを追加します。

# vi /etc/hosts

以下の行を追加します。

192.168.1.41 master.hadoop.lan

上記のホスト名とFQDNレコードを独自の設定に置き換えます。

2.次に、Oracle Javaダウンロードページに移動し、curlコマンドを使用してシステム上のJava SE Development Kit8の最新バージョンを入手します。

# curl -LO -H "Cookie: oraclelicense=accept-securebackup-cookie" “http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-linux-x64.rpm”

3. Javaバイナリのダウンロードが完了したら、次のコマンドを発行してパッケージをインストールします。

# rpm -Uvh jdk-8u92-linux-x64.rpm

ステップ2:CentOS7にHadoopフレームワークをインストールする

4.次に、Hadoopのインストールパスと作業環境に使用するルート権限のない新しいユーザーアカウントをシステムに作成します。新しいアカウントのホームディレクトリは、/opt/hadoop ディレクトリにあります。

# useradd -d /opt/hadoop hadoop
# passwd hadoop

5.次のステップで、Apache Hadoopページにアクセスして、最新の安定バージョンへのリンクを取得し、システムにアーカイブをダウンロードします。

# curl -O http://apache.javapipe.com/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz 

6.アーカイブを抽出し、ディレクトリの内容をhadoopアカウントのホームパスにコピーします。また、それに応じて、コピーしたファイルのアクセス許可を変更してください。

#  tar xfz hadoop-2.7.2.tar.gz
# cp -rf hadoop-2.7.2/* /opt/hadoop/
# chown -R hadoop:hadoop /opt/hadoop/

7.次に、hadoopユーザーでログインし、 .bash_profile ファイルを編集して、システムでHadoopおよびJava環境変数を構成します。

# su - hadoop
$ vi .bash_profile

ファイルの最後に次の行を追加します。

## JAVA env variables
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

## HADOOP env variables
export HADOOP_HOME=/opt/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

8.ここで、環境変数を初期化し、以下のコマンドを発行してそれらのステータスを確認します。

$ source .bash_profile
$ echo $HADOOP_HOME
$ echo $JAVA_HOME

9.最後に、以下のコマンドを実行して、hadoopアカウントのsshキーベースの認証を構成します(それに応じて、ホスト名またはFQDNを ssh-copy-id コマンドに置き換えます)。

また、ssh経由で自動的にログインするには、パスフレーズを空白のままにします。

$ ssh-keygen -t rsa
$ ssh-copy-id master.hadoop.lan