Re: SecondaryNameNode on separate machine

2008-11-12 Thread yossale

>Now SecondaryNameNode connects to the NameNode (after I configured
>dfs.http.address to the NN's http server -> NN hostname on port 50070)
>and creates(transfers) edits and fsimage from NameNode.

It didn't work for me - I get an error: 
java.io.FileNotFoundException:
http://192.168.30.5:50070/getimage?putimage=1&port=50090&machine=127.0.0.1&token=-16:1173009257:0:1226503705000:1226503705207
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1168)
at
org.apache.hadoop.dfs.TransferFsImage.getFileClient(TransferFsImage.java:150)
at
org.apache.hadoop.dfs.SecondaryNameNode.putFSImage(SecondaryNameNode.java:271)
at
org.apache.hadoop.dfs.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:311)
at
org.apache.hadoop.dfs.SecondaryNameNode.run(SecondaryNameNode.java:216)
at java.lang.Thread.run(Thread.java:595)

And when I run the http request directly (in the browser) , I receive this : 
GetImage failed. java.io.IOException: Namenode is not expecting an new image
UPLOAD_START
at
org.apache.hadoop.dfs.FSImage.validateCheckpointUpload(FSImage.java:1193)
at org.apache.hadoop.dfs.GetImageServlet.doGet(GetImageServlet.java:57)
.. 

If it is a mundane thing (i.e "not need to check point now" ) why does it
throw an Error? What is the "UPLOAD_START" at the end of the message? (if it
failed , how come it starts?) - but more importantly - how do I get rid of
it? 

Thanks!


-- 
View this message in context: 
http://www.nabble.com/SecondaryNameNode-on-separate-machine-tp20207482p20463349.html
Sent from the Hadoop core-user mailing list archive at Nabble.com.



Re: SecondaryNameNode on separate machine

2008-11-04 Thread Tomislav Poljak
Konstantin,

it works, thanks a lot!

Tomislav


On Mon, 2008-11-03 at 11:13 -0800, Konstantin Shvachko wrote:
> You can either do what you just described with dfs.name.dir = dirX
> or you can start name-node with -importCheckpoint option.
> This is an automation for copying image files from secondary to primary.
> 
> See here:
> http://hadoop.apache.org/core/docs/current/commands_manual.html#namenode
> http://hadoop.apache.org/core/docs/current/hdfs_user_guide.html#Secondary+NameNode
> http://issues.apache.org/jira/browse/HADOOP-2585#action_12584755
> 
> --Konstantin
> 
> Tomislav Poljak wrote:
> > Hi,
> > Thank you all for your time and your answers!
> > 
> > Now SecondaryNameNode connects to the NameNode (after I configured
> > dfs.http.address to the NN's http server -> NN hostname on port 50070)
> > and creates(transfers) edits and fsimage from NameNode.
> > 
> > Can you explain me a little bit more how NameNode failover should work
> > now? 
> > 
> > For example, SecondaryNameNode now stores fsimage and edits to (SNN's)
> > dirX and let's say NameNode goes down (disk becomes unreadable). Now I
> > create/dedicate a new machine for NameNode (also change DNS to point to
> > this new NameNode machine as nameNode host) and take the data dirX from
> > SNN and copy it to new NameNode. How do I configure new NameNode to use
> > data from dirX (do I configure dfs.name.dir to point to dirX and start
> > new NameNode)?
> > 
> > Thanks,
> > Tomislav
> > 
> > 
> > 
> > On Fri, 2008-10-31 at 11:38 -0700, Konstantin Shvachko wrote:
> >> True, dfs.http.address is the NN Web UI address.
> >> This where the NN http server runs. Besides the Web UI there also
> >> a servlet running on that server which is used to transfer image
> >> and edits from NN to the secondary using http get.
> >> So SNN uses both addresses fs.default.name and dfs.http.address.
> >>
> >> When SNN finishes the checkpoint the primary needs to transfer the
> >> resulting image back. This is done via the http server running on SNN.
> >>
> >> Answering Tomislav's question:
> >> The difference between fs.default.name and dfs.http.address is that
> >> fs.default.name is the name-node's PRC address, where clients and
> >> data-nodes connect to, while dfs.http.address is the NN's http server
> >> address where our browsers connect to, but it is also used for
> >> transferring image and edits files.
> >>
> >> --Konstantin
> >>
> >> Otis Gospodnetic wrote:
> >>> Konstantin & Co, please correct me if I'm wrong, but looking at 
> >>> hadoop-default.xml makes me think that dfs.http.address is only the URL 
> >>> for the NN *Web UI*.  In other words, this is where we people go look at 
> >>> the NN.
> >>>
> >>> The secondary NN must then be using only the Primary NN URL specified in 
> >>> fs.default.name.  This URL looks like hdfs://name-node-hostname-here/.  
> >>> Something in Hadoop then knows the exact port for the Primary NN based on 
> >>> the URI schema (e.g. "hdfs://") in this URL.
> >>>
> >>> Is this correct?
> >>>
> >>>
> >>> Thanks,
> >>> Otis
> >>> --
> >>> Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch
> >>>
> >>>
> >>>
> >>> - Original Message 
> >>>> From: Tomislav Poljak <[EMAIL PROTECTED]>
> >>>> To: core-user@hadoop.apache.org
> >>>> Sent: Thursday, October 30, 2008 1:52:18 PM
> >>>> Subject: Re: SecondaryNameNode on separate machine
> >>>>
> >>>> Hi,
> >>>> can you, please, explain the difference between fs.default.name and
> >>>> dfs.http.address (like how and when is SecondaryNameNode using
> >>>> fs.default.name and how/when dfs.http.address). I have set them both to
> >>>> same (namenode's) hostname:port. Is this correct (or dfs.http.address
> >>>> needs some other port)? 
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Tomislav
> >>>>
> >>>> On Wed, 2008-10-29 at 16:10 -0700, Konstantin Shvachko wrote:
> >>>>> SecondaryNameNode uses http protocol to transfer the image and the edits
> >>>>> from the primary name-node and vise versa.
> >>>>> So the secondary does n

Re: SecondaryNameNode on separate machine

2008-11-03 Thread Konstantin Shvachko

You can either do what you just described with dfs.name.dir = dirX
or you can start name-node with -importCheckpoint option.
This is an automation for copying image files from secondary to primary.

See here:
http://hadoop.apache.org/core/docs/current/commands_manual.html#namenode
http://hadoop.apache.org/core/docs/current/hdfs_user_guide.html#Secondary+NameNode
http://issues.apache.org/jira/browse/HADOOP-2585#action_12584755

--Konstantin

Tomislav Poljak wrote:

Hi,
Thank you all for your time and your answers!

Now SecondaryNameNode connects to the NameNode (after I configured
dfs.http.address to the NN's http server -> NN hostname on port 50070)
and creates(transfers) edits and fsimage from NameNode.

Can you explain me a little bit more how NameNode failover should work
now? 


For example, SecondaryNameNode now stores fsimage and edits to (SNN's)
dirX and let's say NameNode goes down (disk becomes unreadable). Now I
create/dedicate a new machine for NameNode (also change DNS to point to
this new NameNode machine as nameNode host) and take the data dirX from
SNN and copy it to new NameNode. How do I configure new NameNode to use
data from dirX (do I configure dfs.name.dir to point to dirX and start
new NameNode)?

Thanks,
Tomislav



On Fri, 2008-10-31 at 11:38 -0700, Konstantin Shvachko wrote:

True, dfs.http.address is the NN Web UI address.
This where the NN http server runs. Besides the Web UI there also
a servlet running on that server which is used to transfer image
and edits from NN to the secondary using http get.
So SNN uses both addresses fs.default.name and dfs.http.address.

When SNN finishes the checkpoint the primary needs to transfer the
resulting image back. This is done via the http server running on SNN.

Answering Tomislav's question:
The difference between fs.default.name and dfs.http.address is that
fs.default.name is the name-node's PRC address, where clients and
data-nodes connect to, while dfs.http.address is the NN's http server
address where our browsers connect to, but it is also used for
transferring image and edits files.

--Konstantin

Otis Gospodnetic wrote:

Konstantin & Co, please correct me if I'm wrong, but looking at 
hadoop-default.xml makes me think that dfs.http.address is only the URL for the NN 
*Web UI*.  In other words, this is where we people go look at the NN.

The secondary NN must then be using only the Primary NN URL specified in fs.default.name. 
 This URL looks like hdfs://name-node-hostname-here/.  Something in Hadoop then knows the 
exact port for the Primary NN based on the URI schema (e.g. "hdfs://") in this 
URL.

Is this correct?


Thanks,
Otis
--
Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch



- Original Message 

From: Tomislav Poljak <[EMAIL PROTECTED]>
To: core-user@hadoop.apache.org
Sent: Thursday, October 30, 2008 1:52:18 PM
Subject: Re: SecondaryNameNode on separate machine

Hi,
can you, please, explain the difference between fs.default.name and
dfs.http.address (like how and when is SecondaryNameNode using
fs.default.name and how/when dfs.http.address). I have set them both to
same (namenode's) hostname:port. Is this correct (or dfs.http.address
needs some other port)? 


Thanks,

Tomislav

On Wed, 2008-10-29 at 16:10 -0700, Konstantin Shvachko wrote:

SecondaryNameNode uses http protocol to transfer the image and the edits
from the primary name-node and vise versa.
So the secondary does not access local files on the primary directly.
The primary NN should know the secondary's http address.
And the secondary NN need to know both fs.default.name and dfs.http.address of 

the primary.

In general we usually create one configuration file hadoop-site.xml
and copy it to all other machines. So you don't need to set up different
values for all servers.

Regards,
--Konstantin

Tomislav Poljak wrote:

Hi,
I'm not clear on how does SecondaryNameNode communicates with NameNode
(if deployed on separate machine). Does SecondaryNameNode uses direct
connection (over some port and protocol) or is it enough for
SecondaryNameNode to have access to data which NameNode writes locally
on disk?

Tomislav

On Wed, 2008-10-29 at 09:08 -0400, Jean-Daniel Cryans wrote:

I think a lot of the confusion comes from this thread :
http://www.nabble.com/NameNode-failover-procedure-td11711842.html

Particularly because the wiki was updated with wrong information, not
maliciously I'm sure. This information is now gone for good.

Otis, your solution is pretty much like the one given by Dhruba Borthakur
and augmented by Konstantin Shvachko later in the thread but I never did it
myself.

One thing should be clear though, the NN is and will remain a SPOF (just
like HBase's Master) as long as a distributed manager service (like
Zookeeper) is not plugged into Hadoop to help with failover.

J-D

On Wed, Oct 29, 2008 at 2:12 AM, Otis Gospodnetic <
[EMAIL PROTE

Re: SecondaryNameNode on separate machine

2008-11-03 Thread Tomislav Poljak
Hi,
Thank you all for your time and your answers!

Now SecondaryNameNode connects to the NameNode (after I configured
dfs.http.address to the NN's http server -> NN hostname on port 50070)
and creates(transfers) edits and fsimage from NameNode.

Can you explain me a little bit more how NameNode failover should work
now? 

For example, SecondaryNameNode now stores fsimage and edits to (SNN's)
dirX and let's say NameNode goes down (disk becomes unreadable). Now I
create/dedicate a new machine for NameNode (also change DNS to point to
this new NameNode machine as nameNode host) and take the data dirX from
SNN and copy it to new NameNode. How do I configure new NameNode to use
data from dirX (do I configure dfs.name.dir to point to dirX and start
new NameNode)?

Thanks,
Tomislav



On Fri, 2008-10-31 at 11:38 -0700, Konstantin Shvachko wrote:
> True, dfs.http.address is the NN Web UI address.
> This where the NN http server runs. Besides the Web UI there also
> a servlet running on that server which is used to transfer image
> and edits from NN to the secondary using http get.
> So SNN uses both addresses fs.default.name and dfs.http.address.
> 
> When SNN finishes the checkpoint the primary needs to transfer the
> resulting image back. This is done via the http server running on SNN.
> 
> Answering Tomislav's question:
> The difference between fs.default.name and dfs.http.address is that
> fs.default.name is the name-node's PRC address, where clients and
> data-nodes connect to, while dfs.http.address is the NN's http server
> address where our browsers connect to, but it is also used for
> transferring image and edits files.
> 
> --Konstantin
> 
> Otis Gospodnetic wrote:
> > Konstantin & Co, please correct me if I'm wrong, but looking at 
> > hadoop-default.xml makes me think that dfs.http.address is only the URL for 
> > the NN *Web UI*.  In other words, this is where we people go look at the NN.
> > 
> > The secondary NN must then be using only the Primary NN URL specified in 
> > fs.default.name.  This URL looks like hdfs://name-node-hostname-here/.  
> > Something in Hadoop then knows the exact port for the Primary NN based on 
> > the URI schema (e.g. "hdfs://") in this URL.
> > 
> > Is this correct?
> > 
> > 
> > Thanks,
> > Otis
> > --
> > Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch
> > 
> > 
> > 
> > - Original Message 
> >> From: Tomislav Poljak <[EMAIL PROTECTED]>
> >> To: core-user@hadoop.apache.org
> >> Sent: Thursday, October 30, 2008 1:52:18 PM
> >> Subject: Re: SecondaryNameNode on separate machine
> >>
> >> Hi,
> >> can you, please, explain the difference between fs.default.name and
> >> dfs.http.address (like how and when is SecondaryNameNode using
> >> fs.default.name and how/when dfs.http.address). I have set them both to
> >> same (namenode's) hostname:port. Is this correct (or dfs.http.address
> >> needs some other port)? 
> >>
> >> Thanks,
> >>
> >> Tomislav
> >>
> >> On Wed, 2008-10-29 at 16:10 -0700, Konstantin Shvachko wrote:
> >>> SecondaryNameNode uses http protocol to transfer the image and the edits
> >>> from the primary name-node and vise versa.
> >>> So the secondary does not access local files on the primary directly.
> >>> The primary NN should know the secondary's http address.
> >>> And the secondary NN need to know both fs.default.name and 
> >>> dfs.http.address of 
> >> the primary.
> >>> In general we usually create one configuration file hadoop-site.xml
> >>> and copy it to all other machines. So you don't need to set up different
> >>> values for all servers.
> >>>
> >>> Regards,
> >>> --Konstantin
> >>>
> >>> Tomislav Poljak wrote:
> >>>> Hi,
> >>>> I'm not clear on how does SecondaryNameNode communicates with NameNode
> >>>> (if deployed on separate machine). Does SecondaryNameNode uses direct
> >>>> connection (over some port and protocol) or is it enough for
> >>>> SecondaryNameNode to have access to data which NameNode writes locally
> >>>> on disk?
> >>>>
> >>>> Tomislav
> >>>>
> >>>> On Wed, 2008-10-29 at 09:08 -0400, Jean-Daniel Cryans wrote:
> >>>>> I think a lot of the confusion comes from this thread :
> >>>>> http://www.nabble.com/NameNode-failover-procedure-td117118

Re: SecondaryNameNode on separate machine

2008-10-31 Thread Konstantin Shvachko

True, dfs.http.address is the NN Web UI address.
This where the NN http server runs. Besides the Web UI there also
a servlet running on that server which is used to transfer image
and edits from NN to the secondary using http get.
So SNN uses both addresses fs.default.name and dfs.http.address.

When SNN finishes the checkpoint the primary needs to transfer the
resulting image back. This is done via the http server running on SNN.

Answering Tomislav's question:
The difference between fs.default.name and dfs.http.address is that
fs.default.name is the name-node's PRC address, where clients and
data-nodes connect to, while dfs.http.address is the NN's http server
address where our browsers connect to, but it is also used for
transferring image and edits files.

--Konstantin

Otis Gospodnetic wrote:

Konstantin & Co, please correct me if I'm wrong, but looking at 
hadoop-default.xml makes me think that dfs.http.address is only the URL for the NN 
*Web UI*.  In other words, this is where we people go look at the NN.

The secondary NN must then be using only the Primary NN URL specified in fs.default.name. 
 This URL looks like hdfs://name-node-hostname-here/.  Something in Hadoop then knows the 
exact port for the Primary NN based on the URI schema (e.g. "hdfs://") in this 
URL.

Is this correct?


Thanks,
Otis
--
Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch



- Original Message 

From: Tomislav Poljak <[EMAIL PROTECTED]>
To: core-user@hadoop.apache.org
Sent: Thursday, October 30, 2008 1:52:18 PM
Subject: Re: SecondaryNameNode on separate machine

Hi,
can you, please, explain the difference between fs.default.name and
dfs.http.address (like how and when is SecondaryNameNode using
fs.default.name and how/when dfs.http.address). I have set them both to
same (namenode's) hostname:port. Is this correct (or dfs.http.address
needs some other port)? 


Thanks,

Tomislav

On Wed, 2008-10-29 at 16:10 -0700, Konstantin Shvachko wrote:

SecondaryNameNode uses http protocol to transfer the image and the edits
from the primary name-node and vise versa.
So the secondary does not access local files on the primary directly.
The primary NN should know the secondary's http address.
And the secondary NN need to know both fs.default.name and dfs.http.address of 

the primary.

In general we usually create one configuration file hadoop-site.xml
and copy it to all other machines. So you don't need to set up different
values for all servers.

Regards,
--Konstantin

Tomislav Poljak wrote:

Hi,
I'm not clear on how does SecondaryNameNode communicates with NameNode
(if deployed on separate machine). Does SecondaryNameNode uses direct
connection (over some port and protocol) or is it enough for
SecondaryNameNode to have access to data which NameNode writes locally
on disk?

Tomislav

On Wed, 2008-10-29 at 09:08 -0400, Jean-Daniel Cryans wrote:

I think a lot of the confusion comes from this thread :
http://www.nabble.com/NameNode-failover-procedure-td11711842.html

Particularly because the wiki was updated with wrong information, not
maliciously I'm sure. This information is now gone for good.

Otis, your solution is pretty much like the one given by Dhruba Borthakur
and augmented by Konstantin Shvachko later in the thread but I never did it
myself.

One thing should be clear though, the NN is and will remain a SPOF (just
like HBase's Master) as long as a distributed manager service (like
Zookeeper) is not plugged into Hadoop to help with failover.

J-D

On Wed, Oct 29, 2008 at 2:12 AM, Otis Gospodnetic <
[EMAIL PROTECTED]> wrote:


Hi,
So what is the "recipe" for avoiding NN SPOF using only what comes with
Hadoop?

From what I can tell, I think one has to do the following two things:

1) configure primary NN to save namespace and xa logs to multiple dirs, 

one

of which is actually on a remotely mounted disk, so that the data actually
lives on a separate disk on a separate box.  This saves namespace and xa
logs on multiple boxes in case of primary NN hardware failure.

2) configure secondary NN to periodically merge fsimage+edits and create
the fsimage checkpoint.  This really is a second NN process running on
another box.  It sounds like this secondary NN has to somehow have access 

to

fsimage & edits files from the primary NN server.

http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodedoes 
not describe the best practise around that - the recommended way to

give secondary NN access to primary NN's fsimage and edits files.  Should
one mount a disk from the primary NN box to the secondary NN box to get
access to those files?  Or is there a simpler way?
In any case, this checkpoint is just a merge of fsimage+edits files and
again is there in case the box with the primary NN dies.  That's what's
described on

http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#

Re: SecondaryNameNode on separate machine

2008-10-31 Thread Doug Cutting

Otis Gospodnetic wrote:

Konstantin & Co, please correct me if I'm wrong, but looking at 
hadoop-default.xml makes me think that dfs.http.address is only the URL for the NN 
*Web UI*.  In other words, this is where we people go look at the NN.

The secondary NN must then be using only the Primary NN URL specified in fs.default.name. 
 This URL looks like hdfs://name-node-hostname-here/.  Something in Hadoop then knows the 
exact port for the Primary NN based on the URI schema (e.g. "hdfs://") in this 
URL.

Is this correct?


Yes.  The default port for an HDFS URI is 8020 (NameNode.DEFAULT_PORT). 
 The value of fs.default.name is used by HDFS.  When starting the 
namenode or datanodes, this must be an HDFS URI.  If this names an 
explicit port, then that will be used, otherwise the default, 8020 will 
be used.


The default port for HTTP URIs is 80, but the namenode typically runs 
its web UI on 50070 (the default for dfs.http.address).


Doug


Re: SecondaryNameNode on separate machine

2008-10-30 Thread Otis Gospodnetic
Konstantin & Co, please correct me if I'm wrong, but looking at 
hadoop-default.xml makes me think that dfs.http.address is only the URL for the 
NN *Web UI*.  In other words, this is where we people go look at the NN.

The secondary NN must then be using only the Primary NN URL specified in 
fs.default.name.  This URL looks like hdfs://name-node-hostname-here/.  
Something in Hadoop then knows the exact port for the Primary NN based on the 
URI schema (e.g. "hdfs://") in this URL.

Is this correct?


Thanks,
Otis
--
Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch



- Original Message 
> From: Tomislav Poljak <[EMAIL PROTECTED]>
> To: core-user@hadoop.apache.org
> Sent: Thursday, October 30, 2008 1:52:18 PM
> Subject: Re: SecondaryNameNode on separate machine
> 
> Hi,
> can you, please, explain the difference between fs.default.name and
> dfs.http.address (like how and when is SecondaryNameNode using
> fs.default.name and how/when dfs.http.address). I have set them both to
> same (namenode's) hostname:port. Is this correct (or dfs.http.address
> needs some other port)? 
> 
> Thanks,
> 
> Tomislav
> 
> On Wed, 2008-10-29 at 16:10 -0700, Konstantin Shvachko wrote:
> > SecondaryNameNode uses http protocol to transfer the image and the edits
> > from the primary name-node and vise versa.
> > So the secondary does not access local files on the primary directly.
> > The primary NN should know the secondary's http address.
> > And the secondary NN need to know both fs.default.name and dfs.http.address 
> > of 
> the primary.
> > 
> > In general we usually create one configuration file hadoop-site.xml
> > and copy it to all other machines. So you don't need to set up different
> > values for all servers.
> > 
> > Regards,
> > --Konstantin
> > 
> > Tomislav Poljak wrote:
> > > Hi,
> > > I'm not clear on how does SecondaryNameNode communicates with NameNode
> > > (if deployed on separate machine). Does SecondaryNameNode uses direct
> > > connection (over some port and protocol) or is it enough for
> > > SecondaryNameNode to have access to data which NameNode writes locally
> > > on disk?
> > > 
> > > Tomislav
> > > 
> > > On Wed, 2008-10-29 at 09:08 -0400, Jean-Daniel Cryans wrote:
> > >> I think a lot of the confusion comes from this thread :
> > >> http://www.nabble.com/NameNode-failover-procedure-td11711842.html
> > >>
> > >> Particularly because the wiki was updated with wrong information, not
> > >> maliciously I'm sure. This information is now gone for good.
> > >>
> > >> Otis, your solution is pretty much like the one given by Dhruba Borthakur
> > >> and augmented by Konstantin Shvachko later in the thread but I never did 
> > >> it
> > >> myself.
> > >>
> > >> One thing should be clear though, the NN is and will remain a SPOF (just
> > >> like HBase's Master) as long as a distributed manager service (like
> > >> Zookeeper) is not plugged into Hadoop to help with failover.
> > >>
> > >> J-D
> > >>
> > >> On Wed, Oct 29, 2008 at 2:12 AM, Otis Gospodnetic <
> > >> [EMAIL PROTECTED]> wrote:
> > >>
> > >>> Hi,
> > >>> So what is the "recipe" for avoiding NN SPOF using only what comes with
> > >>> Hadoop?
> > >>>
> > >>> From what I can tell, I think one has to do the following two things:
> > >>>
> > >>> 1) configure primary NN to save namespace and xa logs to multiple dirs, 
> one
> > >>> of which is actually on a remotely mounted disk, so that the data 
> > >>> actually
> > >>> lives on a separate disk on a separate box.  This saves namespace and xa
> > >>> logs on multiple boxes in case of primary NN hardware failure.
> > >>>
> > >>> 2) configure secondary NN to periodically merge fsimage+edits and create
> > >>> the fsimage checkpoint.  This really is a second NN process running on
> > >>> another box.  It sounds like this secondary NN has to somehow have 
> > >>> access 
> to
> > >>> fsimage & edits files from the primary NN server.
> > >>> 
> http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodedoes
>  
> not describe the best practise around that - the recommended way to
> > >>> give secondary NN access to primary NN

Re: SecondaryNameNode on separate machine

2008-10-30 Thread Tomislav Poljak
Hi,
can you, please, explain the difference between fs.default.name and
dfs.http.address (like how and when is SecondaryNameNode using
fs.default.name and how/when dfs.http.address). I have set them both to
same (namenode's) hostname:port. Is this correct (or dfs.http.address
needs some other port)? 

Thanks,

Tomislav
 
On Wed, 2008-10-29 at 16:10 -0700, Konstantin Shvachko wrote:
> SecondaryNameNode uses http protocol to transfer the image and the edits
> from the primary name-node and vise versa.
> So the secondary does not access local files on the primary directly.
> The primary NN should know the secondary's http address.
> And the secondary NN need to know both fs.default.name and dfs.http.address 
> of the primary.
> 
> In general we usually create one configuration file hadoop-site.xml
> and copy it to all other machines. So you don't need to set up different
> values for all servers.
> 
> Regards,
> --Konstantin
> 
> Tomislav Poljak wrote:
> > Hi,
> > I'm not clear on how does SecondaryNameNode communicates with NameNode
> > (if deployed on separate machine). Does SecondaryNameNode uses direct
> > connection (over some port and protocol) or is it enough for
> > SecondaryNameNode to have access to data which NameNode writes locally
> > on disk?
> > 
> > Tomislav
> > 
> > On Wed, 2008-10-29 at 09:08 -0400, Jean-Daniel Cryans wrote:
> >> I think a lot of the confusion comes from this thread :
> >> http://www.nabble.com/NameNode-failover-procedure-td11711842.html
> >>
> >> Particularly because the wiki was updated with wrong information, not
> >> maliciously I'm sure. This information is now gone for good.
> >>
> >> Otis, your solution is pretty much like the one given by Dhruba Borthakur
> >> and augmented by Konstantin Shvachko later in the thread but I never did it
> >> myself.
> >>
> >> One thing should be clear though, the NN is and will remain a SPOF (just
> >> like HBase's Master) as long as a distributed manager service (like
> >> Zookeeper) is not plugged into Hadoop to help with failover.
> >>
> >> J-D
> >>
> >> On Wed, Oct 29, 2008 at 2:12 AM, Otis Gospodnetic <
> >> [EMAIL PROTECTED]> wrote:
> >>
> >>> Hi,
> >>> So what is the "recipe" for avoiding NN SPOF using only what comes with
> >>> Hadoop?
> >>>
> >>> From what I can tell, I think one has to do the following two things:
> >>>
> >>> 1) configure primary NN to save namespace and xa logs to multiple dirs, 
> >>> one
> >>> of which is actually on a remotely mounted disk, so that the data actually
> >>> lives on a separate disk on a separate box.  This saves namespace and xa
> >>> logs on multiple boxes in case of primary NN hardware failure.
> >>>
> >>> 2) configure secondary NN to periodically merge fsimage+edits and create
> >>> the fsimage checkpoint.  This really is a second NN process running on
> >>> another box.  It sounds like this secondary NN has to somehow have access 
> >>> to
> >>> fsimage & edits files from the primary NN server.
> >>> http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodedoes
> >>>  not describe the best practise around that - the recommended way to
> >>> give secondary NN access to primary NN's fsimage and edits files.  Should
> >>> one mount a disk from the primary NN box to the secondary NN box to get
> >>> access to those files?  Or is there a simpler way?
> >>> In any case, this checkpoint is just a merge of fsimage+edits files and
> >>> again is there in case the box with the primary NN dies.  That's what's
> >>> described on
> >>> http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodemore
> >>>  or less.
> >>>
> >>> Is this sufficient, or are there other things one has to do to eliminate 
> >>> NN
> >>> SPOF?
> >>>
> >>>
> >>> Thanks,
> >>> Otis
> >>> --
> >>> Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch
> >>>
> >>>
> >>>
> >>> - Original Message 
> >>>> From: Jean-Daniel Cryans <[EMAIL PROTECTED]>
> >>>> To: core-user@hadoop.apache.org
> >>>> Sent: Tuesday, October 28, 2008 8:14:44 PM
> >>>> Subject: Re: SecondaryNameNode on separate m

Re: SecondaryNameNode on separate machine

2008-10-29 Thread Konstantin Shvachko

SecondaryNameNode uses http protocol to transfer the image and the edits
from the primary name-node and vise versa.
So the secondary does not access local files on the primary directly.
The primary NN should know the secondary's http address.
And the secondary NN need to know both fs.default.name and dfs.http.address of 
the primary.

In general we usually create one configuration file hadoop-site.xml
and copy it to all other machines. So you don't need to set up different
values for all servers.

Regards,
--Konstantin

Tomislav Poljak wrote:

Hi,
I'm not clear on how does SecondaryNameNode communicates with NameNode
(if deployed on separate machine). Does SecondaryNameNode uses direct
connection (over some port and protocol) or is it enough for
SecondaryNameNode to have access to data which NameNode writes locally
on disk?

Tomislav

On Wed, 2008-10-29 at 09:08 -0400, Jean-Daniel Cryans wrote:

I think a lot of the confusion comes from this thread :
http://www.nabble.com/NameNode-failover-procedure-td11711842.html

Particularly because the wiki was updated with wrong information, not
maliciously I'm sure. This information is now gone for good.

Otis, your solution is pretty much like the one given by Dhruba Borthakur
and augmented by Konstantin Shvachko later in the thread but I never did it
myself.

One thing should be clear though, the NN is and will remain a SPOF (just
like HBase's Master) as long as a distributed manager service (like
Zookeeper) is not plugged into Hadoop to help with failover.

J-D

On Wed, Oct 29, 2008 at 2:12 AM, Otis Gospodnetic <
[EMAIL PROTECTED]> wrote:


Hi,
So what is the "recipe" for avoiding NN SPOF using only what comes with
Hadoop?

From what I can tell, I think one has to do the following two things:

1) configure primary NN to save namespace and xa logs to multiple dirs, one
of which is actually on a remotely mounted disk, so that the data actually
lives on a separate disk on a separate box.  This saves namespace and xa
logs on multiple boxes in case of primary NN hardware failure.

2) configure secondary NN to periodically merge fsimage+edits and create
the fsimage checkpoint.  This really is a second NN process running on
another box.  It sounds like this secondary NN has to somehow have access to
fsimage & edits files from the primary NN server.
http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodedoes
 not describe the best practise around that - the recommended way to
give secondary NN access to primary NN's fsimage and edits files.  Should
one mount a disk from the primary NN box to the secondary NN box to get
access to those files?  Or is there a simpler way?
In any case, this checkpoint is just a merge of fsimage+edits files and
again is there in case the box with the primary NN dies.  That's what's
described on
http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodemore
 or less.

Is this sufficient, or are there other things one has to do to eliminate NN
SPOF?


Thanks,
Otis
--
Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch



- Original Message 

From: Jean-Daniel Cryans <[EMAIL PROTECTED]>
To: core-user@hadoop.apache.org
Sent: Tuesday, October 28, 2008 8:14:44 PM
Subject: Re: SecondaryNameNode on separate machine

Tomislav.

Contrary to popular belief the secondary namenode does not provide

failover,

it's only used to do what is described here :


http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNode

So the term "secondary" does not mean "a second one" but is more like "a
second part of".

J-D

On Tue, Oct 28, 2008 at 9:44 AM, Tomislav Poljak wrote:


Hi,
I'm trying to implement NameNode failover (or at least NameNode local
data backup), but it is hard since there is no official documentation.
Pages on this subject are created, but still empty:

http://wiki.apache.org/hadoop/NameNodeFailover
http://wiki.apache.org/hadoop/SecondaryNameNode

I have been browsing the web and hadoop mailing list to see how this
should be implemented, but I got even more confused. People are asking
do we even need SecondaryNameNode etc. (since NameNode can write local
data to multiple locations, so one of those locations can be a mounted
disk from other machine). I think I understand the motivation for
SecondaryNameNode (to create a snapshoot of NameNode data every n
seconds/hours), but setting (deploying and running) SecondaryNameNode

on

different machine than NameNode is not as trivial as I expected. First

I

found that if I need to run SecondaryNameNode on other machine than
NameNode I should change masters file on NameNode (change localhost to
SecondaryNameNode host) and set some properties in hadoop-site.xml on
SecondaryNameNode (fs.default.name, fs.checkpoint.dir,
fs.checkpoint.period etc.)

This was enough to start SecondaryNameNode when starting NameNode 

Re: SecondaryNameNode on separate machine

2008-10-29 Thread Tomislav Poljak
Hi,
I'm not clear on how does SecondaryNameNode communicates with NameNode
(if deployed on separate machine). Does SecondaryNameNode uses direct
connection (over some port and protocol) or is it enough for
SecondaryNameNode to have access to data which NameNode writes locally
on disk?

Tomislav

On Wed, 2008-10-29 at 09:08 -0400, Jean-Daniel Cryans wrote:
> I think a lot of the confusion comes from this thread :
> http://www.nabble.com/NameNode-failover-procedure-td11711842.html
> 
> Particularly because the wiki was updated with wrong information, not
> maliciously I'm sure. This information is now gone for good.
> 
> Otis, your solution is pretty much like the one given by Dhruba Borthakur
> and augmented by Konstantin Shvachko later in the thread but I never did it
> myself.
> 
> One thing should be clear though, the NN is and will remain a SPOF (just
> like HBase's Master) as long as a distributed manager service (like
> Zookeeper) is not plugged into Hadoop to help with failover.
> 
> J-D
> 
> On Wed, Oct 29, 2008 at 2:12 AM, Otis Gospodnetic <
> [EMAIL PROTECTED]> wrote:
> 
> > Hi,
> > So what is the "recipe" for avoiding NN SPOF using only what comes with
> > Hadoop?
> >
> > From what I can tell, I think one has to do the following two things:
> >
> > 1) configure primary NN to save namespace and xa logs to multiple dirs, one
> > of which is actually on a remotely mounted disk, so that the data actually
> > lives on a separate disk on a separate box.  This saves namespace and xa
> > logs on multiple boxes in case of primary NN hardware failure.
> >
> > 2) configure secondary NN to periodically merge fsimage+edits and create
> > the fsimage checkpoint.  This really is a second NN process running on
> > another box.  It sounds like this secondary NN has to somehow have access to
> > fsimage & edits files from the primary NN server.
> > http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodedoes
> >  not describe the best practise around that - the recommended way to
> > give secondary NN access to primary NN's fsimage and edits files.  Should
> > one mount a disk from the primary NN box to the secondary NN box to get
> > access to those files?  Or is there a simpler way?
> > In any case, this checkpoint is just a merge of fsimage+edits files and
> > again is there in case the box with the primary NN dies.  That's what's
> > described on
> > http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodemore
> >  or less.
> >
> > Is this sufficient, or are there other things one has to do to eliminate NN
> > SPOF?
> >
> >
> > Thanks,
> > Otis
> > --
> > Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch
> >
> >
> >
> > - Original Message 
> > > From: Jean-Daniel Cryans <[EMAIL PROTECTED]>
> > > To: core-user@hadoop.apache.org
> > > Sent: Tuesday, October 28, 2008 8:14:44 PM
> > > Subject: Re: SecondaryNameNode on separate machine
> > >
> > > Tomislav.
> > >
> > > Contrary to popular belief the secondary namenode does not provide
> > failover,
> > > it's only used to do what is described here :
> > >
> > http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNode
> > >
> > > So the term "secondary" does not mean "a second one" but is more like "a
> > > second part of".
> > >
> > > J-D
> > >
> > > On Tue, Oct 28, 2008 at 9:44 AM, Tomislav Poljak wrote:
> > >
> > > > Hi,
> > > > I'm trying to implement NameNode failover (or at least NameNode local
> > > > data backup), but it is hard since there is no official documentation.
> > > > Pages on this subject are created, but still empty:
> > > >
> > > > http://wiki.apache.org/hadoop/NameNodeFailover
> > > > http://wiki.apache.org/hadoop/SecondaryNameNode
> > > >
> > > > I have been browsing the web and hadoop mailing list to see how this
> > > > should be implemented, but I got even more confused. People are asking
> > > > do we even need SecondaryNameNode etc. (since NameNode can write local
> > > > data to multiple locations, so one of those locations can be a mounted
> > > > disk from other machine). I think I understand the motivation for
> > > > SecondaryNameNode (to create a snapshoot of NameNode data every n
> > > > seconds/hours), but sett

Re: SecondaryNameNode on separate machine

2008-10-29 Thread Jean-Daniel Cryans
I think a lot of the confusion comes from this thread :
http://www.nabble.com/NameNode-failover-procedure-td11711842.html

Particularly because the wiki was updated with wrong information, not
maliciously I'm sure. This information is now gone for good.

Otis, your solution is pretty much like the one given by Dhruba Borthakur
and augmented by Konstantin Shvachko later in the thread but I never did it
myself.

One thing should be clear though, the NN is and will remain a SPOF (just
like HBase's Master) as long as a distributed manager service (like
Zookeeper) is not plugged into Hadoop to help with failover.

J-D

On Wed, Oct 29, 2008 at 2:12 AM, Otis Gospodnetic <
[EMAIL PROTECTED]> wrote:

> Hi,
> So what is the "recipe" for avoiding NN SPOF using only what comes with
> Hadoop?
>
> From what I can tell, I think one has to do the following two things:
>
> 1) configure primary NN to save namespace and xa logs to multiple dirs, one
> of which is actually on a remotely mounted disk, so that the data actually
> lives on a separate disk on a separate box.  This saves namespace and xa
> logs on multiple boxes in case of primary NN hardware failure.
>
> 2) configure secondary NN to periodically merge fsimage+edits and create
> the fsimage checkpoint.  This really is a second NN process running on
> another box.  It sounds like this secondary NN has to somehow have access to
> fsimage & edits files from the primary NN server.
> http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodedoes
>  not describe the best practise around that - the recommended way to
> give secondary NN access to primary NN's fsimage and edits files.  Should
> one mount a disk from the primary NN box to the secondary NN box to get
> access to those files?  Or is there a simpler way?
> In any case, this checkpoint is just a merge of fsimage+edits files and
> again is there in case the box with the primary NN dies.  That's what's
> described on
> http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNodemore
>  or less.
>
> Is this sufficient, or are there other things one has to do to eliminate NN
> SPOF?
>
>
> Thanks,
> Otis
> --
> Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch
>
>
>
> - Original Message 
> > From: Jean-Daniel Cryans <[EMAIL PROTECTED]>
> > To: core-user@hadoop.apache.org
> > Sent: Tuesday, October 28, 2008 8:14:44 PM
> > Subject: Re: SecondaryNameNode on separate machine
> >
> > Tomislav.
> >
> > Contrary to popular belief the secondary namenode does not provide
> failover,
> > it's only used to do what is described here :
> >
> http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNode
> >
> > So the term "secondary" does not mean "a second one" but is more like "a
> > second part of".
> >
> > J-D
> >
> > On Tue, Oct 28, 2008 at 9:44 AM, Tomislav Poljak wrote:
> >
> > > Hi,
> > > I'm trying to implement NameNode failover (or at least NameNode local
> > > data backup), but it is hard since there is no official documentation.
> > > Pages on this subject are created, but still empty:
> > >
> > > http://wiki.apache.org/hadoop/NameNodeFailover
> > > http://wiki.apache.org/hadoop/SecondaryNameNode
> > >
> > > I have been browsing the web and hadoop mailing list to see how this
> > > should be implemented, but I got even more confused. People are asking
> > > do we even need SecondaryNameNode etc. (since NameNode can write local
> > > data to multiple locations, so one of those locations can be a mounted
> > > disk from other machine). I think I understand the motivation for
> > > SecondaryNameNode (to create a snapshoot of NameNode data every n
> > > seconds/hours), but setting (deploying and running) SecondaryNameNode
> on
> > > different machine than NameNode is not as trivial as I expected. First
> I
> > > found that if I need to run SecondaryNameNode on other machine than
> > > NameNode I should change masters file on NameNode (change localhost to
> > > SecondaryNameNode host) and set some properties in hadoop-site.xml on
> > > SecondaryNameNode (fs.default.name, fs.checkpoint.dir,
> > > fs.checkpoint.period etc.)
> > >
> > > This was enough to start SecondaryNameNode when starting NameNode with
> > > bin/start-dfs.sh , but it didn't create image on SecondaryNameNode.
> Then
> > > I found that I need to set dfs.http.address on NameNode address (so now
> > > I have NameNode 

Re: SecondaryNameNode on separate machine

2008-10-28 Thread Otis Gospodnetic
Hi,
So what is the "recipe" for avoiding NN SPOF using only what comes with Hadoop?

>From what I can tell, I think one has to do the following two things:

1) configure primary NN to save namespace and xa logs to multiple dirs, one of 
which is actually on a remotely mounted disk, so that the data actually lives 
on a separate disk on a separate box.  This saves namespace and xa logs on 
multiple boxes in case of primary NN hardware failure.

2) configure secondary NN to periodically merge fsimage+edits and create the 
fsimage checkpoint.  This really is a second NN process running on another box. 
 It sounds like this secondary NN has to somehow have access to fsimage & edits 
files from the primary NN server.  
http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNode
 does not describe the best practise around that - the recommended way to give 
secondary NN access to primary NN's fsimage and edits files.  Should one mount 
a disk from the primary NN box to the secondary NN box to get access to those 
files?  Or is there a simpler way?
In any case, this checkpoint is just a merge of fsimage+edits files and again 
is there in case the box with the primary NN dies.  That's what's described on 
http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNode
 more or less.

Is this sufficient, or are there other things one has to do to eliminate NN 
SPOF?


Thanks,
Otis
--
Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch



- Original Message 
> From: Jean-Daniel Cryans <[EMAIL PROTECTED]>
> To: core-user@hadoop.apache.org
> Sent: Tuesday, October 28, 2008 8:14:44 PM
> Subject: Re: SecondaryNameNode on separate machine
> 
> Tomislav.
> 
> Contrary to popular belief the secondary namenode does not provide failover,
> it's only used to do what is described here :
> http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNode
> 
> So the term "secondary" does not mean "a second one" but is more like "a
> second part of".
> 
> J-D
> 
> On Tue, Oct 28, 2008 at 9:44 AM, Tomislav Poljak wrote:
> 
> > Hi,
> > I'm trying to implement NameNode failover (or at least NameNode local
> > data backup), but it is hard since there is no official documentation.
> > Pages on this subject are created, but still empty:
> >
> > http://wiki.apache.org/hadoop/NameNodeFailover
> > http://wiki.apache.org/hadoop/SecondaryNameNode
> >
> > I have been browsing the web and hadoop mailing list to see how this
> > should be implemented, but I got even more confused. People are asking
> > do we even need SecondaryNameNode etc. (since NameNode can write local
> > data to multiple locations, so one of those locations can be a mounted
> > disk from other machine). I think I understand the motivation for
> > SecondaryNameNode (to create a snapshoot of NameNode data every n
> > seconds/hours), but setting (deploying and running) SecondaryNameNode on
> > different machine than NameNode is not as trivial as I expected. First I
> > found that if I need to run SecondaryNameNode on other machine than
> > NameNode I should change masters file on NameNode (change localhost to
> > SecondaryNameNode host) and set some properties in hadoop-site.xml on
> > SecondaryNameNode (fs.default.name, fs.checkpoint.dir,
> > fs.checkpoint.period etc.)
> >
> > This was enough to start SecondaryNameNode when starting NameNode with
> > bin/start-dfs.sh , but it didn't create image on SecondaryNameNode. Then
> > I found that I need to set dfs.http.address on NameNode address (so now
> > I have NameNode address in both fs.default.name and dfs.http.address).
> >
> > Now I get following exception:
> >
> > 2008-10-28 09:18:00,098 ERROR NameNode.Secondary - Exception in
> > doCheckpoint:
> > 2008-10-28 09:18:00,098 ERROR NameNode.Secondary -
> > java.net.SocketException: Unexpected end of file from server
> >
> > My questions are following:
> > How to resolve this problem (this exception)?
> > Do I need additional property in SecondaryNameNode's hadoop-site.xml or
> > NameNode's hadoop-site.xml?
> >
> > How should NameNode failover work ideally? Is it like this:
> >
> > SecondaryNameNode runs on separate machine than NameNode and stores
> > NameNode's data (fsimage and fsiedits) locally in fs.checkpoint.dir.
> > When NameNode machine crashes, we start NameNode on machine where
> > SecondaryNameNode was running and we set dfs.name.dir to
> > fs.checkpoint.dir. Also we need to change how DNS resolves NameNode
> > hostname (change from the primary to the secondary).
> >
> > Is this correct ?
> >
> > Tomislav
> >
> >
> >



Re: SecondaryNameNode on separate machine

2008-10-28 Thread Jean-Daniel Cryans
Tomislav.

Contrary to popular belief the secondary namenode does not provide failover,
it's only used to do what is described here :
http://hadoop.apache.org/core/docs/r0.18.1/hdfs_user_guide.html#Secondary+NameNode

So the term "secondary" does not mean "a second one" but is more like "a
second part of".

J-D

On Tue, Oct 28, 2008 at 9:44 AM, Tomislav Poljak <[EMAIL PROTECTED]> wrote:

> Hi,
> I'm trying to implement NameNode failover (or at least NameNode local
> data backup), but it is hard since there is no official documentation.
> Pages on this subject are created, but still empty:
>
> http://wiki.apache.org/hadoop/NameNodeFailover
> http://wiki.apache.org/hadoop/SecondaryNameNode
>
> I have been browsing the web and hadoop mailing list to see how this
> should be implemented, but I got even more confused. People are asking
> do we even need SecondaryNameNode etc. (since NameNode can write local
> data to multiple locations, so one of those locations can be a mounted
> disk from other machine). I think I understand the motivation for
> SecondaryNameNode (to create a snapshoot of NameNode data every n
> seconds/hours), but setting (deploying and running) SecondaryNameNode on
> different machine than NameNode is not as trivial as I expected. First I
> found that if I need to run SecondaryNameNode on other machine than
> NameNode I should change masters file on NameNode (change localhost to
> SecondaryNameNode host) and set some properties in hadoop-site.xml on
> SecondaryNameNode (fs.default.name, fs.checkpoint.dir,
> fs.checkpoint.period etc.)
>
> This was enough to start SecondaryNameNode when starting NameNode with
> bin/start-dfs.sh , but it didn't create image on SecondaryNameNode. Then
> I found that I need to set dfs.http.address on NameNode address (so now
> I have NameNode address in both fs.default.name and dfs.http.address).
>
> Now I get following exception:
>
> 2008-10-28 09:18:00,098 ERROR NameNode.Secondary - Exception in
> doCheckpoint:
> 2008-10-28 09:18:00,098 ERROR NameNode.Secondary -
> java.net.SocketException: Unexpected end of file from server
>
> My questions are following:
> How to resolve this problem (this exception)?
> Do I need additional property in SecondaryNameNode's hadoop-site.xml or
> NameNode's hadoop-site.xml?
>
> How should NameNode failover work ideally? Is it like this:
>
> SecondaryNameNode runs on separate machine than NameNode and stores
> NameNode's data (fsimage and fsiedits) locally in fs.checkpoint.dir.
> When NameNode machine crashes, we start NameNode on machine where
> SecondaryNameNode was running and we set dfs.name.dir to
> fs.checkpoint.dir. Also we need to change how DNS resolves NameNode
> hostname (change from the primary to the secondary).
>
> Is this correct ?
>
> Tomislav
>
>
>


SecondaryNameNode on separate machine

2008-10-28 Thread Tomislav Poljak
Hi,
I'm trying to implement NameNode failover (or at least NameNode local
data backup), but it is hard since there is no official documentation.
Pages on this subject are created, but still empty: 

http://wiki.apache.org/hadoop/NameNodeFailover
http://wiki.apache.org/hadoop/SecondaryNameNode

I have been browsing the web and hadoop mailing list to see how this
should be implemented, but I got even more confused. People are asking
do we even need SecondaryNameNode etc. (since NameNode can write local
data to multiple locations, so one of those locations can be a mounted
disk from other machine). I think I understand the motivation for
SecondaryNameNode (to create a snapshoot of NameNode data every n
seconds/hours), but setting (deploying and running) SecondaryNameNode on
different machine than NameNode is not as trivial as I expected. First I
found that if I need to run SecondaryNameNode on other machine than
NameNode I should change masters file on NameNode (change localhost to
SecondaryNameNode host) and set some properties in hadoop-site.xml on
SecondaryNameNode (fs.default.name, fs.checkpoint.dir,
fs.checkpoint.period etc.) 

This was enough to start SecondaryNameNode when starting NameNode with
bin/start-dfs.sh , but it didn't create image on SecondaryNameNode. Then
I found that I need to set dfs.http.address on NameNode address (so now
I have NameNode address in both fs.default.name and dfs.http.address). 

Now I get following exception: 

2008-10-28 09:18:00,098 ERROR NameNode.Secondary - Exception in
doCheckpoint:
2008-10-28 09:18:00,098 ERROR NameNode.Secondary -
java.net.SocketException: Unexpected end of file from server

My questions are following:
How to resolve this problem (this exception)?
Do I need additional property in SecondaryNameNode's hadoop-site.xml or
NameNode's hadoop-site.xml?

How should NameNode failover work ideally? Is it like this:

SecondaryNameNode runs on separate machine than NameNode and stores
NameNode's data (fsimage and fsiedits) locally in fs.checkpoint.dir.
When NameNode machine crashes, we start NameNode on machine where
SecondaryNameNode was running and we set dfs.name.dir to
fs.checkpoint.dir. Also we need to change how DNS resolves NameNode
hostname (change from the primary to the secondary).

Is this correct ?

Tomislav