Hadoop クラスターのデータノードについて誤解していると思います。master、slave1、slave2、slave3 で構成される Hadoop 仮想クラスターがあります。マスターとスレーブ 1 は物理マシンにあり、スレーブ 2 とスレーブ 3 は 1 つの物理マシンにあります。クラスターを開始すると、HDFS WebUI で、slave1、master、slave2 の 3 つの生きているデータノードしか表示されません。ただし、3 つの生きているデータノードがマスター、スレーブ 1、スレーブ 3 である場合もあります。それは奇妙だ。開始されていないデータノードに ssh します。jps を実行してデータノードが見つかりませんでしたが、このノードの HDFS でファイルをコピーおよび削除できます。したがって、datanode を正しく理解してはいけないと思います。ここで 3 つの質問があります。1 ノードごとに 1 つのデータノードがありますか? 2 データノードではないノードでも HDFS で読み書きできるのはなぜですか? 3 データノードの数を決めることはできますか?
未起動のデータノードのログは次のとおりです。
STARTUP_MSG: Starting DataNode STARTUP_MSG: host = slave11/192.168.111.31 STARTUP_MSG: args = [] STARTUP_MSG: version = 1.0.3 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch- 1.0 -r 1335192; compiled by 'hortonfo' on Tue May 8 20:31:25 UTC 2012 ************************************************************/ 2012-08-03 17:47:07,578 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 2012-08-03 17:47:07,595 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered. 2012-08-03 17:47:07,596 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s). 2012-08-03 17:47:07,596 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started 2012-08-03 17:47:07,911 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered. 2012-08-03 17:47:07,915 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Source name ugi already exists! 2012-08-03 17:47:09,457 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.111.21:54310. Already tried 0 time(s). 2012-08-03 17:47:10,460 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.111.21:54310. Already tried 1 time(s). 2012-08-03 17:47:11,464 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.111.21:54310. Already tried 2 time(s). 2012-08-03 17:47:19,565 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Registered FSDatasetStatusMBean 2012-08-03 17:47:19,601 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened info server at 50010 2012-08-03 17:47:19,620 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Balancing bandwith is 1048576 bytes/s 2012-08-03 17:47:24,721 INFO org.mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog 2012-08-03 17:47:24,854 INFO org.apache.hadoop.http.HttpServer: Added global filtersafety (class=org.apache.hadoop.http.HttpServer$QuotingInputFilter) 2012-08-03 17:47:24,952 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: dfs.webhdfs.enabled = false 2012-08-03 17:47:24,953 INFO org.apache.hadoop.http.HttpServer: Port returned by webServer.getConnectors()[0].getLocalPort() before open() is -1. Opening the listener on 50075 2012-08-03 17:47:24,953 INFO org.apache.hadoop.http.HttpServer: listener.getLocalPort() returned 50075 webServer.getConnectors()[0].getLocalPort() returned 50075 2012-08-03 17:47:24,953 INFO org.apache.hadoop.http.HttpServer: Jetty bound to port 50075 2012-08-03 17:47:24,953 INFO org.mortbay.log: jetty-6.1.26 2012-08-03 17:47:25,665 INFO org.mortbay.log: Started SelectChannelConnector@0.0.0.0:50075
2012-08-03 17:47:25,688 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: ソース jvm の MBean が登録されました。2012-08-03 17:47:25,690 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: ソース DataNode の MBean が登録されました。2012-08-03 17:47:30,717 INFO org.apache.hadoop.ipc.Server: SocketReader を開始しています 2012-08-03 17:47:30,718 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: ソース RpcDetailedActivityForPort50020 の MBean登録済み。2012-08-03 17:47:30,718 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: ソース RpcActivityForPort50020 の MBean が登録されました。2012-08-03 17:47:30,721 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: dnRegistration = DatanodeRegistration (slave11:50010、ストレージ ID = DS-1062340636-127.0.0.1-50010-1339803955209、infoPort = 50075 、50020 の IPC サーバーリスナー: 2012-08-03 17:47:30,773 INFO org.apache.hadoop.ipc.Server: 50020 の IPC サーバーハンドラー 0: 2012-08-03 17:47:30,773 INFO org.apache の開始.hadoop.ipc.Server: 50020 の IPC サーバー ハンドラー 1: 2012-08-03 17:47:30,795 INFO org.apache.hadoop.hdfs.server.datanode.DataNode を開始: 定期的なブロック スキャナーを開始しています。2012-08-03 17:47:30,816 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: 非同期ブロック レポート スキャンが 52 ミリ秒で完了しました 2012-08-03 17:47:30,838 INFO org.apache.hadoop.hdfs .server.datanode.DataNode: 32 ミリ秒で大まかな (ロックレス) ブロック レポートを生成しました2 ミリ秒 2012-08-03 17:47:31,158 INFO org.apache.hadoop.hdfs.server.datanode.DataBlockScanner: blk_-6072482390929551157_78209 の検証に成功しました 2012-08-03 17:47:33,775 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: 1 ミリ秒で現在の状態に対して調整された非同期ブロック レポート33,793 警告 org.apache.hadoop.hdfs.server.datanode.DataNode: DataNode がシャットダウンしています: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.protocol.UnregisteredDatanodeException: データ ノード 192.168.111.31:50010ストレージ ID DS-1062340636-127.0.0.1-50010-1339803955209 を報告しようとしています。ノード 192.168.111.32:50010 は、このストレージを提供することが期待されています。org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getDatanode(FSNamesystem.java:4608) で org.apache.hadoop.hdfs.server.namenode.FSNamesystem.processReport(FSNamesystem.java:3460) で org.apache .hadoop.hdfs.server.namenode.NameNode.
at org.apache.hadoop.ipc.Client.call(Client.java:1070)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
at $Proxy5.blockReport(Unknown Source)
at org.apache.hadoop.hdfs.server.datanode.DataNode.offerService(DataNode.java:958)
at org.apache.hadoop.hdfs.server.datanode.DataNode.run(DataNode.java:1458)
at java.lang.Thread.run(Thread.java:636)
2012-08-03 17:47:33,873 INFO org.mortbay.log: SelectChannelConnector@0.0.0.0:50075 を停止しました 2012-08-03 17:47:33,980 INFO org.apache.hadoop.ipc.Server: 50020 でサーバーを停止しています2012-08-03 17:47:33,981 INFO org.apache.hadoop.ipc.Server: 50020 の IPC サーバー ハンドラー 0: 2012-08-03 17:47:33,981 INFO org.apache.hadoop.ipc.Server: 50020 の IPC サーバー ハンドラー 2: 終了中 2012-08-03 17:47:33,981 INFO org.apache.hadoop.ipc.Server: 50020 の IPC サーバー ハンドラー 1: 終了
2012-08-03 17:47:33,981 INFO org.apache.hadoop.ipc.Server: IPC Server handler 0 on 50020: exiting
2012-08-03 17:47:33,981 INFO org.apache.hadoop.ipc.Server: IPC Server handler 2 on 50020: exiting
2012-08-03 17:47:33,981 INFO org.apache.hadoop.ipc.Server: IPC Server handler 1 on 50020: exiting
2012-08-03 17:47:33,981 INFO org.apache.hadoop.ipc.metrics.RpcInstrumentation: shut down
2012-08-03 17:47:33,982 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: DatanodeRegistration(192.168.111.31:50010, storageID=DS-1062340636-127.0.0.1-50010-1339803955209, infoPort=50075, ipcPort=50020):DataXceiveServer:java.nio.channels.AsynchronousCloseException
at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:170)
at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:102)
at org.apache.hadoop.hdfs.server.datanode.DataXceiverServer.run(DataXceiverServer.java:131)
at java.lang.Thread.run(Thread.java:636)
2012-08-03 17:47:33,982 INFO org.apache.hadoop.ipc.Server: Stopping IPC Server listener on 50020
2012-08-03 17:47:33,982 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting DataXceiveServer
2012-08-03 17:47:33,983 INFO org.apache.hadoop.ipc.Server: Stopping IPC Server Responder
2012-08-03 17:47:33,982 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: スレッドグループが終了するのを待っています。アクティブなスレッドは 1 2012-08-03 17:47:33,984 INFO org.apache. hadoop.hdfs.server.datanode.DataBlockScanner: DataBlockScanner スレッドを終了しています。2012-08-03 17:47:33,985 INFO org.apache.hadoop.hdfs.server.datanode.FSDatasetAsyncDiskService: すべての非同期ディスク サービス スレッドをシャットダウンしています... 2012-08-03 17:47:33,985 INFO org.apache. hadoop.hdfs.server.datanode.FSDatasetAsyncDiskService: すべての非同期ディスク サービス スレッドがシャットダウンされました。2012-08-03 17:47:33,985 情報 org.apache.hadoop.hdfs.server.datanode.DataNode: DatanodeRegistration (192.168.111.31:50010、ストレージ ID = DS-1062340636-127.0.0.1-50010-1339803955209、infoPort = 5007 , ipcPort=50020): DataNode を終了しています: FSDataset{dirpath='/app/hadoop/tmp/dfs/data/current'} 2012-08-03 17:47:
com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:540) で org.apache.hadoop.metrics2.util.MBeans.unregister(MBeans.java:71) で org.apache.hadoop.hdfs.server org.apache.hadoop.hdfs.server.datanode.DataNode.shutdown(DataNode.java:799) の .datanode.FSDataset.shutdown(FSDataset.java:2067) org.apache.hadoop.hdfs.server.datanode.DataNode の.run(DataNode.java:1471) at java.lang.Thread.run(Thread.java:636)
2012-08-03 17:47:33,988 WARN org.apache.hadoop.hdfs.server.datanode.FSDatasetAsyncDiskService: AsyncDiskService は既にシャットダウンされています。2012-08-03 17:47:33,989 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Datanode を終了しています