我在Hadoop文档1中看到了hadoop.tmp.dir
的默认值是/tmp/hadoop-${user.name}
,但是如果以这种方式设置它,当机器重新启动时,会丢失数据吗?
我的意思是,也许我不需要在真正的/tmp
中设置这个,但是我需要在/home/myuser/tmp/hadoop-${user.name}
中这样做?
提前谢谢你!
添加信息:
我把它设置在/tmp/hadoop-hduser中,但是由于电源问题,计算机被中断了,今天我收到了一条消息:Call From java.net.UnknownHostException: hduser-machine: hduser-machine to localhost:54310 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
和我运行了这个命令hadoop namenode
,我得到了这个命令:ERROR namenode.NameNode: Failed to start namenode. org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-hduser/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
和我认为是由于/tmp配置.
发布于 2016-12-06 15:14:13
默认情况下,Hadoop被配置为从盒子中运行。为了实现这一点,所有重要的(非临时的)脏点都在${hadoop.tmp.dir}
内部,这反过来又指向/tmp
,而/tmp
又在所有的Linux系统中都存在。
因此,您还需要调整其他重要路径,请参阅hdfs-default.xml
dfs.namenode.name.dir
dfs.datanode.data.dir
dfs.namenode.checkpoint.dir
它们是不同的选项,因为在现实环境中,在不同的物理存储设备之间分发临时和非临时数据可能是可行的。但是,如果设置很小,那么在技术上是的,您可以将${hadoop.tmp.dir}
指向某个持久的(非/tmp)位置,而忽略我上面所写的内容。
https://stackoverflow.com/questions/40997637
复制相似问题