我试图学习hadoop,通过遵循一个教程并尝试在我的机器上执行伪分布式模式。
我的 core-site.xml
是:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation.
</description>
</property>
</configuration>
我的 hdfs-site.xml
文件是:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>The actual number of replications can be specified when the
file is created.
</description>
</property>
</configuration>
我的 mapred-site.xml
文件是:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
<description>The host and port that the MapReduce job tracker runs
at.
</description>
</property>
</configuration>
当我运行命令时,它成功地运行了,但是它实际上在做什么:
hadoop-1.2.1$ bin/hadoop namenode -format
14/11/26 12:37:16 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = myhost/127.0.0.8
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 1.2.1
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013
STARTUP_MSG: java = 1.6.0_45
************************************************************/
14/11/26 12:37:17 INFO util.GSet: Computing capacity for map BlocksMap
14/11/26 12:37:17 INFO util.GSet: VM type = 64-bit
14/11/26 12:37:17 INFO util.GSet: 2.0% max memory = 932118528
14/11/26 12:37:17 INFO util.GSet: capacity = 2^21 = 2097152 entries
14/11/26 12:37:17 INFO util.GSet: recommended=2097152, actual=2097152
14/11/26 12:37:17 INFO namenode.FSNamesystem: fsOwner=myuser
14/11/26 12:37:17 INFO namenode.FSNamesystem: supergroup=supergroup
14/11/26 12:37:17 INFO namenode.FSNamesystem: isPermissionEnabled=true
14/11/26 12:37:17 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
14/11/26 12:37:17 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
14/11/26 12:37:17 INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0
14/11/26 12:37:17 INFO namenode.NameNode: Caching file names occuring more than 10 times
14/11/26 12:37:17 INFO common.Storage: Image file /tmp/hadoop-myuser/dfs/name/current/fsimage of size 115 bytes saved in 0 seconds.
14/11/26 12:37:18 INFO namenode.FSEditLog: closing edit log: position=4, editlog=/tmp/hadoop-myuser/dfs/name/current/edits
14/11/26 12:37:18 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/tmp/hadoop-myuser/dfs/name/current/edits
14/11/26 12:37:18 INFO common.Storage: Storage directory /tmp/hadoop-myuser/dfs/name has been successfully formatted.
14/11/26 12:37:18 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at chaitanya-OptiPlex-3010/127.0.0.8
************************************************************/
有人能告诉我它在做什么吗。
我看过这些帖子,但没有正确的解释。
hadoop namenode格式到底是什么?
hadoop namenode未格式化
如何在我的机器上实际检查这个,以便在运行命令之前和之后看到差异。我是hadoop的新手,所以这可能是一个微不足道的问题。
5条答案
按热度按时间xuo3flqw1#
实际上格式化namenode不会格式化datanode。
它只会格式化namenode的内容(其中包含datanode的详细信息)。namenode将不再知道数据的位置。另外namenode-format将为namenode分配一个新的名称空间id
您必须更改datanode中的namespaceid才能使datanode正常工作。这将位于dfs/data/current/version
在格式化namenode时,现在也有一个jira为同样的用户打开,它建议格式化datanode。hdfs-107型
wfypjpf42#
hadoop namenode -format
此命令删除hdfs中的所有文件。tmp目录包含两个文件夹datanode,本地文件系统中的namenode。如果格式化namenode,这两个文件夹将变为空。
注意:如果您想格式化您的namenode,首先停止所有hadoop服务,然后删除本地文件系统中的tmp(包含namenode和datanode)文件夹,然后启动hadoop服务,它肯定会生效。
hadoop namenode的原因-格式:
hadoop namenode是hdfs文件系统的集中位置,它保存文件系统中所有文件的目录树,并跟踪整个集群中文件数据的存放位置。简而言之,它保留与datanodes相关的元数据。格式化namenode时,它格式化与数据节点相关的元数据。这样做,datanode上的所有信息都会丢失,并且可以重新用于新数据。
默认情况下,namenode位置将位于“/tmp/hadoop myuser/dfs/name”
格式化namenode时,此文件位置已清除。
要更改namenode位置,请在hdfs-site.xml中添加以下属性
我希望这能帮助你……—)
pobjuy323#
hadoop namenode-格式
hadoop namenode目录包含fsimage和edit文件,其中包含关于hadoop文件系统的基本信息,比如哪里有可用的数据,哪些用户创建了这样的文件
如果格式化namenode,则上述信息将从namenode目录中删除,该目录在hdfs-site.xml中指定为
dfs.namenode.name.dir
但是您仍然拥有hadoop上的数据,而不是namenode元数据chhkpiq44#
namenode包含关于hadoop文件系统的元数据。
这个命令(hadoop-1.2.1$bin/hadoop namenode-format)将格式化整个hadoop分布式文件系统(hdfs)。因此,如果在现有文件系统上运行此命令,您将丢失所有数据。
lmyy7pcs5#
步骤使用启动所有服务
"start-all.sh"
检查服务是否正在运行"JPS"
注意:如果您使用hadoop2.3.0,那么需要运行以下服务使用hdfs-put将一些文件从本地移到hdfs/
现在检查位置“/tmp/hadoop myuser/dfs/name”,您可能会发现这个文件被拆分成一些块,每个块有64MB。
然后开始格式化使用
**hadoop namenode -format**
现在该文件在该位置不可用更多信息请点击这里