Hadoop単一ノードクラスタ
- Hadoop シングル ノード クラスターでは、Hadoop 環境の作成に 1 台のマシンのみを使用しますが、Hadoop コマンドは引き続き使用できますが、複数のマシンを使用する利点を活用することはできません。
- サーバーが 1 台しかないため、すべての機能が 1 台のサーバーに集中します。
JDKのインストール
- Hadoop は Java をベースに開発されているため、最初に Java 環境をインストールする必要があります。
- 「ターミナル」をクリックし、次のコードを入力してJavaのバージョンを表示します。
java -version
-
JDK: Java Development Kit、Java 言語用のソフトウェア開発キット
-
Linux では、apt を使用してソフトウェア パッケージを管理できます。また、apt-get を使用してソフトウェア パッケージ (またはスイートと呼ばれる) をダウンロードしてインストールすることもできます。ここでは apt-get を使用して jdk をインストールします。
-
ただし、インストール前に最新のパッケージ バージョンを取得するには、apt-get update を実行する必要があります。このコマンドは APT サーバーに接続し、最新のパッケージ情報を更新します。
-
apt-getを実行するにはスーパーユーザー(スーパーユーザー)の権限が必要ですが、スーパーユーザーの権限は非常に大きいため、セキュリティ上の理由から運用中は通常スーパーユーザーでシステムにログインすることはありません。コマンドの前に sudo コマンドを追加すると、システムはスーパーユーザーのパスワード (インストール時に入力したパスワード) を要求するため、スーパーユーザーのアクセス許可を取得できます。
-
「ターミナル」に以下のコマンドを入力します。
sudo apt-get update
- 次にパスワードを入力します
- ミッション完了
- apt-getを使用してJDKをインストールする
- 「ターミナル」に以下のコマンドを入力します。
sudo apt-get install default-jdk
- 最初に「Y」を入力してから Enter キーを押します。
- ミッション完了
- Java バージョンを表示するには、次のコマンドを再度使用します。
java -version
- システムがインストールされている Java バージョンを応答した場合、JDK が正常にインストールされたことを意味します。
- Javaのインストールパスを問い合わせる
update-alternatives --display java
SSHパスワードレスログインを設定する
- Hadoop は多数のサーバーで構成されており、Hadoop システムを起動すると、NameNode が DataNode に接続し、これらのノード (DataNode) を管理する必要があります。この時点で、システムはユーザーにパスワードの入力を求めます。パスワードを手動で入力せずにシステムをスムーズに実行するには、SSH をパスワードなしのログインに設定する必要があります。
- なお、パスワードレスログインはパスワードを必要とせず、事前に交換したSSH Key(鍵)を認証に使用します。
- Hadoop は SSH (Secure Shell) 接続を使用します。これは現在、他のサーバーへのリモート ログイン用に設計された、より信頼性の高いセキュリティ プロトコルです。SSH 経由で転送されるすべてのデータは暗号化されます。SSH プロトコルを使用すると、システムをリモート管理する際の情報漏洩を防ぐことができます。
SSHをインストールする
- 「ターミナル」に以下のコマンドを入力します。
sudo apt-get install ssh
rsyncをインストールする
- 「ターミナル」に以下のコマンドを入力します。
sudo apt-get install rsync
- 「ターミナル」に以下のコマンドを入力します。
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
生成されたキーを表示する
- SSH キーはユーザーのルート ディレクトリ (/home/hduser) に生成されます。
- 「ターミナル」に以下のコマンドを入力します。
ll ~/.ssh
生成されたキーをライセンス ファイルに配置します
- パスワードなしでこのマシンにログインするには、生成された公開キーをライセンス ファイルに追加する必要があります。
- 「ターミナル」に以下のコマンドを入力します。
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
- Linuxの出力リダイレクト追加機能コマンドの形式は以下のとおりです。
- コマンド>>ファイル
- リダイレクト記号「>>」は、コマンドの実行後に生成される標準出力 (stdout) をリダイレクトし、ファイルに追加します。
- ファイルが存在しない場合は、まず新しいファイルが作成され、標準出力 (stdout) の内容がこのファイルに格納されます。
- ファイルが既に存在する場合、元のファイルの内容は上書きされずに、標準出力 (stdout) データがファイルの内容に追加されます。
Hadoopをダウンロードしてインストールする
- Hadoop公式Webサイトのダウンロードページにログインします。
https://archive.apache.org/dist/hadoop/common/
- ダウンロードHadoop
- 「ターミナル」に wget とスペースバーを入力し、先ほどコピーしたリンクを貼り付けます。
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
- Hadoop 2.6を解凍します。
- 「ターミナル」に以下のコマンドを入力します。
sudo tar -zxvf hadoop-2.6.0.tar.gz
- hadoop2.6.0 ディレクトリを /usr/local/hadoop に移動します
sudo mv hadoop-2.6.0 /usr/local/hadoop
Hadoop をダウンロードしてインストールする (方法 2)
- ダウンロード時間が長いという問題を解決する
- 清華大学のオープンソース ソフトウェアのミラー サイトにログインします。
https://mirrors.tuna.tsinghua.edu.cn/
- 「ターミナル」に wget とスペースバーを入力し、先ほどコピーしたリンクを貼り付けます。
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable2/hadoop-2.10.1.tar.gz --no-check-certificate
- ダウンロード完了
- Hadoop 2.10.1を解凍する
- 「ターミナル」に以下のコマンドを入力します。
sudo tar -zxvf hadoop-2.10.1.tar.gz
- hadoop2.6.0 ディレクトリを /usr/local/hadoop に移動します
sudo mv hadoop-2.10.1 /usr/local/hadoop
Hadoop インストール ディレクトリ /usr/local/hadoop を確認します。
- 「ターミナル」に以下のコマンドを入力します。
ll /usr/local/hadoop
Hadoop環境変数を設定する
- Hadoopを実行するには多くの環境変数を設定する必要がありますが、ログインするたびに環境変数を設定し直す必要があるのは面倒です。したがって、~/.bashrc ファイルで、ログインするたびに自動的に実行されるように環境変数を設定できます。
- ~/.bashrc を編集する
- 「ターミナル」に以下のコマンドを入力します。
sudo gedit ~/.bashrc
- 開いたファイルの末尾に次の行を追加します。
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
- 編集が完了したら、まず保存して終了してください。
上記の説明
- JDKのインストールパスを設定する
エクスポート JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
- HADOOP_HOME を Hadoop インストール パス/usr/local/Hadoop に設定します。
エクスポート HADOOP_HOME=/usr/local/Hadoop
- パスを設定する
エクスポート PATH=パス : パス:パス_ _ _: HADOOP_HOME/bin エクスポート
PATH=PATH : PATH:パス_ _ _: HADOOP_HOME/sbin
- 他の HADOOP 環境変数を設定する
エクスポート HADOOP_MAPRED_HOME= HADOOPHOME エクスポート HADOOPCOMMONHOME = HADOOP_HOME エクスポート HADOOP_COMMON_HOME=ハドゥープ_ _ _ _HOME EX P or T HADOOP _ _ _ _ _Cオンモン_H青梅= HADOOP_HOME エクスポート HADOOP_HDFS_HOME=HADOOPHOME エクスポート YARNHOME = HADOOP_HOME エクスポート YARN_HOME=ハドゥープ_ _ _ _HOME輸出YARN _ _ _ _ _ _ _H青梅= HADOOP_HOME
- リンクライブラリ関連の設定
import HADOOP_COMMON_LIB_NATIVE_DIR= HADOOPHOME / lib /nativeexport HADOOPOPTS = " − D java . library . path = HADOOP_HOME/lib/native import HADOOP_OPTS="-Djava.library.path=ハドゥープ_ _ _ _HOME / lib / nat i v ee x p or t HAD O O P _ _ _ああPTS=」−Dジャバ。_ _ ライブラリ。_ _ _ _ パス_ _ _= HADOOP_HOME/lib" エクスポート
JAVA_LIBRARY_PATH=HADOOPHOME / lib / ネイティブ : HADOOP_HOME/lib/native:ハドゥープ_ _ _ _HOME / lib / nat i v e _ _: JAVA_LIBRARY_PATH
~/.bashrc 設定を有効にします
-
/.bashrcを変更した後、システムからログアウトし、再度ログインして設定を有効にするか、source コマンドを使用して /.bashrc 設定を有効にします。
-
「ターミナル」に以下のコマンドを入力します。
source ~/.bashrc
Hadoop-env.sh を編集する
- hadoop-env.shはHadoopの設定ファイルであり、Javaのインストールパスを設定する必要があります。
- 「ターミナル」に以下のコマンドを入力します。
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
- 元のファイルの JAVA_HOME の設定は次のとおりです。
export JAVA_HOME=${JAVA_HOME} は次のように変更されました。
エクスポート JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
- 変更後にファイルを保存して閉じます
core-site.xmlを設定する
- 「ターミナル」に以下のコマンドを入力します。
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
- HDFS のデフォルト名を設定する
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
- 変更後にファイルを保存して閉じます
- core-site.xml では、HDFS のデフォルト名を設定する必要があります。これは、コマンドまたはプログラムを使用して HDFS にアクセスするときに使用できます。
yarn-site.xml を編集する
- yarn-site.xml ファイルには、MapReduce2 (YARN) 関連の構成設定が含まれています。
- 「ターミナル」に以下のコマンドを入力します。
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
- 糸サイトの設定を編集する
<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>
- 変更後にファイルを保存して閉じます
Mapred-site.xml を設定する
- mapred-site.xml は、Map および Reduce プログラムの JobTracker タスクの割り当てと、TaskTracker タスクの実行ステータスを設定および監視するために使用されます。Hadoop には、自分でコピーして変更できるセット テンプレート ファイルが用意されています。
- 「ターミナル」に次のコマンドを入力して、テンプレート ファイルをmapred-site.xml.templateからmapred-site.xmlにコピーします。
sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
Mapred-site.xml を編集する
- 「ターミナル」に以下のコマンドを入力します。
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
- mapred-site.xml の構成を編集します。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 変更後にファイルを保存して閉じます
hdfs-site.xml を編集する
- hdfs-site.xml は、HDFS 分散ファイル システムのセットアップに使用されます。
- 「ターミナル」に以下のコマンドを入力します。
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
- 次のように入力します
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
- 変更後にファイルを保存して閉じます
- 上記の説明
- コピーバックアップのブロック数を設定する
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
- NameNode データ保存ディレクトリを設定する
<property>
<name>dfs.namenode.name.dir</name>
<value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
- DataNode データストレージディレクトリを設定する
<property>
<name>dfs.datanode.data.dir</name>
<value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
HDFS ディレクトリの作成とフォーマット
- NameNodeデータ格納ディレクトリの作成
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
- DataNodeデータストレージディレクトリを作成する
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
- Hadoop ディレクトリの所有者を hduser に変更します。
sudo chown hduser:hduser -R /usr/local/hadoop
- Linux は複数人でマルチタスクを実行できるオペレーティング システムであり、すべてのディレクトリやファイルには所有者がいます。chown を使用して、ディレクトリまたはファイルの所有者を hduser に変更します。
HDFS をフォーマットする
- 「ターミナル」に以下のコマンドを入力します。
hadoop namenode -format
- 注: HDFS に既にデータがある場合は、上記の HDFS フォーマット コマンドを実行すると、すべてのデータが削除されます。
Hadoopを開始する
- 方法 1: HDFS と YARN を別々に起動し、start-dfs.sh を使用して HDFS を起動し、start-yarn.sh を使用して YARN を起動します
- 方法 2: HDFS と YARN を同時に起動し、start-all.sh を使用する
HDFSを開始する
start-dfs.sh
YARNの開始
start-yarn.sh
NameNode プロセスと DataNode プロセスが開始されているかどうかを確認する
- 「ターミナル」に以下のコマンドを入力します。
jps
HDFS機能:NameNode、Secondary NameNode、DataNode
MapReduce2(YARN):ResourceManager、NodeManager
Hadoop リソース マネージャー Web インターフェイス
- 仮想マシン内のブラウザに次の URL を入力します。
http://localhost:8088/
シングルノードクラスターがインストールされているため、現在ノードは 1 つだけです
NameNode HDFS Web インターフェイス
仮想マシン内のブラウザに次の URL を入力します
http://localhost:50070/