前書き

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

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

  • * Hadoop Common *は、他のHadoopモジュールをサポートするユーティリティとライブラリのコレクションです。

  • Hadoop Distributed File Systemの略である* HDFS *は、データをディスクに永続化する役割を果たします。

  • * YARN *(Yet Another Resource Negotiatorの略)は、HDFSの「オペレーティングシステム」です。

  • * MapReduce *は、Hadoopクラスターの元の処理モデルです。 クラスターまたはマップ内で作業を分散し、ノードからの結果を整理してクエリへの応答にまとめます。 Hadoopの3.xバージョンでは、他の多くの処理モデルが利用できます。

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

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

始める前に、https://www.digitalocean.com/community/tutorials/an-introduction-to-big-data-concepts-and-terminology [ビッグデータの概念の紹介と用語]またはhttps://www.digitalocean.com/community/tutorials/an-introduction-to-hadoop[Hadoopの概要]

前提条件

このチュートリアルを実行するには、次のものが必要です。

ステップ1-Hadoopのインストール

Hadoopをインストールするには、まずhttp://hadoop.apache.org/releases.html[Apache Hadoopリリースページ]にアクセスして、最新の安定版リリースを見つけてください。

インストールするリリースの* binary *に移動します。 このガイドでは、Hadoop 3.0.3をインストールします。

image:https://assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-download-link.png [最新の安定したバイナリへのリンクを強調するHadoopリリースのスクリーンショット]

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

image:https://assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-binary-link.png [Hadoopミラーページのスクリーンショット]

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

wget http:///dist/hadoop/common/hadoop-/hadoop-.tar.gz

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

image:https://assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-checksum-link.png [.mdsファイルを強調表示するスクリーンショット]

繰り返しになりますが、サーバーで `+ wget +`を使用してファイルをダウンロードします。

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

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

sha256sum hadoop-.tar.gz
Outputdb96e2c0d0d5352d8984892dfac4e27c0e682d98a497b7e04ee97c3e2019277a  hadoop-.tar.gz

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

cat hadoop-.tar.gz.mds | grep SHA256

〜/ hadoop-3.0.3.tar.gz.mds

...
SHA256 = DB96E2C0 D0D5352D 8984892D FAC4E27C 0E682D98 A497B7E0 4EE97C3E 2019277A

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

ファイルが破損または変更されていないことを確認したので、「+ tar 」コマンドで「 -x 」フラグを使用して抽出し、「-z 」で解凍し、「-v 」で詳細出力します、および ` -f +`を使用して、ファイルからアーカイブを抽出することを指定します。 次のコマンドでタブ補完を使用するか、正しいバージョン番号に置き換えます。

tar -xzvf hadoop-.tar.gz

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

sudo mv hadoop- /usr/local/hadoop

ソフトウェアを配置したら、環境を構成する準備が整いました。

ステップ2-Hadoopの実行

Hadoopが実行されることを確認しましょう。 次のコマンドを実行してHadoopを起動し、ヘルプオプションを表示します。

/usr/local/hadoop/bin/hadoop

次の出力が表示されます。これにより、スタンドアロンモードで実行するようにHadoopを正常に構成したことがわかります。

OutputUsage: 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 class files from 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 for this command
workers                          turn on worker mode

 SUBCOMMAND is one of:
. . .

付属のMapReduceプログラムの例を実行することで、適切に機能することを確認します。 そのためには、ホームディレクトリに「+ input」というディレクトリを作成し、Hadoop設定ファイルをそのディレクトリにコピーして、これらのファイルをデータとして使用します。

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

次に、いくつかのオプションがあるJavaアーカイブであるMapReduceの `+ hadoop-mapreduce-examples `プログラムを実行します。 ` hadoop-mapreduce-examples `に含まれる多くの例の1つである ` grep `プログラムを呼び出し、続いて入力ディレクトリ ` input `と出力ディレクトリ ` grep_example `を呼び出します。 MapReduce grepプログラムは、リテラルワードまたは正規表現の一致をカウントします。 最後に、正規表現 ` allowed [。] * `を提供して、宣言文内または宣言文の末尾に単語 ` allowed +`の出現を検索します。 式では大文字と小文字が区別されるため、文の先頭で大文字にした単語は見つかりません。

次のコマンドを実行してください。

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

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

Output . . .
       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

結果は `+〜/ grep_example +`ディレクトリに保存されます。

この出力ディレクトリが既に存在する場合、プログラムは失敗し、概要を表示するのではなく、次のようなものが表示されます。

Output . . .
   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/*

次の出力が表示されます。

Output19  allowed.
1   allowed

MapReduceタスクは、「+ allowed +」という単語が19回出現し、その後にピリオドが1つ出現し、出現しなかった箇所が1つ出現しました。 サンプルプログラムを実行すると、スタンドアロンインストールが正常に動作し、システム上の非特権ユーザーが調査またはデバッグのためにHadoopを実行できることが確認されました。

結論

このチュートリアルでは、Hadoopをスタンドアロンモードでインストールし、提供されているサンプルプログラムを実行して検証しました。 独自のMapReduceプログラムの作成方法については、Apache Hadoopのhttps://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html[MapReduceチュートリアル]をご覧ください。このチュートリアルで使用した例の背後にあるコードを通して。 クラスターをセットアップする準備ができたら、Apache Foundation Hadoopクラスターセットアップガイドをご覧ください。