You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@hadoop.apache.org by Yi Zhao <yi...@alibaba-inc.com> on 2008/07/04 15:47:14 UTC

how to disperse the data uniformly?

I have two datanode as below:
10.62.136.10
10.62.136.11
one namenode below:
10.62.136.10
master:
10.62.136.10
salves:
10.62.136.10
10.62.136.11

when I put a file 600M and a file 20M into dfs, I found that all data is
centralized in one datanode!!

how to disperse all the data to all datanode uniformly?

thanks.

my hadoop-site.xml is:
------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
	<property>
		<name>fs.default.name</name>
		<value>10.62.142.62:7770</value>
		<description>the name of the default file system, either the literal
string "local" or a host:port for DFS.</description>
	</property>
	<property>
		<name>mapred.job.tracker</name>
		<value>10.62.142.62:7771</value>
		<description>the host and port that MapReduce job tracker runs at. if
"local", then jobs are run in-process as a single map and reduce
task.</description>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/home/kongming/devel/hadoop/tmp</value>
		<description>a base for other temporary directories.</description>
	</property>
	<property>
		<name>dfs.name.dir</name>
		<value>/home/kongming/devel/hadoop/fs/name</value>
		<description>determines where on the local filesystem the DFS name
node should store the name table. if this is a comma-delimited list of
directories then the name table is replicated in all of the directories,
for redundancy.</description>
	</property>
	<property>
		<name>dfs.data.dir</name>
		<value>/home/kongming/devel/hadoop/fs/data</value>
		<description>determines where on the local filesystem on DFS data node
should store its blocks. if this is a comma-delimited list of
directories, then data will be stored in all named directories,
typically on different devices. derectories that do not exist are
ignored.</description>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
		<description>default block replication. the actual number of
replications can be specified when the file is created. the default is
used if replication is not specified in create time</description>
	</property>
</configuration>


Re: how to disperse the data uniformly?

Posted by gm...@cs.ucf.edu.
for starters, you should probably change your replication value to 
something other than 1, it kinda defeats the purpose of a parallel 
distributed file system otherwise. What version of hadoop are you running? 
you should just be able to run the command

$bin/hadoop balancer 

to get the nodes balanced. However I don't remember what the tolerance 
value on the balancer is for the generic hadoop-default.xml file is. Since 
you only have 620MB on the cluster, then it might be within hadoop's range 
of okay data distribution. Run the balancer first and see what happens\

 - Grant

On Jul 4 2008, Yi Zhao wrote:

>I have two datanode as below:
>10.62.136.10
>10.62.136.11
>one namenode below:
>10.62.136.10
>master:
>10.62.136.10
>salves:
>10.62.136.10
>10.62.136.11
>
>when I put a file 600M and a file 20M into dfs, I found that all data is
>centralized in one datanode!!
>
>how to disperse all the data to all datanode uniformly?
>
>thanks.
>
>my hadoop-site.xml is:
>------------------------------
><?xml version="1.0"?>
><?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
>
><!-- Put site-specific property overrides in this file. -->
>
><configuration>
>	<property>
>		<name>fs.default.name</name>
>		<value>10.62.142.62:7770</value>
>		<description>the name of the default file system, either the literal
>string "local" or a host:port for DFS.</description>
>	</property>
>	<property>
>		<name>mapred.job.tracker</name>
>		<value>10.62.142.62:7771</value>
>		<description>the host and port that MapReduce job tracker runs at. if
>"local", then jobs are run in-process as a single map and reduce
>task.</description>
>	</property>
>	<property>
>		<name>hadoop.tmp.dir</name>
>		<value>/home/kongming/devel/hadoop/tmp</value>
>		<description>a base for other temporary directories.</description>
>	</property>
>	<property>
>		<name>dfs.name.dir</name>
>		<value>/home/kongming/devel/hadoop/fs/name</value>
>		<description>determines where on the local filesystem the DFS name
>node should store the name table. if this is a comma-delimited list of
>directories then the name table is replicated in all of the directories,
>for redundancy.</description>
>	</property>
>	<property>
>		<name>dfs.data.dir</name>
>		<value>/home/kongming/devel/hadoop/fs/data</value>
>		<description>determines where on the local filesystem on DFS data node
>should store its blocks. if this is a comma-delimited list of
>directories, then data will be stored in all named directories,
>typically on different devices. derectories that do not exist are
>ignored.</description>
>	</property>
>	<property>
>		<name>dfs.replication</name>
>		<value>1</value>
>		<description>default block replication. the actual number of
>replications can be specified when the file is created. the default is
>used if replication is not specified in create time</description>
>	</property>
></configuration>
>

-- 
Grant Mackey
UCF Researcher
Eng. III Rm238