1. SSHの設定
SSH 関連のソフトウェア パッケージをインストールします。
次のようにコードをコピーします: sudo apt-get install openssh-client openssh-server
次に、次の 2 つのコマンドのいずれかを使用して sshd を起動/シャットダウンします。
次のようにコードをコピーします: sudo /etc/init.d/ssh start|stop
sudo サービス ssh 開始|停止
sshd が正常に起動すると、次のような結果が表示されます。
次のようにコードをコピーします。 $ ps -e grep ssh |
2766 ? 00:00:00 ssh エージェント
10558 ? 00:00:00
この時点で、次の ssh コマンドを実行してマシンにログインすると、パスワードの入力を求められます。
次のようにコードをコピーします: ssh localhost
あとは、パスワードを必要としないようにするだけです。
次のようにコードをコピーします。 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #空のパスワード SSH キー
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
それでおしまい。それでも機能しない場合は、キー ファイルのアクセス許可が正しく設定されていない可能性があります。
2.Hadoopの構成
hadoop-1.2.1 を ~/ に解凍し、~/ の下にディレクトリ hadoop-env を作成します。引き続き、hadoop-env の下に次のディレクトリ構造を作成します。
§── dfs
│ §── チェックポイント1
│ §── データ1
│ §── データ2
│ └── 名前1
└── テスト
└──入力
設定ファイル hadoop-1.2.1/conf/core-site.xml:
次のようにコードをコピーします。
<?xml バージョン="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- サイト固有のプロパティのオーバーライドをこのファイルに含めます -->
<構成>
<プロパティ>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<final>true</final>
</プロパティ>
</設定>
fs.default.name は HDFS URI を指定します。値にポートが指定されていない場合、デフォルトは 8020 です。
設定ファイル hadoop-1.2.1/conf/hdfs-site.xml:
次のようにコードをコピーします。
<?xml バージョン="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- サイト固有のプロパティのオーバーライドをこのファイルに含めます -->
<構成>
<プロパティ>
<name>dfs.name.dir</name>
<値>~/hadoop-env/dfs/name1</値>
<final>true</final>
</プロパティ>
<プロパティ>
<name>dfs.data.dir</name>
<値>~/hadoop-env/dfs/data1、~/hadoop-env/dfs/data2</value>
<final>true</final>
</プロパティ>
<プロパティ>
<name>fs.checkpoint.dir</name>
<値>~/hadoop-env/dfs/checkpoint1</値>
<final>true</final>
</プロパティ>
</設定>
dfs.name.dir は、namenode がメタデータを保存するディレクトリを指定します。これらのディレクトリはカンマで区切る必要があります。dfs.data.dir は、datanode がデータを保存するディレクトリを指定します。 Checkpoint.dir は、補助ネームノードがチェックポイントを保存するディレクトリを指定します。
設定ファイル hadoop-1.2.1/conf/mapred-site.xml:
次のようにコードをコピーします。
<?xml バージョン="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- サイト固有のプロパティのオーバーライドをこのファイルに含めます -->
<構成>
<プロパティ>
<name>mapred.job.tracker</name>
<値>ローカルホスト:9001</値>
<final>true</final>
</プロパティ>
</設定>
3. テスト
最初のフォーマット HDFS:
次のようにコードをコピーします: ./hadoop-1.2.1/bin/hadoop namenode -format
HDFS および MapReduce プロセスを開始します。
次のようにコードをコピーします。
$ ./hadoop-1.2.1/bin/start-dfs.sh
$ ./hadoop-1.2.1/bin/start-mapred.sh
起動中に「localhost: Error: JAVA_HOME is not set.」などのエラーが報告された場合は、./hadoop-1.2.1/conf/hadoop-env.sh ファイルに JAVA_HOME をエクスポートする必要があります。次に例を示します。
エクスポート JAVA_HOME=~/jdk1.7.0_25
正常に起動したかどうかを確認する方法: 最初の方法は、jps コマンド (Java 仮想マシン プロセス ステータス ツール) を使用することです。次のような出力が表示されるはずです。
次のようにコードをコピーします。
$jps
13592 データノード
13728 セカンダリ名ノード
13837 ジョブトラッカー
12864 名前ノード
13955 タスクトラッカー
16069JP
2 番目の方法は、http://localhost:50030 でブラウザにログインしてジョブトラッカーを表示し、http://localhost:50070 でブラウザにログインしてネームノードを表示します。回避ソフトウェアを使用している場合、アクセス時にエラーが発生する可能性があります。最も簡単な解決策は、回避ソフトウェアをオフにすることです。 もう 1 つの方法は、ログ ファイルを表示することです。
ここで、~/hadoop-env/test/input ディレクトリに 2 つのファイルを作成します。
次のようにコードをコピーします。
$ echo "hello world" > test1.txt
$ echo "hi,world" > test2.txt
これら 2 つのファイルを HDFS にインポートします。
次のようにコードをコピーします。
./hadoop-1.2.1/bin/hadoop dfs -put hadoop-env/test/input/output/
チェック:
次のようにコードをコピーします。
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /
2 件の商品が見つかりました
drwxr-xr-x - ユーザー スーパーグループ 0 2013-10-22 22:07 /test
drwxr-xr-x - ユーザー スーパーグループ 0 2013-10-22 21:58 /tmp
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /test
2 件の商品が見つかりました
-rw-r--r-- 3 ユーザー スーパーグループ 12 2013-10-22 22:07 /test/test1.txt
-rw-r--r-- 3 ユーザー スーパーグループ 9 2013-10-22 22:07 /test/test2.txt
OK、設定は完了です。
注: この記事で使用されているシステムは linux mint 15 64 ビットで、hadoop はバージョン 1.2.1 を使用しています。