FC2ブログ
人生ずっと勉強。
ITを軸としたT型人間になりたい人のブログ。
09 | 2018/10 | 11
S M T W T F S
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Hadoopで"could only be replicated to 0 nodes, instead of 1"エラー
【解決法まとめ】
・前提
現在使っているHadoopのバージョンが、以前使っていたバージョンより古い場合(ダウングレードしたとき)。
・解決方法
1.Hadoopのクラスタを停止
# stop-all.sh

2.ローカルにあるHadoopのデータディレクトリを物理的に削除。
データディレクトリは
/tmp/hadoop-Hadoop用ユーザネーム

であることが典型的。ユーザネームが「Hadoop」なら「/tmp/hadoop-hadoop」。

3.HDFSを再びフォーマット
# hadoop namenode -format

4.Hadoopクラスタ再起動
# start-all.sh


【問題の背景】
・Hadoop-0.21.0を使っていて、以下の警告が出たのでHadoop-0.20.2にダウングレードした。
WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id

ちなみにこれについてはすでにこちらにパッチが登場済み。バージョン0.22から反映されるそうです。
それまでは自力でコンパイルしてjarに統合するしかない、のかな?
・「# hadoop fs -ls /」や「# hadoop fs -mkdir /tmp」などはうまくいくが、HDFSにファイルを置こうと
「# hadoop fs -copyFromLocal ./hoge.txt /tmp/」とすると、
"could only be replicated to 0 nodes, instead of 1"
というエラーが出現。
「# hadoop fs -ls /tmp」をすると、「hoge.txt」はあるがサイズは0.
・DataNodeのログファイルを確認するため、
less $HADOOP_INSTALLED/logs/hadoop-ユーザ名-datanode-ホスト名.log

を叩くと、ログ中に
"Unexpected version of storage directory in the datanode log file"
の記述が。
これでググってみると、こちらを発見。
記述されている通りにやってみたところうまく動く。
記述内容は【解決法まとめ】の通り。
スポンサーサイト

コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://kiyotakagoto.blog3.fc2.com/tb.php/23-163bab24
この記事にトラックバックする(FC2ブログユーザー)

わたくし

いろいろリンク

カテゴリ

月別アーカイブ

最新記事

最新コメント

最新トラックバック

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。