Hypertable <==> Hadoop ClientProtocol version mismatch problems

17 views
Skip to first unread message

slowfood

unread,
Apr 30, 2008, 10:20:42 PM4/30/08
to Hypertable User, pe...@wink.com
I'm having version-itis problems when trying to start Hypertable on a
Hadoop dfs:

% ~/hypertable/bin/start-master.sh hadoop
[...]
HdfsBroker.Server.fs.default.name=hdfs://motherlode001:9000
org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol
org.apache.hadoop.dfs.ClientProtocol version mismatch. (client = 14,
server = 19)
at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:253)
at
org.apache.hadoop.dfs.DFSClient.createNamenode(DFSClient.java:141)
at org.apache.hadoop.dfs.DFSClient.<init>(DFSClient.java:153)
at
org.apache.hadoop.dfs.DistributedFileSystem.initialize(DistributedFileSystem.java:
66)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:159)
at org.apache.hadoop.fs.FileSystem.getNamed(FileSystem.java:
118)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:90)
at
org.hypertable.DfsBroker.hadoop.HdfsBroker.<init>(HdfsBroker.java:71)
at org.hypertable.DfsBroker.hadoop.main.main(main.java:136)
Problem statring DfsBroker (hadoop)

That I'm sure would be fixed if I could get a matched set... but not
clear how to determine
what parts of what version are what.

Luke

unread,
Apr 30, 2008, 11:25:52 PM4/30/08
to Hypertable User
Hi Peter,

You're probably using the 0.9.0.4, which has an older hadoop-*core.jar
bundled. I'd suggest that you pull the latest version from the
repository, which will have a later version of hadoop-0.16.2-core.jar.
I've seen report that simply replace the hadoop*-core.jar in the
<install_dir>/java/lib would work as well.

slowfood

unread,
May 1, 2008, 12:07:45 AM5/1/08
to Hypertable User
Thanks Luke -

I'll give it a try (tomorrow), maybe gen up a git-enabled ebuild
unless you already have one?

;;peter

slowfood

unread,
May 1, 2008, 6:45:00 PM5/1/08
to Hypertable User
To build I had to add:
#include <iostream>
to hypertable/src/cc/Common/Logger.h
Without it I got an error from make:
/home/admin/src/hypertable/src/cc/Common/Logger.h:31: error:
'cout' is not a member of 'std'

With this fix things seemed to build.
Still doesn't run though, and not much to go on as to why:

# bin/start-master.sh hadoop
DfsBroker (hadoop) hasn't come up yet, trying again in 5 seconds ...
Num CPUs=4
HdfsBroker.Port=38030
HdfsBroker.Reactors=4
HdfsBroker.Workers=20
HdfsBroker.Server.fs.default.name=hdfs://motherlode001:9000
Problem statring DfsBroker (hadoop)
#

(changed the name of the HdfsBroker.Server.fs.default.name from what I
really use, how to
determine what should really be there?)

;;peter

Luke

unread,
May 2, 2008, 1:43:38 AM5/2/08
to Hypertable User
Thanks for the note, Peter...

On May 1, 3:45 pm, slowfood <pb...@plasm.com> wrote:
> To build I had to add:
> #include <iostream>
> to hypertable/src/cc/Common/Logger.h
> Without it I got an error from make:
> /home/admin/src/hypertable/src/cc/Common/Logger.h:31: error:
> 'cout' is not a member of 'std'

Interesting, I wonder why I didn't get an error. Maybe different
compiler version. What does your gcc -v say?

> With this fix things seemed to build.
> Still doesn't run though, and not much to go on as to why:
>
> # bin/start-master.sh hadoop
> DfsBroker (hadoop) hasn't come up yet, trying again in 5 seconds ...
> Num CPUs=4
> HdfsBroker.Port=38030
> HdfsBroker.Reactors=4
> HdfsBroker.Workers=20
> HdfsBroker.Server.fs.default.name=hdfs://motherlode001:9000
> Problem statring DfsBroker (hadoop)
> #
>
> (changed the name of the HdfsBroker.Server.fs.default.name from what I
> really use, how to
> determine what should really be there?)

Does hadoop fs ls show anything? Make sure he ...default.name matches
your conf/hadoop-site.xml. Can you send me your hypertable.cfg?

> > I'll give it a try (tomorrow), maybe gen up a git-enabled ebuild
> > unless you already have one?

No, unfortunately we're not using gentoo in production here, so no
ebuild yet. We probably have rpm and deb by the time we're in beta.
But it'll be awesome to have one. Thanks.

__Luke

slowfood

unread,
May 2, 2008, 2:28:03 AM5/2/08
to Hypertable User
Luke -

Thanks for the help.

My gcc -v output:

peter@cl46 ~ $ gcc -v
Using built-in specs.
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/
configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/
4.1.2 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include --
datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2 --mandir=/usr/
share/gcc-data/x86_64-pc-linux-gnu/4.1.2/man --infodir=/usr/share/gcc-
data/x86_64-pc-linux-gnu/4.1.2/info --with-gxx-include-dir=/usr/lib/
gcc/x86_64-pc-linux-gnu/4.1.2/include/g++-v4 --host=x86_64-pc-linux-
gnu --build=x86_64-pc-linux-gnu --disable-altivec --enable-nls --
without-included-gettext --with-system-zlib --disable-checking --
disable-werror --enable-secureplt --disable-libunwind-exceptions --
enable-multilib --enable-libmudflap --disable-libssp --disable-libgcj
--enable-languages=c,c++,treelang,fortran --enable-shared --enable-
threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)
peter@cl46 ~ $


My conf/hadoop-site.xml is "empty" (only boiler plate comments).
What parts need to match up between Hypertable and Hadoop config?
(the hadoop-default.xml may have been edited since it seems we are
on non-standard ports from what I can tell, but the site file is
"empty"...)

I did make a /hypertable directory on the dfs:

peter@cl46 ~ $ hadoop fs -ls /
Found 5 items
/data <dir> 2008-04-09 03:26
/home <dir> 2008-04-11 13:59
/hypertable <dir> 2008-04-29 15:10
/tmp <dir> 2008-04-07 15:58
/user <dir> 2008-04-09 03:27
peter@cl46 ~ $

Was not able to do the asked for chmod on it, my hadoop has no such fs
command.
Might be the problem?

;;peter

Luke

unread,
May 2, 2008, 2:20:55 PM5/2/08
to Hypertable User
Interesting, looks like you're doing something non-standard. All user
customizations of hadoop should really be in hadoop-site.xml, and you
need to make sure the fs.default.name in it exactly matches the
HdfsBroker...default.name in hypertable config.

http://wiki.apache.org/hadoop/GettingStartedWithHadoop
Reply all
Reply to author
Forward
0 new messages