Ubuntu13.10にHadoopをインストールする方法
前提条件
このチュートリアルの唯一の前提条件は、 Ubuntu 13.10×64がインストールされたVPSです。
コマンドラインからコマンドを実行する必要があります。これは、次の2つの方法のいずれかで実行できます。
-
SSHを使用してドロップレットにアクセスします。
-
Digital Ocean DropletManagementPanelの「ConsoleAccess」を使用する
Hadoopとは何ですか?
Hadoop は、サーバーのクラスター全体に分散されたデータセットの処理を簡素化するフレームワーク(ソフトウェアライブラリで構成される)です。 Hadoopの主要コンポーネントの2つは、HDFSとMapReduceです。
HDFSは、Hadoopがすべてのデータを保存するために使用するファイルシステムです。 このファイルシステムは、Hadoopによって使用されているすべてのノードにまたがっています。 これらのノードは、単一のVPS上にある場合もあれば、多数の仮想サーバーに分散している場合もあります。
MapReduceは、Hadoopのすべてのアクティビティを調整するフレームワークです。 クラスタ内のさまざまなノードへの作業の割り当てを処理します。
Hadoopを使用する利点
Hadoopのアーキテクチャにより、必要に応じてハードウェアを拡張できます。 データ形式の変更やファイルシステム上にあるアプリケーションの処理を気にすることなく、新しいノードを段階的に追加できます。
Hadoopの最も重要な機能の1つは、安価なコモディティサーバーを高価なコモディティサーバーに置き換えることで、莫大な金額を節約できることです。 これが可能なのは、Hadoopがフォールトトレランスの責任をハードウェア層からアプリケーション層に移すためです。
Hadoopのインストール
Hadoopのインストールと起動、実行は非常に簡単です。 ただし、このプロセスでは複数の構成ファイルとセットアップファイルを編集する必要があるため、各手順が適切に実行されていることを確認してください。
1. Javaをインストールする
HadoopではJavaをインストールする必要があるため、Javaのインストールから始めましょう。
apt-get update
apt-get install default-jdk
これらのコマンドは、VPSのパッケージ情報を更新してから、Javaをインストールします。 これらのコマンドを実行した後、次のコマンドを実行して、Javaがインストールされていることを確認します。
java -version
Javaがインストールされている場合は、次の図に示すようにバージョンの詳細が表示されます。
2. SSH証明書の作成と設定
HadoopはSSHを使用して(ノードにアクセスするため)、通常はユーザーがパスワードを入力する必要があります。 ただし、次のコマンドを使用してSSH証明書を作成および設定することにより、この要件を排除できます。
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
これらの2つのコマンドの最初のコマンドを実行した後、ファイル名の入力を求められる場合があります。 空白のままにして、Enterキーを押して続行します。 2番目のコマンドは、新しく作成されたキーを許可されたキーのリストに追加して、Hadoopがパスワードの入力を求めずにSSHを使用できるようにします。
3. Hadoopをフェッチしてインストールする
まず、次のコマンドを使用して、ミラーの1つからHadoopをフェッチしましょう。
wget http://www.motorlogy.com/apache/hadoop/common/current/hadoop-2.3.0.tar.gz
ノート: このコマンドは、HadoopWebサイトにリストされているミラーの1つにあるダウンロードリンクを使用します。 ミラーのリストは、このリンクのにあります。 必要に応じて、他のミラーを選択できます。 最新の安定バージョンをダウンロードするには、選択したミラーのcurrentまたはcurrent2ディレクトリからhadoop-XYZtar.gzファイルを選択します。
Hadoopパッケージをダウンロードした後、次のコマンドを実行して解凍します。
tar xfz hadoop-2.3.0.tar.gz
このコマンドは、hadoop-2.3.0
という名前のディレクトリにあるこのパッケージ内のすべてのファイルを抽出します。 このチュートリアルでは、次のコマンドを使用して、Hadoopインストールを/usr/local/hadoop
ディレクトリに移動します。
mv hadoop-2.3.0 /usr/local/hadoop
ノート: 抽出されたフォルダーの名前は、ダウンロードして抽出したHadoopのバージョンによって異なります。 お使いのバージョンがこのチュートリアルで使用されているものと異なる場合は、それに応じて上記のコマンドを変更してください。
4. 構成ファイルの編集とセットアップ
Hadoopのセットアップを完了するには、次のファイルを変更する必要があります。
- 〜/ .bashrc
- /usr/local/hadoop/etc/hadoop/hadoop-env.sh
- /usr/local/hadoop/etc/hadoop/core-site.xml
- /usr/local/hadoop/etc/hadoop/yarn-site.xml
- /usr/local/hadoop/etc/hadoop/mapred-site.xml.template
- /usr/local/hadoop/etc/hadoop/hdfs-site.xml
私。 〜/.bashrcの編集
ホームディレクトリの.bashrc
ファイルを編集する前に、Javaがインストールされているパスを見つけてJAVA_HOME
環境変数を設定する必要があります。 次のコマンドを使用してそれを行いましょう。
update-alternatives --config java
これにより、次のように表示されます。
このコマンドで表示される完全なパスは次のとおりです。
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
JAVA_HOME
の値は、上記のパスの/jre/bin/java
の前のすべてです。この場合、/usr/lib/jvm/java-7-openjdk-amd64
です。 このステップと他の1つのステップでこの値を使用するので、これをメモしてください。
次に、nano
(またはお好みのエディター)を使用して、次のコマンドを使用して〜/.bashrcを編集します。
nano ~/.bashrc
これにより、.bashrc
ファイルがテキストエディタで開きます。 ファイルの最後に移動し、次のコンテンツを貼り付け/入力します。
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END
注1: JAVA_HOME
の値がVPSで異なる場合は、上記のコンテンツの最初のexport
ステートメントを適宜変更してください。
注2:注2: nanoを使用して開いて編集したファイルは、Ctrl + X
を使用して保存できます。 変更を保存するプロンプトが表示されたら、Y
と入力します。 ファイル名の入力を求められた場合は、Enterキーを押すだけです。
.bashrc
ファイルの終わりは次のようになります。
.bashrc
ファイルを保存して閉じた後、次のコマンドを実行して、システムが新しく作成された環境変数を認識できるようにします。
source ~/.bashrc
上記のコンテンツを.bashrc
ファイルに入れると、VPSの起動時にこれらの変数を常に使用できるようになります。
ii。 /usr/local/hadoop/etc/hadoop/hadoop-env.shを編集する
次のコマンドを使用して、nanoで/usr/local/hadoop/etc/hadoop/hadoop-env.sh
ファイルを開きます。
nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh
このファイルで、JAVA_HOME
変数をエクスポートする行を見つけます。 この行を次のように変更します。
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
ノート: JAVA_HOME
の値がVPSで異なる場合は、それに応じてこの行を変更してください。
hadoop-env.sh
ファイルは次のようになります。
このファイルを保存して閉じます。 上記のステートメントをhadoop-env.sh
ファイルに追加すると、Hadoopが起動するたびにJAVA_HOME
変数の値を使用できるようになります。
iii。 /usr/local/hadoop/etc/hadoop/core-site.xmlを編集する
/usr/local/hadoop/etc/hadoop/core-site.xml
ファイルには、Hadoopが起動時に使用する構成プロパティが含まれています。 このファイルを使用して、Hadoopが開始するデフォルト設定をオーバーライドできます。
次のコマンドを使用して、nanoでこのファイルを開きます。
nano /usr/local/hadoop/etc/hadoop/core-site.xml
このファイルで、<configuration></configuration>
タグの間に次の内容を入力します。
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
core-site.xml
ファイルは次のようになります。
このファイルを保存して閉じます。
iv。 /usr/local/hadoop/etc/hadoop/yarn-site.xmlを編集する
/usr/local/hadoop/etc/hadoop/yarn-site.xml
ファイルには、MapReduceが起動時に使用する構成プロパティが含まれています。 このファイルを使用して、MapReduceが開始するデフォルト設定を上書きできます。
次のコマンドを使用して、nanoでこのファイルを開きます。
nano /usr/local/hadoop/etc/hadoop/yarn-site.xml
このファイルで、<configuration></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>
yarn-site.xml
ファイルは次のようになります。
このファイルを保存して閉じます。
v。 /usr/local/hadoop/etc/hadoop/mapred-site.xmlの作成と編集
デフォルトでは、/usr/local/hadoop/etc/hadoop/
フォルダーには/usr/local/hadoop/etc/hadoop/mapred-site.xml.template
ファイルが含まれており、mapred-site.xml
という名前で名前を変更/コピーする必要があります。 このファイルは、MapReduceに使用されているフレームワークを指定するために使用されます。
これは、次のコマンドを使用して実行できます。
cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
これが完了したら、次のコマンドを使用して、nanoで新しく作成されたファイルを開きます。
nano /usr/local/hadoop/etc/hadoop/mapred-site.xml
このファイルで、<configuration></configuration>
タグの間に次の内容を入力します。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
mapred-site.xml
ファイルは次のようになります。
このファイルを保存して閉じます。
vi。 /usr/local/hadoop/etc/hadoop/hdfs-site.xmlを編集する
/usr/local/hadoop/etc/hadoop/hdfs-site.xml
は、使用されているクラスター内のホストごとに構成する必要があります。 そのホストでnamenodeおよびdatanodeとして使用されるディレクトリを指定するために使用されます。
このファイルを編集する前に、このHadoopインストール用のnamenodeとdatanodeを含む2つのディレクトリを作成する必要があります。 これは、次のコマンドを使用して実行できます。
mkdir -p /usr/local/hadoop_store/hdfs/namenode
mkdir -p /usr/local/hadoop_store/hdfs/datanode
ノート: これらのディレクトリは別の場所に作成できますが、それに応じてhdfs-site.xml
の内容を変更してください。
これが完了したら、次のコマンドを使用して、nanoで/usr/local/hadoop/etc/hadoop/hdfs-site.xml
ファイルを開きます。
nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
このファイルで、<configuration></configuration>
タグの間に次の内容を入力します。
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/datanode</value>
</property>
hdfs-site.xml
ファイルは次のようになります。
このファイルを保存して閉じます。
新しいHadoopファイルシステムをフォーマットする
上記の手順で概説したすべての構成を完了したら、Hadoopファイルシステムをフォーマットして使用を開始できるようにする必要があります。 これは、次のコマンドを実行することによって実行されます。
hdfs namenode -format
ノート: これは、Hadoopの使用を開始する前に1回だけ実行する必要があります。 Hadoopの使用後にこのコマンドを再度実行すると、Hadoopファイルシステム上のすべてのデータが破棄されます。
Hadoopを開始します
あとは、新しくインストールしたシングルノードクラスターを起動するだけです。
start-dfs.sh
このコマンドを実行している間、次のようなメッセージが2回表示されます。
接続を続行してもよろしいですか(はい/いいえ)?
これらのプロンプトの両方にyes
と入力し、Enterキーを押します。 これが完了したら、次のコマンドを実行します。
start-yarn.sh
上記の2つのコマンドを実行すると、Hadoopが起動して実行されます。 次のコマンドを入力して、これを確認できます。
jps
このコマンドを実行すると、次のようなものが表示されます。
上のスクリーンショットに示されているような結果が表示される場合は、VPSでHadoopの機能インスタンスが実行されていることを意味します。
次のステップ
Hadoopを使用するように設定されているアプリケーションがある場合は、それを起動して、新しいインストールで使用を開始できます。 一方、Hadoopをいじって探索しているだけの場合は、新しいファイルシステムにデータまたはファイルを追加/操作して、その感触をつかむことから始めることができます。