在Hadoop-2.X中,使用hdfs namenode –format对文件系统进行格式化。虽然无论是在生产环境还是测试环境中,已经使用了该命令若干次了,也大体了解该命令就是在本地文件系统中创建几个文件夹,但具体是如何执行的则需要通过阅读源代码来了解了。
要想看到该命令的源代码,需要看看hdfs脚本中是如何执行相应的java类的。在hdfs脚本中,下面的语句说明了实际执行的java类和参数,其中类为org.apache.hadoop.hdfs.server.namenode.NameNode,参数为-format。虽然在命令行中输入的为hdfs namenode –forma,但将namenode赋予了COMMAND,并进行了参数的移位,这样参数就剩下了-format。
COMMAND=$1
Shift
if [ "$COMMAND" = "namenode" ] ; then
CLASS='org.apache.hadoop.hdfs.server.namenode.NameNode'
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
<