我尝试使用bin/start-all.sh启动namenode。但是,此命令不会启动namenode。我知道如果我使用bin/hadoopnamenode格式,namenode会启动,但是在这种情况下,我会丢失所有的数据。有没有办法启动namenode而不格式化它?
blmhpbnm1#
您的问题可能与以下方面有关:默认情况下,hadoop将其namenode数据写入/tmp/hadoop文件夹中,每次重新启动后都会清除该文件夹。将以下属性添加到conf/hdfs-site.xml
<property> <name>dfs.name.dir</name> <value><path to your desired folder></value> </property>
“dfs.name.dir”属性允许您控制hadoop在何处写入namenode元数据。
pvabu6sv2#
bin/start-all.sh 应该启动namenode,以及datanodes、jobtracker和tasktrackers。因此,请检查namenode的日志以查找可能的错误。跳过启动jobtracker和tasktrackers,只启动namenode(和datanodes)的另一种方法是使用以下命令: bin/start-dfs.sh 事实上, bin/start-all.sh 相当于使用以下命令: bin/start-dfs.sh ,它启动namenode和datanodes bin/start-mapred.sh ,它启动jobtracker和tasktrackers。有关详细信息,请访问此页。
bin/start-all.sh
bin/start-dfs.sh
bin/start-mapred.sh
2条答案
按热度按时间blmhpbnm1#
您的问题可能与以下方面有关:
默认情况下,hadoop将其namenode数据写入/tmp/hadoop文件夹中,每次重新启动后都会清除该文件夹。
将以下属性添加到conf/hdfs-site.xml
“dfs.name.dir”属性允许您控制hadoop在何处写入namenode元数据。
pvabu6sv2#
bin/start-all.sh
应该启动namenode,以及datanodes、jobtracker和tasktrackers。因此,请检查namenode的日志以查找可能的错误。跳过启动jobtracker和tasktrackers,只启动namenode(和datanodes)的另一种方法是使用以下命令:
bin/start-dfs.sh
事实上,bin/start-all.sh
相当于使用以下命令:bin/start-dfs.sh
,它启动namenode和datanodesbin/start-mapred.sh
,它启动jobtracker和tasktrackers。有关详细信息,请访问此页。