org.fusesource.fabric.hadoop.commands.NameNodeFormat Maven / Gradle / Ivy
The newest version!
/**
* Copyright (C) FuseSource, Inc.
* http://fusesource.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.fusesource.fabric.hadoop.commands;
import java.io.File;
import java.util.Collection;
import java.util.Iterator;
import org.apache.felix.gogo.commands.Command;
import org.apache.felix.gogo.commands.Option;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hdfs.server.namenode.FSNamesystem;
import org.apache.hadoop.hdfs.server.namenode.NameNode;
@Command(name = "namenode-format", scope = "hadoop", description = "Format a HDFS volume")
public class NameNodeFormat extends HadoopCommandSupport {
@Option(name = "--force")
boolean force;
@Override
protected void doExecute(Configuration conf) throws Exception {
Collection dirsToFormat = FSNamesystem.getNamespaceDirs(conf);
for (Iterator it = dirsToFormat.iterator(); it.hasNext(); ) {
File curDir = it.next();
if (!curDir.exists()) {
continue;
}
if (!force) {
System.err.print("Re-format filesystem in " + curDir + " ? (Y or N) ");
System.err.flush();
if (!(System.in.read() == 'Y')) {
System.err.println("Format aborted in " + curDir);
return;
}
while (System.in.read() != '\n') ; // discard the enter-key
}
}
NameNode.format(conf);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy