@ubuntu での HADOOP3.3.1 のスタンドアロンおよび疑似分散インストール
まず、この記事の主なインストール手順は、Lin Ziyu 著『Big Data Technology Principles and Applications』を参照しています。この記事は、著者が書籍の手順に従って Hadoop を構成するときに遭遇した問題のいくつかを記録することを目的としています。バージョン変更後に発生した問題と、それに対応する解決策を同時に提供します。
ubuntu での HADOOP3.3.1 のスタンドアロン インストール
- まず、独自の ubuntu システムで新しいユーザーを作成します。つまり、比較的独立した実験環境を作成します (この記事のデフォルトの読者のコンピューターは Linux システムです)。
ユーザーを作成するコマンドは次のとおりです
$ sudo useradd -m hadoop -s /bin/bash
次に、新しいユーザーのパスワードを設定します
$ sudo passwd hadoop
最後に、新しいユーザーに管理者権限を追加します
$ sudo adduser hadoop sudo
このようにして、Linux 上で新しい Hadoop 実験用ユーザーが作成されるので、次に、実験用ユーザー Hadoop を再起動します。
$ sudo shutdown -r
Linuxの再起動コマンド
PS: 上記の操作説明の作成者は操作中にエラーに遭遇しませんでしたが、読者の中でエラーが発生した場合は、メッセージを残してください。
- apt を更新し、vim エディタをインストールします
PS: Linux システムを初めて使用する場合は、ソースの動作を変更することをお勧めしますが、ここでは詳細は説明しません。
次のように apt コマンドを更新します
$ sudo apt-get update
vimエディタをインストールするコマンドは以下の通りです。
$ sudo apt-get install vim
インストール中に確認が必要です。プロンプトでyと入力するだけです(y/n)。
- SSH をインストールし、SSH パスワードなしログインを構成する
SSH クライアントはデフォルトで Ubuntu システムにインストールされているため、SSH サーバーをインストールするだけで済みます。コマンドは次のとおりです。
$ sudo apt-get install openssh-server
確認メッセージが表示された場合も y を入力してください
インストール後、次のコマンドを使用してマシンにログインします。
$ ssh localhost
プロンプトが表示されたら、「yes」と入力し、ローカル パスワードを入力してログインします。ログインするたびにパスワードを入力する必要があることがわかるので、パスワードなしのログインを構成します。
前回のログインからログアウトする
$ exit
ssh-keygen を使用してキーを生成し、そのキーを認証に追加します。コマンドは次のとおりです。
$ cd ~/.ssh/
$ ssh-keygen -t rsa
PS: ここでは、命令の 2 行目を入力した後、そのまま Enter キーを押し続けてください。連続して追加の文字を入力しないでください。
その後のコマンドは次のとおりです。
$ cat ./id_rsa.pub >> ./authorized_keys
PS: ここにコマンドを 1 行で入力し、行を区切らないでください。
このとき、ssh localhostを使用してパスワードなしでログインします。
- JAVA 環境のインストール
PS: JAVA インストール パッケージのダウンロードについてはここではあまり詳しく説明しませんが、この記事のデフォルトの JDK バージョンは1.8で、圧縮パッケージのダウンロード ディレクトリは~/Downloadにあります。
次のコマンドを実行して、ファイルを保存するための「/usr/lib/jvm」ディレクトリを作成します。
$ cd /usr/lib
$ sudo mkdir jvm
次のコマンドを実行して、インストール パッケージを解凍します。
$ cd ~
$ cd 下载
$ sudo tar -zxvf ./jdk-8u301-linux-x64.tar.gz -C /usr/lib/jvm
解凍後、環境変数を設定します。
$ vim ~/.bashrc
ファイルの先頭に次のコードを追加します:
PS: vim を入力した後、i を押して編集状態に入ります。コンテンツを追加した後、Esc キーを押して編集モードを終了し、次に押します:、wq! と入力して保存して終了します。ヴィム
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_301
export JRE_HOME=${
JAVA_HOME}/jre
export CLASSPATH=.:${
JAVA_HOME}/lib:${
JRE_HOME}/lib
export PATH=${
JAVA_HOME}/bin:$PATH
上記のように vim を保存して終了し、次のコマンドを実行してファイルを有効にします。
$ source ~/.bashrc
この時点で、次のコマンドを使用して、JAVA が正常にインストールされ、構成されているかどうかを確認します。
$ java -version
この時点で基本的な設定プロセスは終了したので、次に Hadoop を設定します。
スタンドアロン HADOOP をインストールする
Hadoop をスタンドアロン モードで実行する場合、すべてのノードが同じマシン上にあり、ストレージはローカル ファイル システムを使用し、HDFS は関与しません。
以下のインストール手順では、実験に HADOOP3.3.1 を使用します。
Hadoop 公式 Web サイト (https://hadoop.apache.org/releases.html) から 3.3.1 に対応するインストール パッケージをダウンロードします。インストール パッケージのダウンロード場所は ~/Downloads または ~/Downloads ディレクトリにあります。パッケージの名前は hadoop-3.3 .1.tar.gz なので、インストール操作に進みます。
PS: 次のデフォルトのインストール パッケージは ~/Downloads に保存されます。
$ sudo tar -zxf ~/Downloads/hadoop-3.3.1.tar.gz -C /usr/local
この時点で、Hadoop は指定されたディレクトリに解凍されています。次に、ディレクトリ名を変更して権限を付与します。
$ sudo mv ./hadoop-3.3.1.tar.gz ./hadoop
$ sudo chown -R hadoop ./hadoop
この時点で、次のコマンドを使用して Hadoop のバージョン番号を確認できます。
$ /usr/local/hadoop/bin/hadoop version
次の情報が返された場合、インストールは成功しています。
Hadoop 3.3.1
Source code repository https://github.com/apache/hadoop.git -r a3b9c37a397ad4188041dd80621bdeefc46885f2
Compiled by ubuntu on 2021-06-15T05:13Z
Compiled with protoc 3.7.1
From source with checksum 88a4ddb2299aca054416d6b7f81ca55
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.1.jar
HADOOP擬似分散インストール
分散インストールでは、Hadoop ストレージは HDFS を使用し、ネーム ノードとデータ ノードは別のマシンで実行されます。擬似分散インストールはクラスター分散をシミュレートしますが、クラスター内にノードは 1 つだけあり、ネーム ノードとデータ ノードは両方とも 1 つのマシン上にあります。ただし、仮想マシンや Docker などのテクノロジーを利用すれば、コンピュータ上で分散インストールを実現することもできます。次の記事では、Docker を使用して分散 Hadoop を構築するプロセスを紹介します。
まず、Hadoop インストール ディレクトリ内の 2 つのファイル (core.site.xml および hdfs.site.xml) を変更します。PS
: 以下に関係するファイル パスは /usr/local/hadoop/etc/hadoop です。cd コマンドを使用してアクセスします。 ls コマンドを使用して表示します
変更された core.site.xml の内容は次のとおりです。
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
変更された hdfs.site.xml の内容は次のとおりです。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>127.0.0.1:50070</value>
</property>
</configuration>
ここでの内容は書籍の内容とは若干異なりますが、どちらも許容可能であり、参照のみを目的としています。
構成が完了したら、ノードを初期化します。
$ cd /usr/local/hadoop
$ ./bin/hdfs namenode -format
実行後、長い返信が表示されます。最後の数行はエラーのように見えますが、この時点では心配しないでください。返信の最後の 10 行で正常にフォーマットされたかどうかを確認してください。通常の手順に従っている限り、初期化できます上記の設定を行っても見つからない場合は、再度デバッグを実行してください。
この時点で、初期化が成功したら、次のコマンドで HDFS を開始できます。
$ cd /usr/local/hadoop
$ ./sbin/start-dfs.sh
次の応答が表示された場合:
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [peryol-ThinkPad-T540p]
次に、次のコマンドを使用して、すべての JAVA プロセスを表示します。
24297 Jps
24156 SecondaryNameNode
23932 DataNode
23789 NameNode
上記のように4つのプロセスが正常に動作していることが確認できれば(数字が違っていても問題ありません)、起動は成功しており、ブラウザでWebページ(http://localhost:50070)にアクセスできます。 . 本の手順に従って設定すればアクセスできるようになりますが、アドレス番号(50070)は少し異なります。
補充する
- 初回起動時の初期化後は、2回目以降の起動では再初期化は必要ありませんが、状況によって再初期化が必要な場合は、事前にインストールディレクトリ内のデフォルトファイル格納ディレクトリ(/usr/local/hadoop/tmp)を削除してください。 . このディレクトリは、上で変更した 2 つの設定ファイルの Set にあります。
- put コマンド使用時に DataStreamerException エラーが発生した場合は、Linux システムのファイアウォールがオフになっていることを確認してください。再度実行してもエラーが報告される場合は、Hadoop を初期化してください。注意事項については、最初の点を参照してください。
- その他のエラーが発生する場合は、上記の手順でスペースの抜けや指示のスペルミスなど、詳細な処理エラーがないか確認してください。
最後に、間違いがあれば批判して修正してください。