【Hadoop】Hadoop ~ 環境設定 / Linux編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/12/26/223506

の Linux版。

目次

【0】設定環境
【1】Hadoop のインストール
 1)Hadoopのダウンロード
 2)Hadoopのインストール
 3)環境変数の設定
 4)環境変数の有効化
【2】Hadoop のデータ格納先の準備
【3】Hadoop の設定ファイルの修正
【4】SSHの設定
 1)OpenSSHのインストール
 2)SSH鍵の設定
【5】動作確認
 1)コマンドによる確認
 2)Web UIによる確認

【0】設定環境

OS : Ubuntu v18.04.3 LTS (Bionic Beaver)
Java : openjdk version "1.8.0_232"
Hadoop : v3.2.1

【1】Hadoop のインストール

1)Hadoopのダウンロード

以下のサイトからHadoopをダウンロードする
 => 今回は、「hadoop-3.2.1.tar.gz」

http://ftp.kddilabs.jp/infosystems/apache/hadoop/common/

以下のコマンドでもできる。
===
wget https://downloads.apache.org/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
===

2)Hadoopのインストール

任意の場所に解凍する

cd /opt
sudo tar xvzf ~/hadoop-3.2.1.tar.gz

# hadoopディレクトリの権限設定
cd /opt/hadoop-3.2.1
sudo chown -R user:user /opt/hadoop-3.2.1

3)環境変数の設定

readlink -f /usr/bin/javac | sed "s:/bin/javac::"
/usr/lib/jvm/java-8-openjdk-amd64

sudo vi /etc/profile.d/java.sh
sudo vi /opt/hadoop-3.2.1/etc/hadoop/hadoop-env.sh
sudo vi /etc/profile.d/hadoop.sh

/etc/profile.d/java.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

/opt/hadoop-3.2.1/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

/etc/profile.d/hadoop.sh

export HADOOP_HOME=/opt/hadoop-3.2.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

4)環境変数の有効化

source /etc/profile.d/java.sh
source /etc/profile.d/hadoop.sh

【2】Hadoop のデータ格納先の準備

任意の場所に、DataNode、NameNode用のファルダを作成する。

NameNode用

sudo mkdir -p /var/data/hadoop/hdfs/namenode

DataNode用

sudo mkdir -p /var/data/hadoop/hdfs/datanode
sudo chown -R user:user /var/data/hadoop/hdfs

log

sudo mkdir -p /var/log/hadoop/yarn
sudo chown -R user:user /var/log/hadoop/yarn

【3】Hadoop の設定ファイルの修正

%HADOOP_HOME%\etc\hadoop 配下にあるファイルを修正する
(不安な場合は、ファイルを一旦バックアップをしてから行う)

vi /opt/hadoop-3.2.1/etc/hadoop/hdfs-site.xml
vi /opt/hadoop-3.2.1/etc/hadoop/core-site.xml
vi /opt/hadoop-3.2.1/etc/hadoop/mapred-site.xml
vi /opt/hadoop-3.2.1/etc/hadoop/yarn-site.xml

/opt/hadoop-3.2.1/etc/hadoop/hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/var/data/hadoop/hdfs/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/var/data/hadoop/hdfs/datanode</value>
  </property>
</configuration>

/opt/hadoop-3.2.1/etc/hadoop/core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

/opt/hadoop-3.2.1/etc/hadoop/mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

/opt/hadoop-3.2.1/etc/hadoop/yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
</configuration>

【4】SSHの設定

1)OpenSSHのインストール

# 一旦、アンインストール
sudo apt-get remove openssh-client openssh-server

# インストール
sudo apt-get install openssh-client openssh-server

2)SSH鍵の設定

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

【5】動作確認

1)コマンドによる確認

以下をコマンドを順番に行い、エラーがでないことを確認する

# 1
hadoop version

# 2
hadoop -help

# 3
hdfs namenode -format

# 4
start-dfs.sh
# stop-dfs.shで停止
stop-dfs.sh

# 5
start-yarn.sh
# stop-yarn.shで停止
stop-dfs.sh

# 6(※stopせずにそのまま)
start-all.sh

2)Web UIによる確認

ブラウザで以下のURLを確認

Resource Manager
http://localhost:8088/
Node Manager
http://localhost:8042/
Name Node (Hadoop v3系の場合)
http://localhost:9870/

トラブルシューティング

うまく繋がらなかった際のトラブルシューティングを
以下の関連記事にまとめた。

Hadoop / Hive 環境構築時のトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/02/12/160221

参考文献

https://toritakashi.com/?p=727
https://qiita.com/nyapori/items/6783838739e27ab328b2
https://code-macchiato.com/post/learning-hadoop-1-installation
https://www.atmarkit.co.jp/ait/articles/1701/01/news014.html

関連記事

Apache Hive ~ 環境設定 / Linux編 ~
https://dk521123.hatenablog.com/entry/2020/01/02/000000
Apache Hadoop ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/12/26/223506
Apache Hive ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/12/28/021109
Docker Desktop / WSL2 ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505
Amazon EMR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/20/230519
Hadoop / Hive 環境構築時のトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/02/12/160221