Ubuntu18.04にスタンドアロンモードでHadoopをインストールする方法

前書き ##

Hadoopは、安価なマシンのクラスターでの非常に大きなデータセットの処理と保存をサポートするJavaベースのプログラミングフレームワークです。これは、Apache Software Foundationが後援する、ビッグデータ競争の分野における最初の主要なオープンソースプロジェクトです。

Hadoopは、次の4つの主要なレイヤーで構成されています。

Hadoopクラスターのセットアップは比較的複雑であるため、プロジェクトには、Hadoopの学習、簡単な操作の実行、およびデバッグに適したスタンドアロンモードが含まれています。

このチュートリアルでは、Hadoopをスタンドアロンモードでインストールし、それに含まれているサンプルMapReduceプログラムの1つを実行して、インストールを確認します。

準備 ##

このチュートリアルに従うには、次のものが必要です。

この準備が完了したら、Hadoopとその依存関係をインストールできます。

ステップ1-Javaをインストールする

まず、パッケージリストを更新します。

sudo apt update

次に、デフォルトのJava開発キットであるUbuntu18.04にOpenJDKをインストールします。

sudo apt install default-jdk

インストールが完了したら、バージョンを確認しましょう。

java -version
openjdk 10.0.12018-04-17
OpenJDK Runtime Environment(build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM(build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)

この出力は、OpenJDKが正常にインストールされたことを確認します。

ステップ2-Hadoopをインストールする

Javaでは、[Apache Hadoopリリースページ](http://hadoop.apache.org/releases.html)にアクセスして、最新の安定バージョンを見つけます。

インストールするディストリビューションのバイナリに移動します。このガイドでは、Hadoop3.0.3をインストールします。

次のページで、右クリックして、リリースバイナリファイルへのリンクをコピーします。

サーバーでは、 wgetを使用して取得します。

wget http://www-us.apache.org/dist/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz

注: Apache Webサイトは、最適なミラーに動的にガイドするため、URLが上記のURLと一致しない場合があります。

ダウンロードしたファイルが変更されていないことを確認するために、SHA-256を使用して簡単に確認します。 [バージョンページ](http://hadoop.apache.org/releases.html)に戻り、右クリックして、ダウンロードしたリリースバイナリファイルのチェックサムファイルへのリンクをコピーします。

ここでも、 wgetを使用してサーバーにファイルをダウンロードします。

wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz.mds

次に、検証を実行します。

shasum -a 256 hadoop-3.0.3.tar.gz
db96e2c0d0d5352d8984892dfac4e27c0e682d98a497b7e04ee97c3e2019277a  hadoop-3.0.3.tar.gz

この値を .mdsファイルのSHA-256値と比較します。

cat hadoop-3.0.3.tar.gz.mds
... /build/source/target/artifacts/hadoop-3.0.3.tar.gz:
SHA256 = DB96E2C0 D0D5352D 8984892D FAC4E27C 0E682D98 A497B7E0 4EE97C3E 2019277A
...

大文字と小文字、およびスペースの違いは無視してかまいません。ミラーからダウンロードしたファイルに対して実行するコマンドの出力は、apache.orgからダウンロードしたファイルの値と一致する必要があります。

ファイルが破損または変更されていないことを確認したので、 tarコマンドを使用して -xフラグを抽出し、 -zlを使用して解凍し、 -vを使用して詳細な出力を取得します。 f`は、ファイルから抽出することを指定します。次のコマンドで、tab-completionを使用するか、正しいバージョン番号を置き換えます。

tar -xzvf hadoop-3.0.3.tar.gz

最後に、抽出したファイルを / usr / localの適切な場所に移動して、ソフトウェアをローカルにインストールします。必要に応じて、ダウンロードしたバージョンと一致するようにバージョン番号を変更してください。

sudo mv hadoop-3.0.3/usr/local/hadoop

このソフトウェアを使用して、その環境を構成できます。

ステップ3-HadoopのJavaホームを構成する

Hadoopでは、Javaへのパスを設定する必要があります。これは、環境変数またはHadoop構成ファイルにすることができます。

Javaパス / usr / bin / javaは、デフォルトのJavaバイナリファイルへのシンボリックリンクである / etc / Alternatives / javaへのシンボリックリンクです。パスの各部分の各シンボリックリンクを再帰的にトレースするには、 readlink -fフラグを使用します。次に、 sedを使用して、出力から bin / javaを調整し、 JAVA_HOMEの正しい値を提供します。

デフォルトのJavaパスを見つける

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

この出力をコピーして、HadoopのJavaホームディレクトリをこの特定のバージョンに設定できます。これにより、デフォルトのJavaが変更されてもこの値は変更されません。または、ファイル内で readlinkコマンドを動的に使用して、Hadoopがシステムのデフォルトとして設定されているJavaバージョンを自動的に使用するようにすることもできます。

まず、 hadoop-env.shを開きます。

sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh

次に、次のいずれかのオプションを選択します。

オプション1:静的値を設定

...
# export JAVA_HOME=${JAVA_HOME}export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/...

オプション2:Readlinkを使用して値を動的に設定します

...
# export JAVA_HOME=${JAVA_HOME}export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")...

注: Hadoopの場合、 hadoop-env.sh JAVA_HOMEの値は、環境 / etc / profileまたはユーザープロファイルに設定されている値を上書きします。

ステップ4-Hadoopを実行する

これで、Hadoopを実行できるようになります。

/usr/local/hadoop/bin/hadoop
Usage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
 or    hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
 where CLASSNAME is a user-provided Java class
​
 OPTIONS is none or any of:
​
- - config dir                     Hadoop config directory
- - debug                          turn on shell script debug mode
- - help                           usage information
buildpaths                       attempt to add classfilesfrom build tree
hostnames list[,of,host,names]   hosts to use in slave mode
hosts filename                   list of hosts to use in slave mode
loglevel level                   set the log4j level forthis command
workers                          turn on worker mode
​
 SUBCOMMAND is one of:...

ヘルプは、スタンドアロンモードで実行するようにHadoopを正常に構成したことを意味します。付属のサンプルMapReduceプログラムを実行して、正しく実行されるようにします。これを行うには、ホームディレクトリにディレクトリ inputを作成し、Hadoop構成ファイルをそのディレクトリにコピーして、これらのファイルをデータとして使用してください。

mkdir ~/input
cp /usr/local/hadoop/etc/hadoop/*.xml ~/input

次に、次のコマンドを使用して、複数のオプションを持つJavaアーカイブファイルであるMapReducehadoop-mapreduce-examplesプログラムを実行できます。その grepプログラムを呼び出します。これは hadoop-mapreduce-examplesに含まれる多くの例の1つであり、その後に入力ディレクトリ inputと出力ディレクトリ grep_exampleが続きます。 MapReduce grepプログラムは、テキストまたは正規表現の一致を計算します。最後に、ステートメント内またはステートメントの最後にある「allowed」という単語の出現を見つけるために、通常の式「allowed [。] *」を提供します。式は大文字と小文字が区別されるため、文の先頭を大文字にすると、次の単語は見つかりません。

/usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar grep ~/input ~/grep_example 'allowed[.]*'

タスクが完了すると、処理された内容と発生したエラーの概要が表示されますが、実際の結果は含まれていません。

...
  File System Counters
  FILE: Number of bytes read=1330690
  FILE: Number of bytes written=3128841
  FILE: Number of read operations=0
  FILE: Number of large read operations=0
  FILE: Number of write operations=0
 Map-Reduce Framework
  Map input records=2
  Map output records=2
  Map output bytes=33
  Map output materialized bytes=43
  Input split bytes=115
  Combine input records=0
  Combine output records=0
  Reduce input groups=2
  Reduce shuffle bytes=43
  Reduce input records=2
  Reduce output records=2
  Spilled Records=4
  Shuffled Maps =1
  Failed Shuffles=0
  Merged Map outputs=1
  GC time elapsed(ms)=3
  Total committed heap usage(bytes)=478150656
 Shuffle Errors
  BAD_ID=0
  CONNECTION=0
  IO_ERROR=0
  WRONG_LENGTH=0
  WRONG_MAP=0
  WRONG_REDUCE=0
 File Input Format Counters
  Bytes Read=147
 File Output Format Counters
  Bytes Written=34

**注:**出力ディレクトリがすでに存在する場合、プログラムは失敗します。要約を表示する代わりに、出力は次のようになります。

...
 at java.base/java.lang.reflect.Method.invoke(Method.java:564)
 at org.apache.hadoop.util.RunJar.run(RunJar.java:244)
 at org.apache.hadoop.util.RunJar.main(RunJar.java:158)

結果は出力ディレクトリに保存され、出力ディレクトリで catを実行することで確認できます。

cat ~/grep_example/*
19 allowed.1   allowed

MapReduceタスクは、「許可された」19個の単語の後にピリオドが続き、1個は表示されなかったことを検出しました。サンプルプログラムを実行すると、スタンドアロンインストールが正しく機能していること、およびシステム上の特権のないユーザーが探索またはデバッグのためにHadoopを実行できることが確認されました。

結論として ##

このチュートリアルでは、Hadoopをスタンドアロンモードでインストールし、提供されたサンプルプログラムを実行して検証しました。

スタンドアロンモードでのHadoopのインストールに関する関連チュートリアルの詳細については、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。


参照:「Ubuntu18.04にスタンドアロンモードでHadoopをインストールする方法」

Recommended Posts

Ubuntu18.04にスタンドアロンモードでHadoopをインストールする方法
UbuntuにHelmをインストールする方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu14.04にmysqlをインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu20.04にAnacondaをインストールする方法
Ubuntu16.04にPrometheusをインストールする方法
Ubuntu18.04にJenkinsをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にRをインストールする方法
Ubuntu16.04にMoodleをインストールする方法
Ubuntu14.04にSolr5.2.1をインストールする方法
Ubuntu16.04にTeamviewerをインストールする方法
Ubuntu20.04にMariaDBをインストールする方法
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にMonoをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu20.04にZoomをインストールする方法
Ubuntu14.04にmysqlをインストールする方法
Ubuntu16.04にNginxをインストールする方法
Ubuntu20.04にOpenCVをインストールする方法
Ubuntu20.04にSpotifyをインストールする方法
Ubuntu18.04にPostmanをインストールする方法
Ubuntu16.04にGo1.6をインストールする方法
Ubuntu18.04にGoをインストールする方法
Ubuntu14.04にMySQLをインストールする方法
Ubuntu20.04にPostgreSQLをインストールする方法
Ubuntu18.04にVLCをインストールする方法
Ubuntu20.04にTeamViewerをインストールする方法
Ubuntu20.04にWebminをインストールする方法
Ubuntu18.04にDockerComposeをインストールする方法
RaspberryPiにUbuntuをインストールする方法
Ubuntu14.04にBaculaServerをインストールする方法