ラベル tips の投稿を表示しています。 すべての投稿を表示
ラベル tips の投稿を表示しています。 すべての投稿を表示

2010年10月24日日曜日

HDFSのPATHに関する制限

まさにメモなのですが・・・
ソースコード読んでいて見つけたのでメモしておきます。

パスの文字数制限:8000文字
パスの階層:1000

これだけ。

2009年12月14日月曜日

/etc/hosts再び

新規インストールした環境で、処理が途中で止まってしまって進まなくなるという現象が多発しました。

これ、/etc/hostsに原因があって、

127.0.0.1 localhost localhost.localdomain
192.168.x1.y1 name
192.168.x1.y2 data1
192.168.x1.y3 data2
192.168.x1.y4 data3

っていうのを

127.0.0.1 localhost localhost.localdomain
192.168.x1.y1 name name.hoge.jp
192.168.x1.y2 data1 data1.hoge.jp
192.168.x1.y3 data2 data2.hoge.jp
192.168.x1.y4 data3 data3.hoge.jp

とフルドメイン名を含めた形に書き換えるとうまく動くようになります。

2009年11月10日火曜日

SafeModeのちょいワザ

こんにちは、yoshitsuguです。

HDFS上のデータが壊れたりして、HDFSがSafeModeに入りっぱなしになり
困ったことはありませんか?
(Safe Modeだとファイルの追加・削除ができないうえ、fsck -deleteも使えません)

そんな時に一時的にSafe Modeを抜けるワザです。
(Hadoopのドキュメントに普通に書いてあるので裏技ではありません)


$HADOOP_HOME/bin/hadoop dfsadmin -safemode leave


SafeModeを抜ける必要のある作業が終わったら


$HADOOP_HOME/bin/hadoop dfsadmin -safemode enter


コマンドでSafeModeに戻すことも可能です。

※なお、-safemode enterは手動でSafeModeに入るため、SafeModeから抜けるためにはもう一度-safemode leaveコマンドを実行する必要があります。

参考資料:Apache Hadoop コマンドガイド(英語です)

2009年9月9日水曜日

Too many fetch-failures

こんばんは、yoshitsuguです。

Map処理は完了しているのに、Reduce処理がなかなか進みません。
で、ログを確認してみると、"Too many fetch-failures"というエラーが出ていました。

そこで、Google検索をかけて、あるページにたどり着きました。


以下、引用(邦訳:yoshitsugu)

ReducerがHDFS内でデータをコピーするのに失敗した。チェックすべきは、LinuxのネットワークとHadoopの設定だ。
(The Reducer was failed to copy data through the HDFS, what we should do is to double check your Linux network and Hadoop configuration :)
1.必要な全パラメータがhadoop-site.xmlに設定されているかどうか確認し、Hadoop内の全ノードが同じ設定であることを確認する。
(1. Make sure that all the needed parameters are configured in hadoop-site.xml, and all the worker nodes should have the same content of this file.)

2.TaskTrackerやHDFSのURIにはIPアドレスではなくホスト名を使用するべきだ。URIにIPアドレスを使用しているHadoopクラスターをいくつかみてきたが、それらはサービスを開始してJobの実行をすることはできても正常に終了したことがない。
(2. URI for TaskTracker and HDFS should use hostname instead of IP address. I saw some instances of Hadoop cluster using IP address for the URI, they can start all the services and execute the jobs, but the task never finished successfully.)

3.全ノードの/etc/hostsファイルを確認し、ホスト名とIPアドレスのバインドがなされていることを確認する(ローカルホストではない)とともに全ホストがお互いにホスト名で通信できることを確認する。
(3. Check the file /etc/hosts on all the nodes and make sure that you’re binding the host name to its network IP, not the local one (127.0.0.1), don’t forget to check that all the nodes are able to communicate to the others using their hostname.)

今回の私の環境は、見事に/etc/hostsの中身が間違っていてこれが原因だとわかりました。