hdfs行为:datanodes启动,但所有数据都进入一个节点(使用-copyfromlocal)

9rbhqvlz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(328)

我有一个群集配置。
主人(也是奴隶)
两个奴隶
复制因子=1
我复制了一个9gb的文件, movies.txt 进入hdfs:

hadoop dfs -copyFromLocal movies.txt /input/

我注意到一半的积木被保存给了主人,另一半则被分配给了两个奴隶。
然后我想到使用以下格式格式化hadoop\存储:

stop-all.sh
rm -rf {hadoop_store}/*
hdfs namenode -format

ssh slave1
rm -rf {hadoop_store}/*
hdfs namenode -format
exit

ssh slave2
rm -rf {hadoop_store}/*
hdfs namenode -format

start-all.sh

现在,当我试着

hadoop dfs -copyFromLocal movies.txt /input/

令人震惊的是,我把所有的积木都搭上了 master !
供我参考 hdfs_site.xml 是:

<configuration>
 <property>
  <name>dfs.replication</name>
  <value>1</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:///usr/local/hadoop/hadoop_store/hdfs/namenode</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:///usr/local/hadoop/hadoop_store/hdfs/datanode</value> 
 </property>
</configuration>

你能解释我做错了什么吗?

mwyxok5s

mwyxok5s1#

你没做错什么。当文件被写入hdfs时,第一个副本总是位于本地节点上。当复制因子为1时,则所有块仅存储在本地节点上。当本地节点上的空间用完时,我想hdfs会尝试在其他节点上存储块。这似乎是在格式化hdfs之前第一次复制文件时发生的。

相关问题