Apache Hadoopは、ビッグデータの分散ストレージと分散処理のために連携して動作する複数のオープンソースソフトウェアパッケージで構成されています。 Hadoopには4つの主要なコンポーネントがあります:
- Hadoop Common –Hadoopが実行に依存するさまざまなソフトウェアライブラリ
- Hadoop分散ファイルシステム(HDFS) –コンピューターのクラスター全体でビッグデータを効率的に分散および保存できるファイルシステム
- Hadoop MapReduce –データの処理に使用されます
- Hadoop YARN –クラスター全体のコンピューティングリソースの割り当てを管理するAPI
このチュートリアルでは、Ubuntu20.04にHadoopバージョン3をインストールする手順について説明します。これには、HDFS(NamenodeおよびDatanode)、YARN、およびMapReduceを、単一のマシンで分散シミュレーションである疑似分散モードで構成された単一ノードクラスターにインストールすることが含まれます。 Hadoopの各コンポーネント(HDFS、YARN、MapReduce)は、個別のJavaプロセスとしてノード上で実行されます。
このチュートリアルでは、次のことを学びます。
- Hadoop環境のユーザーを追加する方法
- Javaの前提条件をインストールする方法
- パスワードなしのSSHを構成する方法
- Hadoopをインストールし、必要な関連XMLファイルを構成する方法
- Hadoopクラスターを開始する方法
- NameNodeおよびResourceManagerWebUIにアクセスする方法

カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
Ubuntu20.04をインストールまたはUbuntu20.04FocalFossaをアップグレード | |
Apache Hadoop、Java | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
Hadoop環境のユーザーを作成する
Hadoopには、システムに専用のユーザーアカウントが必要です。ターミナルを作成するには、ターミナルを開いて次のコマンドを入力します。アカウントのパスワードを作成するように求められます。
$ sudo adduser hadoop

Java前提条件をインストールする
HadoopはJavaに基づいているため、Hadoopを使用する前に、システムにインストールする必要があります。この記事の執筆時点では、現在のHadoopバージョン3.1.3にはJava 8が必要であるため、これをシステムにインストールします。
次の2つのコマンドを使用して、apt
の最新のパッケージリストを取得します。 Java 8をインストールします:
$ sudo apt update $ sudo apt install openjdk-8-jdk openjdk-8-jre
パスワードなしのSSHを構成する
HadoopはSSHに依存してノードにアクセスします。 SSHを介してリモートマシンに接続し、Hadoopを実行している場合はローカルマシンに接続します。したがって、このチュートリアルではローカルマシンにHadoopをセットアップするだけですが、SSHをインストールする必要があります。また、パスワードなしのSSHを構成して、
Hadoopがバックグラウンドでサイレントに接続を確立できるようにする必要があります。
- OpenSSHサーバーとOpenSSHクライアントの両方のパッケージが必要です。次のコマンドでインストールします:
$ sudo apt install openssh-server openssh-client
- 先に進む前に、
hadoop
にログインすることをお勧めします 以前に作成したユーザーアカウント。現在の端末のユーザーを変更するには、次のコマンドを使用します:$ su hadoop
- これらのパッケージをインストールしたら、次のコマンドを使用して公開鍵と秘密鍵のペアを生成します。ターミナルから何度かプロンプトが表示されますが、必要なのは
ENTER
を押し続けることだけです。 続行します。$ ssh-keygen -t rsa
パスワードなしのSSH用のRSAキーの生成
- 次に、新しく生成されたRSAキーを
id_rsa.pub
にコピーしますauthorized_keys
に移動します :$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- ローカルホストにSSHで接続することにより、構成が成功したことを確認できます。パスワードの入力を求められることなくそれを実行できる場合は、問題ありません。
パスワードの入力を求められずにシステムにSSHで接続すると、システムが機能したことを意味します
Hadoopをインストールして関連するXMLファイルを構成する
ApacheのWebサイトにアクセスして、Hadoopをダウンロードします。 Hadoopバージョン3.1.3バイナリを直接ダウンロードする場合は、次のコマンドを使用することもできます。
$ wget https://downloads.apache.org/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
ダウンロードをhadoop
に抽出します 次のコマンドを使用したユーザーのホームディレクトリ:
$ tar -xzvf hadoop-3.1.3.tar.gz -C /home/hadoop
環境変数の設定
次のexport
コマンドは、システムに必要なHadoop環境変数を構成します。これらすべてをコピーして端末に貼り付けることができます(Hadoopのバージョンが異なる場合は、1行目を変更する必要がある場合があります):
export HADOOP_HOME=/home/hadoop/hadoop-3.1.3
export HADOOP_INSTALL=$HADOOP_HOME
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_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
.bashrc
を入手する 現在のログインセッションのファイル:
$ source ~/.bashrc
次に、hadoop-env.sh
にいくつかの変更を加えます ファイル。Hadoopインストールディレクトリの/etc/hadoop
にあります。 。 nanoまたはお気に入りのテキストエディタを使用して開きます:
$ nano ~/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
JAVA_HOME
を変更します Javaがインストールされている場所への変数。私たちのシステム(そしておそらくあなたもUbuntu 20.04を実行していて、これまで私たちと一緒にフォローしている場合)では、その行を次のように変更します:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

ここで行う必要がある変更はこれだけです。ファイルへの変更を保存して閉じることができます。
core-site.xmlファイルの構成変更
次に行う必要のある変更は、core-site.xml
内です。 ファイル。次のコマンドで開きます:
$ nano ~/hadoop-3.1.3/etc/hadoop/core-site.xml
次の構成を入力します。これは、HDFSにローカルホストポート9000で実行するように指示し、一時データ用のディレクトリを設定します。
fs.defaultFS
hdfs://localhost:9000
hadoop.tmp.dir
/home/hadoop/hadooptmpdata

変更を保存して、このファイルを閉じます。次に、一時データが保存されるディレクトリを作成します。
$ mkdir ~/hadooptmpdata
hdfs-site.xmlファイルの構成変更
NamenodeとDatanodeの情報を保存するためにHadoop用に2つの新しいディレクトリを作成します。
$ mkdir -p ~/hdfs/namenode ~/hdfs/datanode
次に、次のファイルを編集して、これらのディレクトリの場所をHadoopに指示します。
$ nano ~/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
hdfs-site.xml
に次の変更を加えます ファイルを保存して閉じる前に:
dfs.replication
1
dfs.name.dir
file:///home/hadoop/hdfs/namenode
dfs.data.dir
file:///home/hadoop/hdfs/datanode

mapred-site.xmlファイルの構成変更
次のコマンドを使用して、MapReduceXML構成ファイルを開きます。
$ nano ~/hadoop-3.1.3/etc/hadoop/mapred-site.xml
また、ファイルを保存して閉じる前に、次の変更を加えてください。
mapreduce.framework.name
yarn

yarn-site.xmlファイルの構成変更
次のコマンドでYARN構成ファイルを開きます。
$ nano ~/hadoop-3.1.3/etc/hadoop/yarn-site.xml
変更を保存して閉じる前に、このファイルに次のエントリを追加してください。
mapreduceyarn.nodemanager.aux-services
mapreduce_shuffle

Hadoopクラスターの開始
クラスターを初めて使用する前に、namenodeをフォーマットする必要があります。次のコマンドでそれを行うことができます:
$ hdfs namenode -format

あなたの端末はたくさんの情報を吐き出します。エラーメッセージが表示されない限り、機能したと見なすことができます。
次に、start-dfs.sh
を使用してHDFSを開始します スクリプト:
$ start-dfs.sh

次に、start-yarn.sh
を介してYARNサービスを開始します。 スクリプト:
$ start-yarn.sh

すべてのHadoopサービス/デーモンが正常に開始されたことを確認するには、jps
を使用できます。 指図。これにより、システムで実行されている、現在Javaを使用しているすべてのプロセスが表示されます。
$ jps

これで、次のコマンドのいずれかを使用して、現在のHadoopバージョンを確認できます。
$ hadoop version
または
$ hdfs version

HDFSコマンドラインインターフェイス
HDFSコマンドラインは、HDFSにアクセスし、ディレクトリを作成したり、ファイルやディレクトリを操作するための他のコマンドを発行したりするために使用されます。次のコマンド構文を使用して、いくつかのディレクトリを作成し、それらを一覧表示します。
$ hdfs dfs -mkdir /test $ hdfs dfs -mkdir /hadooponubuntu $ hdfs dfs -ls /

ブラウザからNamenodeとYARNにアクセスします
NameNodeのWebUIとYARNResourceManagerの両方に、MozillaFirefoxやGoogleChromeなどの任意のブラウザを介してアクセスできます。
NameNode Web UIの場合は、http://HADOOP-HOSTNAME-OR-IP:50070
に移動します。

Hadoopクラスターで現在実行中のすべてのジョブを表示するYARNResourceManager Webインターフェースにアクセスするには、http://HADOOP-HOSTNAME-OR-IP:8088
に移動します。

結論
この記事では、Ubuntu 20.04FocalFossaの単一ノードクラスターにHadoopをインストールする方法を説明しました。 Hadoopは、ビッグデータを処理するための便利なソリューションを提供し、データの保存と処理にクラスターを利用できるようにします。柔軟な構成と便利なWebインターフェイスにより、大量のデータを処理する際の作業が楽になります。