赞
踩
学习Hadoop的过程中,教程标注需要在启动集群之前先格式化hdfs文件系统。
我之前以为格式化就跟linux一样,
后来很粗略的看过老版的源码,发现比我想的要简单很多。唯一可以解释的就是分布式的因素吧。
---------------------------------------------------------------------------------------------------
不管怎么样,我们来看看 新版本 2.5.1中的HDFS的格式化吧。
编译好的目录在:~/hadoop-2.5.1-src/hadoop-dist/target/hadoop-2.5.1
进去是不是看到了很多熟悉的文件?!
为了方便,我们建立一个软链接如下:
ln -s ~/hadoop-2.5.1-src/hadoop-dist/target/hadoop-2.5.1 hadoop-2.5.1-run
----------------------------------------------------------------------------------------------------------------------
root@idc100:~# cd hadoop-2.5.1-run
root@idc100:~/hadoop-2.5.1-run# ls
bin hadoop-2.5.1-run lib LICENSE.txt README.txt share
etc include libexec NOTICE.txt sbin
root@idc100:~/hadoop-2.5.1-run#
------------------------------------------------------------------------------------------------------------------
执行 ./bin/hdfs namenode -format 是没有问题的。
然后我们从./bin/hdfs脚本入手来一点一点研究格式化的过程。
------------------------------------------------------------------------------------------
经过漫长的shell脚本研究(其实也没多久,一个晚上吧)
具体分析的细节我就不说了,说起来都是泪
自己在shell脚本里加echo查看各个变量的值,export的值
反正最终就是执行这么一句:
----------------------
通过echo,我们可以看到最终的结果就是执行:
/usr/lib/jvm/jdk1.7.0_21/bin/java -Dproc_namenode -Xmx1000m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/root/hadoop-2.5.1-src/hadoop-dist/target/hadoop-2.5.1/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/root/hadoop-2.5.1-src/hadoop-dist/target/hadoop-2.5.1 -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,console -Djava.library.path=/root/hadoop-2.5.1-src/hadoop-dist/target/hadoop-2.5.1/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Dhadoop.security.logger=INFO,RFAS -Dhdfs.audit.logger=INFO,NullAppender -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.hdfs.server.namenode.NameNode -format
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。