HBaseFsck does this:

    conf.set("fs.defaultFS", conf.get("hbase.rootdir"));

Add this line:

    conf.set("fs.default.name", conf.get("hbase.rootdir"));

See if that fixes it (The former is new way of spec'ing defaultFS
while latter is oldstyle).

St.Ack

On Mon, Jul 5, 2010 at 6:25 PM, Ted Yu <[email protected]> wrote:
> I assume the conf directory is that of HBase.
>
> I use this command previously:
> bin/hbase hbck
>
> I tried this today:
> bin/hbase org.apache.hadoop.hbase.client.HBaseFsck
>
> Result is the same.
>
> I do see conf in the classpath:
> 10/07/05 18:12:32 INFO zookeeper.ZooKeeper: Client
> environment:java.class.path=/home/hadoop/mmp/234_x/hbase/conf:...
> ...
> rootDir: hdfs://sjc9-flash-grid04.carrieriq.com:9000/hbase hdfs://
> sjc9-flash-grid04.carrieriq.com:9000/hbase
> Version: 0.20.5
> 10/07/05 18:12:32 DEBUG zookeeper.ZooKeeperWrapper: Read ZNode
> /hbase/root-region-server got 10.32.56.159:60020
> 10/07/05 18:12:32 DEBUG client.HConnectionManager$TableServers: Found ROOT
> at 10.32.56.159:60020
> 10/07/05 18:12:32 DEBUG client.HConnectionManager$TableServers: Cached
> location for .META.,,1 is 10.32.56.159:60020
>
> Number of Tables: 0
> Number of live region servers:2
> Number of dead region servers:0
> Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS:
> hdfs://sjc9-flash-grid04.carrieriq.com:9000/hbase, expected: file:///
>        at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:310)
>
>
> On Mon, Jul 5, 2010 at 10:24 AM, Stack <[email protected]> wrote:
>
>> Make sure conf directory is in your classpath.  If it is, it might the
>> case that you need something like the below:
>>
>> # Set hadoop filesystem configuration using the hbase.rootdir.
>> # Otherwise, we'll always use localhost though the hbase.rootdir
>> # might be pointing at hdfs location.
>> c.set("fs.default.name", c.get(HConstants::HBASE_DIR))
>> fs = FileSystem.get(c)
>>
>> The above is copied from the jruby scripts in the bin dir......
>>
>> ...though looking at the HBaseFsck it does this.
>>
>> So it must be a case of your not setting up the classpath properly?
>>
>> You've set the target hdfs in your hbase-site.xml and then you've
>> launched the script as per:
>>
>> ./bin/hbase org.apache.hadoop.hbase.client.HBaseFsck
>>
>> (The above will ensure your classpath is set properly).
>>
>> St.Ack
>>
>>
>>
>> On Sat, Jul 3, 2010 at 9:51 AM, Ted Yu <[email protected]> wrote:
>> > I produced patched version of HBaseFsck.java which is attached.
>> >
>> > When I ran it, I got:
>> >
>> > Version: 0.20.5
>> > 10/07/03 09:41:38 DEBUG zookeeper.ZooKeeperWrapper: Read ZNode
>> > /hbase/root-region-server got 10.32.56.159:60020
>> > 10/07/03 09:41:38 DEBUG client.HConnectionManager$TableServers: Found
>> ROOT
>> > at 10.32.56.159:60020
>> > 10/07/03 09:41:38 DEBUG client.HConnectionManager$TableServers: Cached
>> > location for .META.,,1 is 10.32.56.160:60020
>> >
>> > Number of Tables: 0
>> > Number of live region servers:2
>> > Number of dead region servers:0
>> > Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS:
>> > hdfs://sjc9-flash-grid04.carrieriq.com:9000/hbase, expected: file:///
>> >         at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:310)
>> >         at
>> >
>> org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:47)
>> >         at
>> >
>> org.apache.hadoop.fs.RawLocalFileSystem.listStatus(RawLocalFileSystem.java:273)
>> >         at
>> org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:721)
>> >         at
>> org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:746)
>> >         at
>> >
>> org.apache.hadoop.fs.ChecksumFileSystem.listStatus(ChecksumFileSystem.java:465)
>> >         at
>> > org.apache.hadoop.hbase.client.HBaseFsck.checkHdfs(HBaseFsck.java:192)
>> >         at
>> > org.apache.hadoop.hbase.client.HBaseFsck.doWork(HBaseFsck.java:165)
>> >         at
>> org.apache.hadoop.hbase.client.HBaseFsck.main(HBaseFsck.java:533)
>> > 10/07/03 09:41:38 INFO zookeeper.ZooKeeper: Closing session:
>> > 0x1299926deb30004
>> >
>> > Please comment.
>> >
>> > On Sat, Jul 3, 2010 at 7:23 AM, Ted Yu <[email protected]> wrote:
>> >>
>> >> Hi,
>> >> I tried to compile HBaseFsck.java for 0.20.5 but got:
>> >>
>> >> compile-core:
>> >>     [javac] Compiling 338 source files to
>> >> /Users/tyu/hbase-0.20.5/build/classes
>> >>     [javac]
>> >>
>> /Users/tyu/hbase-0.20.5/src/java/org/apache/hadoop/hbase/client/HBaseFsck.java:95:
>> >> cannot find symbol
>> >>     [javac] symbol  : constructor
>> >> HBaseAdmin(org.apache.hadoop.conf.Configuration)
>> >>     [javac] location: class org.apache.hadoop.hbase.client.HBaseAdmin
>> >>     [javac]     super(conf);
>> >>     [javac]     ^
>> >>     [javac]
>> >>
>> /Users/tyu/hbase-0.20.5/src/java/org/apache/hadoop/hbase/client/HBaseFsck.java:447:
>> >> cannot find symbol
>> >>     [javac] symbol  : method
>> >>
>> metaScan(org.apache.hadoop.conf.Configuration,org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor)
>> >>     [javac] location: class org.apache.hadoop.hbase.client.MetaScanner
>> >>     [javac]       MetaScanner.metaScan(conf, visitor);
>> >>     [javac]                  ^
>> >>     [javac]
>> >>
>> /Users/tyu/hbase-0.20.5/src/java/org/apache/hadoop/hbase/client/HBaseFsck.java:503:
>> >> cannot find symbol
>> >>     [javac] symbol  : method create()
>> >>     [javac] location: class org.apache.hadoop.hbase.HBaseConfiguration
>> >>     [javac]     Configuration conf = HBaseConfiguration.create();
>> >>     [javac]                                            ^
>> >>     [javac] Note: Some input files use or override a deprecated API.
>> >>     [javac] Note: Recompile with -Xlint:deprecation for details.
>> >>     [javac] Note: Some input files use unchecked or unsafe operations.
>> >>     [javac] Note: Recompile with -Xlint:unchecked for details.
>> >>     [javac] 3 errors
>> >>
>> >> Advice is welcome.
>> >
>> >
>>
>

Reply via email to