web-dev-qa-db-ja.com

Hadoopで実行されていないデータノードプロセス

このチュートリアル を使用して、マルチノードHadoopクラスターをセットアップおよび構成しました。

Start-all.shコマンドを入力すると、すべてのプロセスが次のように正しく初期化されます。

starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-namenode-jawwadtest1.out
jawwadtest1: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-jawwadtest1.out
jawwadtest2: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-jawwadtest2.out
jawwadtest1: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-secondarynamenode-jawwadtest1.out
starting jobtracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-jobtracker-jawwadtest1.out
jawwadtest1: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-jawwadtest1.out
jawwadtest2: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-jawwadtest2.out

ただし、jpsコマンドを入力すると、次の出力が表示されます。

31057 NameNode
4001 RunJar
6182 RunJar
31328 SecondaryNameNode
31411 JobTracker
32119 Jps
31560 TaskTracker

ご覧のとおり、実行中のデータノードプロセスはありません。単一ノードのクラスターを構成しようとしましたが、同じ問題が発生しました。ここで何が間違っているのか誰にも分かりますか?チュートリアルに記載されていない構成ファイルはありますか、または見直したことがありますか?私はHadoopを初めて使用しますが、少し迷いました。どんな助けも大歓迎です。

編集:hadoop-root-datanode-jawwadtest1.log:

STARTUP_MSG:   args = []
STARTUP_MSG:   version = 1.0.3
STARTUP_MSG:   build = https://svn.Apache.org/repos/asf/hadoop/common/branches/$
************************************************************/
2012-08-09 23:07:30,717 INFO org.Apache.hadoop.metrics2.impl.MetricsConfig: loa$
2012-08-09 23:07:30,734 INFO org.Apache.hadoop.metrics2.impl.MetricsSourceAdapt$
2012-08-09 23:07:30,735 INFO org.Apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:30,736 INFO org.Apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:31,018 INFO org.Apache.hadoop.metrics2.impl.MetricsSourceAdapt$
2012-08-09 23:07:31,024 WARN org.Apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:32,366 INFO org.Apache.hadoop.ipc.Client: Retrying connect to $
2012-08-09 23:07:37,949 ERROR org.Apache.hadoop.hdfs.server.datanode.DataNode: $
        at org.Apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(Data$
        at org.Apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransition$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNo$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.Java$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNod$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode($
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataN$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.Java:1$

2012-08-09 23:07:37,951 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: S$
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at jawwadtest1/198.101.220.90
************************************************************/
36
Jawwad Zakaria

このようなことをする必要があります:

  • bin/stop-all.sh (または stop-dfs.shおよびstop-yarn.sh 2.xシリーズでは)
  • rm -Rf /app/tmp/hadoop-your-username/*
  • bin/hadoop namenode -format(または2.xシリーズのhdfs

ソリューションは、 http://pages.cs.brandeis.edu/~cs147a/lab/hadoop-troubleshooting/ から取得しました。基本的には、ゼロから再起動することで構成されているため、hdfsをフォーマットしてデータを失わないようにしてください。

65
giltsl

私は同じ問題に遭遇しました。 hadoop/confのconfig xmlファイルで参照されるサブディレクトリ名、データ、およびtmpを持つhdfsフォルダー「/ home/username/hdfs」を作成しました。

Hadoopを起動してjpsを実行したときに、データノードが見つからなかったため、bin/hadoop datanodeを使用して手動でデータノードを起動しようとしました。次に、エラーメッセージから、hadoop構成ファイルのいずれかで参照されていたdfs.data.dir =/home/username/hdfs/data /へのアクセスに問題があることがわかりました。 hadoopを停止し、/ home/username/hdfs/tmp/*ディレクトリの内容を削除してから、このコマンドを試してください-chmod -R 755 /home/username/hdfs/そして、hadoopを起動します。データノードが見つかりました!

17
sunskin

データノードの実行中に同様の問題に直面しました。次の手順は役に立ちました。

  1. [hadoop_directory] ​​/ sbinディレクトリで./stop-all.shを使用して、実行中のすべてのサービスを停止します。
  2. Rm -r [hadoop_directory] ​​/ tmp([hadoop_directory] ​​/etc/hadoop/core-site.xmlで設定されたパス)を使用してtmpディレクトリを削除します
  3. Sudo mkdir [hadoop_directory] ​​/ tmp(新しいtmpディレクトリを作成)
  4. サブディレクトリとしてnamenodeとdatanodeを作成した*/hadoop_store/hdfsディレクトリに移動します。 ([hadoop_directory] ​​/etc/hadoop/hdfs-site.xmlで構成されたパス)。つかいます

    rm -r namenode
    
    rm -r datanode
    
  5. */hadoop_store/hdfsディレクトリで使用

    Sudo mkdir namenode
    
    Sudo mkdir datanode
    

許可問題の場合、使用

   chmod -R 755 namenode 

   chmod -R 755 datanode
  1. [hadoop_directory] ​​/ binで使用

     hadoop namenode -format (To format your namenode)
    
  2. [hadoop_directory] ​​/ sbinディレクトリで、。/ start-all.shまたは./start-dfs.shを使用してサービスを開始します。
  3. Jpsを使用して、実行中のサービスを確認します。
7
Anirban

単一ノードの擬似分散インスタンスを実行しているときに同じ問題が発生していました。解決方法を理解できませんでしたが、簡単な回避策は、DataNodeを手動で起動することです
hadoop-x.x.x/bin/hadoop datanode

6
HypnoticSheep
  1. 最初にdfsとyarnを停止します。
  2. Core-site.xmlファイルで指定されているdatanodeおよびnamenodeディレクトリーを削除します。
  3. ディレクトリを再作成します。
  4. 次に、次のようにdfsと糸を再起動します。

    start-dfs.sh

    start-yarn.sh

    mr-jobhistory-daemon.sh履歴サーバーの起動

    これがうまくいくことを願っています。

2
KayV

以下のコマンドを行で実行:-

  1. stop-all.sh(Stop Allを実行して、すべてのhadoopプロセスを停止します)
  2. rm -r/usr/local/hadoop/tmp /(hadoop/conf/core-site.xmlで設定したHadoop tmpディレクトリ)
  3. Sudo mkdir/usr/local/hadoop/tmp(同じディレクトリを再度作成します)
  4. hadoop namenode -format(namenodeのフォーマット)
  5. start-all.sh(Start Allを実行して、すべてのhadoopプロセスを開始します)
  6. JPS(実行中のプロセスが表示されます)
1

ステップ1:-Stop-all.sh

ステップ2:-このパスに到達

cd /usr/local/hadoop/bin

ステップ3:-そのコマンドhadoop datanodeを実行します

DataNodeが動作するようになりました

1
Sunil Suthar

Tmpディレクトリプロパティがcore-site.xmlの有効なディレクトリを指しているかどうかを制御してください

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp</value>
</property>

ディレクトリの設定が間違っていると、datanodeプロセスが正しく起動しません。

1
natbusa

以下の手順を実行すると、データノードが再び起動します。

  1. Dfsを停止します。
  2. Hdfs-site.xmlを開きます
  3. Data.dirおよびname.dirプロパティをhdfs-site.xmlおよび-format namenodeから再度削除します。
  4. 次に、hadoopdataディレクトリを削除し、data.dirとname.dirをhdfs-site.xmlに追加し、namenodeを再度フォーマットします。
  5. その後、dfsを再度開始します。
1
Harish Pathak

すべてのサービスを停止します-./stop-all.shすべてのマスターとスレーブからすべてのhdfs tmpディレクトリをフォーマットします。スレーブからフォーマットすることを忘れないでください。

Namenodeをフォーマットします(hadoop namenode -format)

次に、namenodeでサービスを開始します。 ./bin/start-all.sh

これにより、datanodeサービスを開始することができました。

1
Sneha Priya Ale

hadoop.tmp.dircore-site.xmlプロパティが正しく設定されているかどうかを確認します。設定した場合は、このディレクトリに移動し、このディレクトリを削除するか空にします。設定しなかった場合は、デフォルトのフォルダ/tmp/hadoop-${user.name}に移動し、同様にこのディレクトリを削除するか空にします。

1
Yang Chen

3つの手順に従う必要があります。

(1)ログに移動して最新のログを確認する必要があります(hadoop-2.6.0/logs/hadoop-user-datanode-ubuntu.logで)

エラーが次の場合

Java.io.IOException:/ home/kutty/work/hadoop2data/dfs/dataの非互換のclusterID:namenode clusterID = CID-c41df580-e197-4db6-a02a-a62b71463089; datanode clusterID = CID-a5f4ba24-3a56-4125-9137-fa77c5bb07b1

つまり、namenodeクラスターIDとdatanodeクラスターIDは同一ではありません。

(2)namenode clusterID CID-c41df580-e197-4db6-a02a-a62b71463089を上記のエラーでコピーします

(3)hadoopdata/dfs/data/current/versionのDatanodeクラスターIDをNamenodeクラスターIDに置き換えます

clusterID = CID-c41df580-e197-4db6-a02a-a62b71463089

Hadoopを再起動します。 DataNodeを実行します

1
Chandra Mouli

「hadoop tmp dir」の下のすべてを削除する代わりに、別のものを設定できます。たとえば、core-site.xmlに次のプロパティがある場合:

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp</value>
</property>

これを次のように変更できます。

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp2</value>
</property>

次に、scp core-site.xmlを各ノードに追加し、「hadoop namenode -format」を実行してから、hadoopを再起動します。

0
JackeyXu

Hadoopフォルダーの下のデータノードを削除してから、start-all.shを再実行します

0
Gajendra K S

tmpディレクトリのフォーマットが機能しない場合は、これを試してください:

  1. まず、namenode、datanodeなどのすべてのエンティティを停止します(これを行うためのスクリプトまたはコマンドがいくつかあります)
  2. Tmpディレクトリのフォーマット
  3. / var/cache/hadoop-hdfs/hdfs/dfs /に移動し、ディレクトリ内のすべてのコンテンツを手動で削除します
  4. 名前ノードを再度フォーマットします
  5. すべてのエンティティを開始し、jpsコマンドを使用して、データノードが開始されたことを確認します
  6. いずれかのアプリケーションを実行します

お役に立てれば。

0
The joker

ディレクトリの再作成を削除した後でも、データノードは起動していませんでした。そこで、bin/hadoop datanodeを使用して手動で開始しましたが、結論に達しませんでした。同じユーザー名から別のターミナルを開いてjpsを実行すると、実行中のデータノードプロセスが表示されました。動作していますが、未完成の端末を開いたままにしておく必要があります。

0
Argha Nandan

以下の手順を実行すると、データノードが再び起動します。

1)dfsを停止します。 2)hdfs-site.xmlを開きます3)hdfs-site.xmlおよび-format namenodeからdata.dirおよびname.dirプロパティを再度削除します。

4)次に、dfsを再度開始します。

0

以下のようなログファイルに問題の詳細があります。「dfs.data.dirの無効なディレクトリ:/ home/hdfs/dnman1の不正なアクセス許可、予想:rwxr-xr-x while実際:rwxrwxr-x」とそこから、データフォルダへのアクセス許可が777であることがわかりました。 755に修正し、機能し始めました。

0
user1431921
  1. Conf/core-site.xmlでhadoop.tmp.dirを構成しました
  2. Conf/hdfs-site.xmlでdfs.data.dirを構成しました
  3. Conf/hdfs-site.xmlでdfs.name.dirを構成しました
  4. 「/ tmp/hadoop- /」ディレクトリの下のすべてを削除しました
  5. dfs.data.dirの下にリストされているディレクトリのファイル許可を777から755に変更しました

    そして、データノードが機能し始めました。

0
Bhaskar

同じエラーが発生しました。 dfsを数回開始および停止しようとし、以前の回答で言及されているすべてのディレクトリをクリアしましたが、何も助けませんでした。

この問題は、OSを再起動し、Hadoopを最初から設定した後にのみ解決されました。 (再起動せずにゼロからHadoopを設定しても機能しませんでした)

0
Pavel Lopatin

私はいくつかの混合構成を適用し、それは私のために働いた。
最初>>
${HADOOP_HOME}/sbin/stop-all.shを使用してHadoopのすべてのサービスを停止します

2番目>>
${HADOOP_HOME}/etc/hadoop/mapred-site.xmlにあるmapred-site.xmlを確認し、localhostmasterに変更します。

3番目>>
hadoopによって作成された一時フォルダーを削除する
rm -rf //path//to//your//hadoop//temp//folder

4番目>>
tempに再帰的許可を追加します。
Sudo chmod -R 777 //path//to//your//hadoop//temp//folder

5番目>>
今、すべてのサービスを再度開始します。そして、まずデータノードを含むすべてのサービスが実行されていることを確認します。 ここに画像の説明を入力

0
Sunrays

以下を確認する必要があります。

/ app/hadoop/tmp/dfs/data/current/VERSIONおよび/ app/hadoop/tmp/dfs/name/current/VERSION ---

これらの2つのファイルと、名前ノードとデータノードの名前空間ID.

データノードのNamespaceIDが名前ノードのNamespaceIDと同じ場合にのみ、データノードが実行されます。

それらが異なる場合は、viエディターまたはgeditを使用してネームノードNamespaceIDをデータノードのネームスペースIDにコピーし、保存して、デーモンを再実行します。

0
sindhu Y

これを試して

  1. stop-all.sh
  2. vi hdfs-site.xml
  3. プロパティdfs.data.dirに指定された値を変更します
  4. 名前ノードのフォーマット
  5. start-all.sh
0
Neha Milak

Mac OS(擬似分散モード)の場合:

オープンターミナル

  1. Dfsを停止します。 「sbin/stop-all.sh」。
  2. cd /tmp
  3. rm -rf hadoop*
  4. Hadoopディレクトリに移動します。 hdfsをフォーマットします。 bin/hdfs namenode -format
  5. sbin/start-dfs.sh
0
Anand Prakash

Hadoopでjpsを使用してデータノードを見つけることができなくなったら、hadoopのインストールディレクトリ(/opt/hadoop-2.7.0/hadoop_data/dfs/data)start-all.shおよびjpsを使用してhadoopを再起動しました。

今回はデータノードを見つけることができ、現在のフォルダーが再び作成されました。

0
Kajal Sharma

これは、Hadoopの新しいバージョン用です(2.4.0を実行しています)

  • この場合、クラスターsbin/stop-all.shを停止します
  • 次に、構成ファイルについて/ etc/hadoopに移動します。

ファイル内:hdfs-site.xml dfs.namenode.name.dir dfs.namenode.data.dirに対応するディレクトリパスを探します

  • 両方のディレクトリを再帰的に削除します(rm -r)。
  • Bin/hadoop namenode -formatを使用してnamenodeをフォーマットします
  • そして最後にsbin/start-all.sh

お役に立てれば。

0
apurva.nandan