Skip to content
Published on

Hadoop 3.4 Ubuntuへのインストール(Non Secure)

Authors
  • Name
    Twitter

Overview

Hadoopのビルド方法に続いて、クラスターモードのインストール方法を共有します。

バイナリファイルの解凍

https://hadoop.apache.org/releases.htmlで希望するバージョンのHadoopを見つけます。 筆者はHadoopのリリースバージョンではなく、現在の最新開発ブランチであるtrunkのHadoop 3.4バージョンのソースをビルドして生成されたバイナリでインストールしました。 参考:Hadoop 3.4 ビルド方法

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -zxvf hadoop-3.3.4.tar.gz
sudo cp -r hadoop-3.4.4 /usr/local/hadoop

環境変数の設定:~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
export ZOOKEEPER_HOME=/usr/local/zookeeper
export HBASE_HOME=/usr/local/hbase
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar
export HIVE_HOME=/usr/local/hive
export SPARK_HOME=/usr/local/spark
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$SPARK_HOME/bin

設定の変更

HDFS configuration

core-site.xml
<configuration>
        <property>
                <name>fs.default.name</name>
		        <value>hdfs://ubuntu01:9000</value>
        </property>
        <property>
                 <name>hadoop.tmp.dir</name>
                 <value>/usr/local/hadoop/tmp</value>
         </property>
</configuration>
hdfs-site.xml
<configuration>
	<property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.permissions.enabled</name>
                <value>false</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
		<property>
		    <name>dfs.namenode.name.dir</name>
		    <value>/dfs/nn</value>
	    </property>
	    <property>
		    <name>dfs.datanode.data.dir</name>
		    <value>/dfs/dn</value>
	    </property>
</configuration>

hadoop-env.shに以下の内容を追加します。

hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_DATANODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
hadoop/etc/hadoop/workers
ubuntu02
ubuntu03
ubuntu04
ubuntu05
ubuntu06

YARN configuration

yarn-site.xml
<configuration>
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
    </property>
    <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>ubuntu01:8025</value>
    </property>
    <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>ubuntu01:8030</value>
    </property>
    <property>
            <name>yarn.resourcemanager.address</name>
            <value>ubuntu01:8040</value>
    </property>
</configuration>

鍵の配布

以下のコマンドをマスターノードで実行し、Enterキーを連打します。

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:D7CPU5pl7TUrMINhMzsO/ZVEXOE2YI73M/HCcDruhAQ root@yxxxxx
The key's randomart image is:
+---[RSA 3072]----+
|         .+.o.   |
|         =.o     |
|      E . = *    |

~/.ssh/以下に生成されたRSA公開鍵を、すべてのノード(マスターノードを含む)の~/.ssh/authorized_keysにコピーします。

~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADSxxxxxxxx...mmn8= root@yxxxxxx

すべてのノードで~/.sshフォルダを作成します。(マスターノードの場合は、keygenプロセスで~/.sshフォルダが既に作成されているはずです。) エディタを開いて、上記でコピーしたマスターの公開鍵を~/.ssh/authorized_keysに追加します。

mkdir ~/.ssh
vim ~/.ssh/authorized_keys

namenodeのフォーマット

マスターノード(ubuntu01)で以下のコマンドを実行します。

hdfs naemnode -format

Hadoopクラスターの起動

以下のコマンドを実行すると、マスターノードであるubuntu01にはnamenodeとresource-managerが、ワーカーノードであるubuntu02からubuntu06にはnode-managerが起動されます。

start-all.sh

jpsコマンドで実行中のHadoopプロセスを確認します。

マスターノードの場合は以下のように表示されます。

jps
1693816 ResourceManager
1702488 SecondaryNameNode
1703408 Jps
1701958 NameNode

ワーカーノードの場合は以下のように表示されます。

jps
1703882 DataNode
1704983 Jps
1704373 NodeManager

Web UIの確認

Namenode Web UIであるhttp://ubuntu01:9870にアクセスして、namenodeとdatanodeが正常に動作しているか確認します。

Resource Manager Web UIであるhttp://ubuntu01:8088にアクセスして、resource managerとnode managerの状態を確認します。