Michael Stack wrote:
Holger Stenzhorn wrote:
..
Hadoop RunJar looks to contain the only use of hadoop.tmp.dir other
than test and contrib code. It does the following: 'new File(new
Configuration().get("hadoop.tmp.dir"));' using java.io.File. In
hbase, its all Path and hadoop FileSystem. So, yes, content of
hadoop.tmp.dir is treated differently.
Could that be changed? ...meaning, wouldn't it be sensible to change
HBase (to use Path etc.) so it behaves like Hadoop?
You mean, can hadoop be changed? (Its hbase that's drunk the
kool-aid; its the one that goes via hadoop FileSystem for all
filesystem accesses whereas the hadoop use of hadoop.tmp.dir goes via
java.io.File).
Nope. I mean the other way around: Can you change the HBase code so it
goes via the Hadoop filesystem? ...or would this imply a performance
drop for HBase?
Mmmmh, thinking about that more in depth... Hadoop makes a mistake there
to! When I start up Hadoop in Cygwin and the default temp location is
used ("/tmp/hadoop-${user.name}") then Hadoop creates the temp location
under "c:" and not under "/tmp" in the Cygwin directory. I guess that is
a glitch too and so I will post that also to the list! :-)
I took a look again at your logs trying to figure why no deploy of the
critical .META. For .META. to be deployed, it needs mention in the
-ROOT- table as a row. This is done in the HMaster constructor IF
this test passes: '#903 if (!fs.exists(rootRegionDir)) {'. I'm
guessing this test is failing.
But the Mighty Jim Kellerman just tried on his cygwin install and if
using local filesystem and all defaults -- no additions to
hbase-site.xml -- it all just works for him (.META. gets deployed
successufully, etc.).
What happens if you clean up your local directory removing
${hadoop.tmp.dir} and retry?
Again, if I use "c:\tmp\hadoop-holste" as value for "${hadoop.tmp.dir}"
it works: The log reflects just the situation when this variable is not
set in "hbase-site.xml" - then it does not work.
I also forgot to mention in my last my that it is not just
"${hadoop.tmp.dir}" set to "/tmp/hadoop-${user.name}" that causes the
problem but also if it is set to "/tmp/hadoop-holste".
Thanks,
St.Ack
Did you just change the value of hadoop.tmp.dir from
/tmp/hadoop-${user.name} to /tmp/hadoop-holste on cygwin and it then
worked?
No. I changed it to changed the value "c:\tmp\hadoop-holste".
Also, I tried to do the very same (as described in my intitial
mail) on Ubuntu also *without* specifying "hadoop.tmp.dir".
There it works wihtout problems...
Yeah. I know things work out-of-the-box on linux/macosx. Jim has
been doing a bunch of work trying to get the same to happen on
cygwin (10Minutes has the latest fruit of his work).
As requested by Michel Stack I also attach my log (turned to debug)
when starting the server.
Thanks for the log. Comments interlaced.
Cheers,
Holger
07/11/02 13:40:09 DEBUG conf.Configuration: java.io.IOException:
config()
at
org.apache.hadoop.conf.Configuration.<init>(Configuration.java:144)
at
org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:30)
at org.apache.hadoop.hbase.HMaster.doMain(HMaster.java:3043)
at org.apache.hadoop.hbase.HMaster.main(HMaster.java:3097)
...