web-dev-qa-db-ja.com

Hadoop:Datanodeプロセスが強制終了されました

私は現在Hadoop-2.0.3-alphaを使用しており、HDFSで完全に作業できるようになった後(ファイルをHDFSにコピーし、外部フレームワークから成功し、webfrontendを使用)、VMを新たに起動した後、データノードプロセスが停止していますしばらくして。 namenodeプロセスとすべてのヤーンプロセスは問題なく動作します。私はHadoop 0.2もインストールしているので、追加ユーザーの下のフォルダーにHadoopをインストールしましたが、これも正常に機能しました。すべてのデータノードプロセスのログファイルを確認すると、次の情報が得られました。

2013-04-11 16:23:50,475 WARN org.Apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-Java classes where applicable
2013-04-11 16:24:17,451 INFO org.Apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2013-04-11 16:24:23,276 INFO org.Apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
2013-04-11 16:24:23,279 INFO org.Apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started
2013-04-11 16:24:23,480 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Configured hostname is user-VirtualBox
2013-04-11 16:24:28,896 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Opened streaming server at /0.0.0.0:50010
2013-04-11 16:24:29,239 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Balancing bandwith is 1048576 bytes/s
2013-04-11 16:24:38,348 INFO org.mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
2013-04-11 16:24:44,627 INFO org.Apache.hadoop.http.HttpServer: Added global filter 'safety' (class=org.Apache.hadoop.http.HttpServer$QuotingIn putFilter)
2013-04-11 16:24:45,163 INFO org.Apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.Apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context datanode
2013-04-11 16:24:45,164 INFO org.Apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.Apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context logs
2013-04-11 16:24:45,164 INFO org.Apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.Apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context static
2013-04-11 16:24:45,355 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Opened info server at 0.0.0.0:50075
2013-04-11 16:24:45,508 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: dfs.webhdfs.enabled = false
2013-04-11 16:24:45,536 INFO org.Apache.hadoop.http.HttpServer: Jetty bound to port 50075
2013-04-11 16:24:45,576 INFO org.mortbay.log: jetty-6.1.26
2013-04-11 16:25:18,416 INFO org.mortbay.log: Started [email protected]:50075
2013-04-11 16:25:42,670 INFO org.Apache.hadoop.ipc.Server: Starting Socket Reader #1 for port 50020
2013-04-11 16:25:44,955 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Opened IPC server at /0.0.0.0:50020
2013-04-11 16:25:45,483 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Refresh request received for nameservices: null
2013-04-11 16:25:47,079 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Starting BPOfferServices for nameservices: <default>
2013-04-11 16:25:47,660 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Block pool <registering> (storage id unknown) service to localhost/127.0.0.1:8020 starting to offer service
2013-04-11 16:25:50,515 INFO org.Apache.hadoop.ipc.Server: IPC Server Responder: starting
2013-04-11 16:25:50,631 INFO org.Apache.hadoop.ipc.Server: IPC Server listener on 50020: starting
2013-04-11 16:26:15,068 INFO org.Apache.hadoop.hdfs.server.common.Storage: Lock on /home/hadoop/workspace/hadoop_space/hadoop23/dfs/data/in_use.lock acquired by nodename 3099@user-VirtualBox
2013-04-11 16:26:15,720 FATAL org.Apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363) service to localhost/127.0.0.1:8020
Java.io.IOException: Incompatible clusterIDs in /home/hadoop/workspace/hadoop_space/hadoop23/dfs/data: namenode clusterID = CID-1745a89c-fb08-40f0-a14d-d37d01f199c3; datanode clusterID = CID-bb3547b0-03e4-4588-ac25-f0299ff81e4f
at org.Apache.hadoop.hdfs.server.datanode.DataStorage .doTransition(DataStorage.Java:391)
at org.Apache.hadoop.hdfs.server.datanode.DataStorage .recoverTransitionRead(DataStorage.Java:191)
at org.Apache.hadoop.hdfs.server.datanode.DataStorage .recoverTransitionRead(DataStorage.Java:219)
at org.Apache.hadoop.hdfs.server.datanode.DataNode.in itStorage(DataNode.Java:850)
at org.Apache.hadoop.hdfs.server.datanode.DataNode.in itBlockPool(DataNode.Java:821)
at org.Apache.hadoop.hdfs.server.datanode.BPOfferServ ice.verifyAndSetNamespaceInfo(BPOfferService.Java: 280)
at org.Apache.hadoop.hdfs.server.datanode.BPServiceAc tor.connectToNNAndHandshake(BPServiceActor.Java:22 2)
at org.Apache.hadoop.hdfs.server.datanode.BPServiceAc tor.run(BPServiceActor.Java:664)
at Java.lang.Thread.run(Thread.Java:722)
2013-04-11 16:26:16,212 WARN org.Apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363) service to localhost/127.0.0.1:8020
2013-04-11 16:26:16,276 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363)
2013-04-11 16:26:18,396 WARN org.Apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
2013-04-11 16:26:18,940 INFO org.Apache.hadoop.util.ExitUtil: Exiting with status 0
2013-04-11 16:26:19,668 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
/************************************************** **********
SHUTDOWN_MSG: Shutting down DataNode at user-VirtualBox/127.0.1.1
************************************************** **********/

何か案は?インストールプロセスを間違えた可能性がありますか?しかし、それが一度働いたのは奇妙です。また、コマンドを実行するための追加ユーザーとしてログインしている場合、./hadoop-daemon.shstart namenodeおよびデータノードと同じように、Sudoを追加する必要があります。

私はこのインストールガイドを使用しました: http://jugnu-life.blogspot.ie/2012/0...rial-023x.html

ちなみに、私はOracle Java-7バージョンを使用しています。

18
Hans Müller

問題は、クラスターのセットアップ後にネームノードがフォーマットされ、データノードがフォーマットされなかったため、スレーブがまだ古いネームノードを参照している可能性があります。

データノードのローカルファイルシステム上の/ home/hadoop/dfs/dataフォルダーを削除して再作成する必要があります。

  • Hdfs-site.xmlファイルをチェックして、dfs.data.dirが指している場所を確認します
  • そのフォルダを削除します
  • マシンでdatanodeデーモンを再起動します

上記の手順により、フォルダが再作成され、問題が解決します。

上記の手順が機能しない場合は、設定情報を共有してください。

81
rVr

クラスタノードに互換性がないため、DataNodeが停止します。この問題を修正するにはhadoop 2.Xを使用している場合は、hdfs-site.xmlで指定したフォルダー内のすべてを削除する必要があります-「dfs.datanode.data.dir」(フォルダー自体ではありません)。

ClusterIDはそのフォルダに保持されます。 dfs.shを削除して再起動します。これは動作するはずです!!!

14
Pious Deepak
  1. 両方を削除する必要があります
    C:\ hadoop\data\dfs\datanodeおよび
    C:\ hadoop\data\dfs\namenodeフォルダ。

このフォルダーがない場合-C:\ hadoop\etc\hadoop\hdfs-site.xmlファイルを開いて、次の削除のためにこのフォルダーのパスを取得します。私にとってそれは言う:

<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/hadoop/data/dfs/namenode</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/hadoop/data/dfs/datanode</value>
</property>
  1. namename形式のコマンドを実行
    c:\hadoop\bin>hdfs namenode -format

これでうまくいくはずです!

5
Yuliia Ashomok

データディレクトリを削除せずにこれを行う推奨方法は、データノードのVERSIONファイルのclusterID変数を変更することです。

デーモンディレクトリを見ると、データノードディレクトリの例が表示されます。

data/hadoop/daemons/datanode

VERSIONファイルは次のようになります。

cat current/VERSION 
#Tue Oct 14 17:31:58 CDT 2014
storageID=DS-23bf7f3a-085c-4531-808f-801ff6d52d14
clusterID=CID-bb3547b0-03e4-4588-ac25-f0299ff81e4f
cTime=0
datanodeUuid=63154929-ae68-4149-9f75-9a6558545041
storageType=DATA_NODE
layoutVersion=-55

ClusterIdをメッセージの出力の最初の値に変更する必要があるため、この場合、CID-bb3547b0-03e4-4588-ac25-f0299ff81e4fではなくCID-1745a89c-fb08-40f0-a14d-d37d01f199c3になります。

更新されたバージョンは、clusterIdが変更された次のようになります。

  cat current/VERSION 
    #Tue Oct 14 17:31:58 CDT 2014
    storageID=DS-23bf7f3a-085c-4531-808f-801ff6d52d14
    clusterID=CID-1745a89c-fb08-40f0-a14d-d37d01f199c3
    cTime=0
    datanodeUuid=63154929-ae68-4149-9f75-9a6558545041
    storageType=DATA_NODE
    layoutVersion=-55

Hadoopを再起動すると、データノードが正常に起動するはずです。

4
Chris Hinshaw