翔泳社の「Apache Spark入門」を元にSparkの学習を進めています。
3.3節でクラスタ環境を構築する手順があるのですが、HDFSをフォーマットする部分で失敗してしまいます。
構成
Amazon Linux
クライアントノード1台
マスターノード1台
ワーカーノード2台(本では4台ですが費用を抑えるため2台にしています)
失敗するコマンドは次のHDFSフォーマットコマンドです。
sudo -u hdfs hdfs namenode -format
そもそもクラスタ環境の時このコマンドをどこのノードで実行したら分からないのですが(クライアントノード?)
どのノードで実行してもFailed to start namenodeと表示されてしまいます。
実行時のログとエラーの詳細は次のようになっています。
16/07/25 11:27:18 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: user = hdfs STARTUP_MSG: host = ip-10-0-7-109.ap-northeast-1.compute.internal/10.0.7.109 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 2.6.0-cdh5.8.0 STARTUP_MSG: classpath = 略 STARTUP_MSG: build = http://github.com/cloudera/hadoop -r 042da8b868a212c843bcbf3594519dd26e816e79; compiled by 'jenkins' on 2016-07-12T23:03Z STARTUP_MSG: java = 1.7.0_101 ************************************************************/ 16/07/25 11:27:18 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT] 16/07/25 11:27:18 INFO namenode.NameNode: createNameNode [-format] Formatting using clusterid: CID-1fbfe103-d271-4488-b751-3cc75b9eeb5e 16/07/25 11:27:20 INFO namenode.FSNamesystem: No KeyProvider found. 16/07/25 11:27:20 INFO namenode.FSNamesystem: fsLock is fair:true 16/07/25 11:27:20 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000 16/07/25 11:27:20 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true 16/07/25 11:27:20 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec is set to 000:00:00:00.000 16/07/25 11:27:20 INFO blockmanagement.BlockManager: The block deletion will start around 2016 7 25 11:27:20 16/07/25 11:27:20 INFO util.GSet: Computing capacity for map BlocksMap 16/07/25 11:27:20 INFO util.GSet: VM type = 64-bit 16/07/25 11:27:20 INFO util.GSet: 2.0% max memory 966.7 MB = 19.3 MB 16/07/25 11:27:20 INFO util.GSet: capacity = 2^21 = 2097152 entries 16/07/25 11:27:20 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false 16/07/25 11:27:20 INFO blockmanagement.BlockManager: defaultReplication = 3 16/07/25 11:27:20 INFO blockmanagement.BlockManager: maxReplication = 512 16/07/25 11:27:20 INFO blockmanagement.BlockManager: minReplication = 1 16/07/25 11:27:20 INFO blockmanagement.BlockManager: maxReplicationStreams = 2 16/07/25 11:27:20 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000 16/07/25 11:27:20 INFO blockmanagement.BlockManager: encryptDataTransfer = false 16/07/25 11:27:20 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 1000 16/07/25 11:27:20 INFO namenode.FSNamesystem: fsOwner = hdfs (auth:SIMPLE) 16/07/25 11:27:20 INFO namenode.FSNamesystem: supergroup = supergroup 16/07/25 11:27:20 INFO namenode.FSNamesystem: isPermissionEnabled = true 16/07/25 11:27:20 INFO namenode.FSNamesystem: HA Enabled: false 16/07/25 11:27:20 INFO namenode.FSNamesystem: Append Enabled: true 16/07/25 11:27:20 INFO util.GSet: Computing capacity for map INodeMap 16/07/25 11:27:20 INFO util.GSet: VM type = 64-bit 16/07/25 11:27:20 INFO util.GSet: 1.0% max memory 966.7 MB = 9.7 MB 16/07/25 11:27:20 INFO util.GSet: capacity = 2^20 = 1048576 entries 16/07/25 11:27:20 INFO namenode.NameNode: Caching file names occuring more than 10 times 16/07/25 11:27:20 INFO util.GSet: Computing capacity for map cachedBlocks 16/07/25 11:27:20 INFO util.GSet: VM type = 64-bit 16/07/25 11:27:20 INFO util.GSet: 0.25% max memory 966.7 MB = 2.4 MB 16/07/25 11:27:20 INFO util.GSet: capacity = 2^18 = 262144 entries 16/07/25 11:27:20 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033 16/07/25 11:27:20 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0 16/07/25 11:27:20 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 30000 16/07/25 11:27:20 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10 16/07/25 11:27:20 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10 16/07/25 11:27:20 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25 16/07/25 11:27:20 INFO namenode.FSNamesystem: Retry cache on namenode is enabled 16/07/25 11:27:20 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis 16/07/25 11:27:20 INFO util.GSet: Computing capacity for map NameNodeRetryCache 16/07/25 11:27:20 INFO util.GSet: VM type = 64-bit 16/07/25 11:27:20 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB 16/07/25 11:27:20 INFO util.GSet: capacity = 2^15 = 32768 entries 16/07/25 11:27:20 INFO namenode.NNConf: ACLs enabled? false 16/07/25 11:27:20 INFO namenode.NNConf: XAttrs enabled? true 16/07/25 11:27:20 INFO namenode.NNConf: Maximum size of an xattr: 16384 16/07/25 11:27:20 ERROR namenode.NameNode: Failed to start namenode. java.lang.IllegalArgumentException: URI has an authority component at java.io.File.<init>(File.java:423) at org.apache.hadoop.hdfs.server.namenode.NNStorage.getStorageDirectory(NNStorage.java:329) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournals(FSEditLog.java:270) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournalsForWrite(FSEditLog.java:241) at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1040) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1484) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1611) 16/07/25 11:27:20 INFO util.ExitUtil: Exiting with status 1 16/07/25 11:27:20 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at ip-10-0-7-109.ap-northeast-1.compute.internal/10.0.7.109 ************************************************************/
全てのノードで/etc/hadoop/conf以下にcore-site.xml, hdfs-site.xml, yarn-site.xmlを配置しておりそれぞれ次のように設定しています。
core-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://spark-master:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/hadoop/tmp</value> </property> </configuration>
hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>dfs.namenode.name.dir</name> <value>file://hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file://hadoop/hdfs/data</value> </property> </configuration>
yarn-site.xml
<?xml version="1.0"?> <configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>spark-master</value> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>file://hadoop/yarn/node-manager/logs</value> </property> <property> <name>yarn.nodemanager.local-dirs</name> <value>file://hadoop/yarn/node-manager/local</value> </property> </configuration>
hdfs-site.xml, yarn-site.xmlはそれぞれ次のように設定しています。
また、/etc/hostsはそれぞれのノードで次のように設定しています。
クライアント
127.0.0.1 localhost localhost.localdomain 127.0.0.1 spark-client 10.0.7.210 spark-master 10.0.7.143 spark-worker0 10.0.7.53 spark-worker1
マスター
127.0.0.1 localhost localhost.localdomain 127.0.0.1 spark-master 10.0.7.109 spark-client 10.0.7.143 spark-worker0 10.0.7.53 spark-worker1
ワーカー0
127.0.0.1 localhost localhost.localdomain 10.0.7.109 spark-client 10.0.7.210 spark-master 127.0.0.1 spark-worker0
不足している情報等ございましたらご指摘下さい。
アドバイスいただけると助かります。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。