CentOS release 5.6 (Final)にHadoop-0.20をインストールした時の記録

やり方は

を足して2で割った感じで作った。

も役に立つ(本家の設定をちゃんと読んでいればハマル箇所が少なくなったかも。。。)

1.sun javaのインストール(準備)

ここを参照

Sun社Javaパッケージの取得 http://saburi380.blogspot.com/2009/11/1004hadoopcentos-cloudera.html

	sunのサイト行って一番新しい jdk-6u26-linux-i586-rpm.bin をDLして入れた
		

sun javaの場所

# find /usr -name "*jdk*" -print

2.Cloudera社のyum用のリポジトリの追加(準備)

cd /etc/yum.repos.d
wget http://archive.cloudera.com/redhat/cdh/cloudera-cdh3.repo

3.Hadoopをインストール まずは1台で動く擬似分散

きりんさん日記: 1台構成のHadoopを30分で試してみる(CentOS + Cloudera) http://saburi380.blogspot.com/2009/11/301hadoopcentos-cloudera.html

を参考に

yum -y install hadoop-0.20
yum -y install hadoop-0.20-conf-pseudo

これで必要なパッケージは全部入る。(hadoop-0.20だけでは足りなかったような気がした{うる覚え})

confの確認

alternativesコマンドでconfがどこを指してるか確認。擬似分散はconf.pseudoを使う(hadoop-0.20-conf-pseudoを入れると入っていたはず)

	#alternatives --display hadoop-0.20-conf
	hadoop-0.20-conf - status is manual.
	 link currently points to /etc/hadoop-0.20/conf.pseudo
	/etc/hadoop-0.20/conf.empty - priority 10
	/etc/hadoop-0.20/conf.test1 - priority 40
	/etc/hadoop-0.20/conf.pseudo - priority 30

alternatives関連

	#alternatives --display hadoop-0.20-conf
	が無い時は下記のコマンドで設定する
	#alternatives --install /etc/hadoop-0.20/conf hadoop-0.20-conf /etc/hadoop-0.20/conf.xxxx 50
	(50は重要度、高いconfをデフォルトで読むようにする)
	
	link currently points to /etc/hadoop-0.20/conf.pseudo
	と出ていない場合はセットをする。
#alternatives --set hadoop-0.20-conf /etc/hadoop-0.20/conf.xxxx

サービス起動

	service hadoop-0.20-namenode start
	service hadoop-0.20-jobtracker start
	service hadoop-0.20-datanode start
	service hadoop-0.20-tasktracker start

確認

  • MapReduce?の様子を見てみる
    	ここが動作確認メインの画面。画面が表示されていれば一台の場合は大体問題ない
       http://192.xxx.yyy.zzz:50030/
       
  • HDFSの様子を見てみる
   http://192.xxx.yyy.zzz:50070/
  • 他のマシンのブラウザから見る場合は
    	ポート設定適切な設定
    	# system-config-securitylevel-tui
    をするか、
    	ファイアウォールを切る
    	# /etc/init.d/iptables stop

4.HDFSを試す

2-2. HDFSを試す。 http://saburi380.blogspot.com/2009/11/301hadoopcentos-cloudera.html

を見てください。

rootで試した。

fs関連のヘルプは読んだほうがいい。

hadoop-0.20だとそのもののコマンドオプションしかない。

   hadoop-0.20 fs -help

例えば、MapReduce?処理を途中で止めてしまうとゴミが残ってしまって、次回処理ができなくなってしまう。

そんな時に -rmrで残っていたディレクトリを削除する

# hadoop-0.20 fs -rmr hdfs:///xxxx.yyyy/user/root/PiEstimator_TMP_3_141592654

5.MapReduce?を試す

	#hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar pi 4 2000
	これで問題がなければ、一台バージョンは成功となる
	*は環境によって違う

6.Hadoop 完全分散 の設定

 同じ環境をマスター1台、スレーブ1台以上作っているものとする。VM環境だったのでイメージのコピーで済んだ。  一回再起動  

マスタースレーブ共通設定

6.1 新しいconf(conf.cluster)を作る

conf.pseudoからコピー

	#cp -r /etc/hadoop-0.20/conf.pseudo /etc/hadoop-0.20/conf.cluster

altenertivesに登録

	#alternatives --install /etc/hadoop-0.20/conf hadoop-0.20-conf /etc/hadoop-0.20/conf.cluster 50

alternativeをclusterに切り替え

	#alternatives --set hadoop-0.20-conf /etc/hadoop-0.20/conf.cluster
	

6.2 conf.clusterの設定

インフラエンジニアのためのHadoop情報 クラスタ構築その1:So-net Developer Blog:So-netブログ http://so-net-developer.blog.so-net.ne.jp/hadoop-4-cluster_1

を参考にした

  • /etc/hadoop-0.20/conf.cluster/core-site.xml  <name>fs.default.name</name>
    <value>hdfs://localhost:8020</value>
    をマスターサーバーのIPアドレスやドメインに変える
    	<name>fs.default.name</name>
    <value>hdfs://master_server_IP:8020</value>

またhadoop.tmp.dirはpesudoの設定を使った。これを設定しないと処理するときにエラーがでた

  • /etc/hadoop-0.20/conf.cluster/hdfs-site.xml
    	<name>dfs.replication</name>
    	<value>1</value>
    	<value>3</value>
    にする
  • /etc/hadoop-0.20/conf.cluster/mapred-site.xml
       <name>mapred.job.tracker</name>
       <value>localhost:8021</value>
       <name>mapred.job.tracker</name>
       <value>master_server_IP:8021</value>
    にする

6.3 conf.clusterの設定その他

mastersファイルとslavesファイルは無くてもいいかも(slavesが3台の時に一台しか設定していなかったが、マスターで3台認識した)

  • mastersファイル
    	echo master_server_IP > masters
    	
  • slavesファイル
    	cat << EOF > slaves
    	slaves1_IP
    	slaves2_IP
    	slaves3_IP
    	EOF
    	
  • hadoop-env.shファイル
    	いじってない。 参照:意外と、いじらなくてよいです。(問題があればJavaの設定を施します。例えばCentOSではexport JAVA_HOME=/usr/java/default)
    	

6.4マスター設定

きりんさん日記: 4台構成のHadoopを100分で試してみる(CentOS + Cloudera) http://saburi380.blogspot.com/2009/11/1004hadoopcentos-cloudera.html

を参考に

  • HDFSフォーマット作業
    	#hadoop-0.20 namenode -format
    	参考サイトではユーザーを指定する必要があるが、私は特に指定しなくても動いた
    	
  • サービス起動
    	#service hadoop-0.20-namenode start
    	#service hadoop-0.20-jobtracker start
    	//擬似分散では4つのサービスを起動する必要があるが、マスタースレーブ構成ではマスターはnamenodeとjobtrackerが起動していればよい
  • サービス登録(再起動時自動起動)
    	chkconfig --add hadoop-0.20-namenode
    	chkconfig --add hadoop-0.20-jobtracker
  • Firewall設定:ここでは以下をあけます。
   50030:tcp 50070:tcp 8020:tcp 8021:tcp
   (ローカルな環境ではOffにしてしまうのも、いいかもしれません。)

6.5スレーブ設定

  • サービス起動
    	#service hadoop-0.20-datanode start
    	#service hadoop-0.20-tasktracker  start
    	//擬似分散では4つのサービスを起動する必要があるが、マスタースレーブ構成ではスレーブはdatanodeとtasktrackerが起動していればよい
  • サービス登録(再起動時自動起動)
    	chkconfig --add hadoop-0.20-datanode
    	chkconfig --add hadoop-0.20-tasktracker
  • Firewall設定:ここでは以下をあけます。
   50030:tcp 50070:tcp 8020:tcp 8021:tcp
   (ローカルな環境ではOffにしてしまうのも、いいかもしれません。)

7.完全分散 確認

  • MapReduce?の様子を見てみる
    	ここが動作確認メインの画面。画面が表示されていれて、Nodesが想定した台数だったらOK
       http://192.xxx.yyy.zzz:50030/
       
  • HDFSの様子を見てみる
   http://192.xxx.yyy.zzz:50070/

8.MapReduce?を試す。

	hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar pi 4 2000

結果例

	...略...
	うっすらmapしてreduceします。
	...略...
	Job Finished in 94.799 seconds
	Estimated value of Pi is 3.14100000000000000000

円周率が表示されれば、OK

MapReduce?している間に、

	http://192.xxx.yyy.zzz:50030/

をみると、Jobの状況が分かる

その他

途中で終了させたタスクを取り除く Tmp directory hdfs://xxxx.yyyy/user/root/PiEstimator_TMP_3_141592654 already exists. Please remove it first.

# hadoop-0.20 fs -rmr hdfs://xxxx.yyyy/user/root/PiEstimator_TMP_3_141592654

sun javaの場所

# find /usr -name "*jdk*" -print

ポート設定

# system-config-securitylevel-tui

参考リンク

きりんさん日記: 4台構成のHadoopを100分で試してみる(CentOS + Cloudera) http://saburi380.blogspot.com/2009/11/1004hadoopcentos-cloudera.html

インフラエンジニアのためのHadoop情報 クラスタ構築その1:So-net Developer Blog:So-netブログ http://so-net-developer.blog.so-net.ne.jp/hadoop-4-cluster_1

CDH3のインストール - watawata日記 http://d.hatena.ne.jp/wyukawa/20110614/1308066200

Hadoop擬似分散環境メモ(Hishidama's Hadoop pseudo-distributed Memo) http://www.ne.jp/asahi/hishidama/home/tech/apache/hadoop/pseudo.html

HadoopでHDFSとHBaseを使って分散ファイルシステムと分散KVSを試す - rysk92wiki http://wiki.rysk92.com/index.php/Hadoop%E3%81%A7HDFS%E3%81%A8HBase%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%88%86%E6%95%A3%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%A8%E5%88%86%E6%95%A3KVS%E3%82%92%E8%A9%A6%E3%81%99

設定後良く使ってコマンド

	service hadoop-0.20-namenode restart
	service hadoop-0.20-jobtracker restart
	service hadoop-0.20-datanode restart
	service hadoop-0.20-tasktracker  restart
	alternatives --display hadoop-0.20-conf
	 alternatives --set hadoop-0.20-conf /etc/hadoop-0.20/conf.pseudo

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-06-30 (木) 13:58:54 (2855d)