You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Takuya UESHIN <ue...@happy-camper.st> on 2011/08/21 13:44:13 UTC

HRegionPartitioner has the same problem as HBASE-3111.

Hi,

I found that HRegionPartitioner has the same problem as HBASE-3111.

Some tests I'm writing for MapReduce using HRegionPartitioner don't succeed
because HRegionPartitioiner overwrites the test specific configuration
"hbase.zookeeper.property.clientPort" : 21818
with that in hbase-site.xml (or hbase-default.xml).

I think this is caused by
"HBaseConfiguration.addHbaseResources(conf);" in
HRegionPartitioner#setConf(Configuration).


You can check this situation using TestTableMapReduce.

Add HRegionPartitioner.class to the 4th argument of
TableMapReduceUtil#initTableReducerJob().
And delete "hbase.zookeeper.property.clientPort" property from
hbase-site.xml or change it.


Thanks.

-- 
Takuya UESHIN
Tokyo, Japan

http://twitter.com/ueshin

Re: HRegionPartitioner has the same problem as HBASE-3111.

Posted by Takuya UESHIN <ue...@happy-camper.st>.
Hi,

Thank you for your replying.

I made an issue HBASE-4398.
https://issues.apache.org/jira/browse/HBASE-4398


I don't think we should play with the order,
but at least we shouldn't overwrite the configurations specified by user.

I think "HBaseConfiguration.addHbaseResources(conf);" has too strong
effects for mapreduce configurations so we shouldn't use it or just
use new conf created by HBaseConfiguration.create(conf).


And yes, this might be related to HBASE-4297, slightly different though.


Thanks.


2011/9/13 Stack <st...@duboce.net>:
> On Mon, Sep 12, 2011 at 7:51 AM, Takuya UESHIN <ue...@happy-camper.st> wrote:
>> I think HTable should connect to ZooKeeper at port 21818 configured at
>> client side instead of 12345 in hbase-site.xml
>> and It might be caused by
>> "HBaseConfiguration.addHbaseResources(conf);" in
>> HRegionPartitioner#setConf(Configuration).
>>
>> And this might mean that all of client side configurations, also
>> configured in hbase-site.xml, are overwritten caused by this problem.
>>
>
> Would you mind making an issue please Takuya?
>
> Should we play with the order in which settings are done in HTablePartitioner?
>
> Is the following related?
>
>   HBASE-4297  TableMapReduceUtil overwrites user supplied options
>               (Jan Lukavsky)
>
> St.Ack
>



-- 
Takuya UESHIN
Tokyo, Japan

http://twitter.com/ueshin

Re: HRegionPartitioner has the same problem as HBASE-3111.

Posted by Stack <st...@duboce.net>.
On Mon, Sep 12, 2011 at 7:51 AM, Takuya UESHIN <ue...@happy-camper.st> wrote:
> I think HTable should connect to ZooKeeper at port 21818 configured at
> client side instead of 12345 in hbase-site.xml
> and It might be caused by
> "HBaseConfiguration.addHbaseResources(conf);" in
> HRegionPartitioner#setConf(Configuration).
>
> And this might mean that all of client side configurations, also
> configured in hbase-site.xml, are overwritten caused by this problem.
>

Would you mind making an issue please Takuya?

Should we play with the order in which settings are done in HTablePartitioner?

Is the following related?

   HBASE-4297  TableMapReduceUtil overwrites user supplied options
               (Jan Lukavsky)

St.Ack

Re: HRegionPartitioner has the same problem as HBASE-3111.

Posted by Takuya UESHIN <ue...@happy-camper.st>.
Hi,

I'll follow the problem I sent before.


I checked the followings in Apache trunk version.


= how to reproduce the problem

- Add HRegionPartitioner.class to the 4th argument of

TableMapReduceUtil#initTableReducerJob()

at line around 133
in src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableMapReduce.java

- Change or remove "hbase.zookeeper.property.clientPort" property

in hbase-site.xml ( see attached file: changed to 12345 ).

- run testMultiRegionTable()



= error logs

I got the error message as following:


2011-09-12 22:28:51,020 DEBUG [Thread-832] zookeeper.ZKUtil(93):
hconnection opening connection to ZooKeeper with ensemble
(localhost:12345)
2011-09-12 22:28:51,022 INFO  [Thread-832]
zookeeper.RecoverableZooKeeper(89): The identifier of this process is
43200@imac.local
2011-09-12 22:28:51,123 WARN  [Thread-832]
zookeeper.RecoverableZooKeeper(161): Possibly transient ZooKeeper
exception: org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/master
2011-09-12 22:28:51,123 INFO  [Thread-832]
zookeeper.RecoverableZooKeeper(173): The 1 times to retry ZooKeeper
after sleeping 1000 ms
2011-09-12 22:28:52,367 WARN  [Thread-832]
zookeeper.RecoverableZooKeeper(161): Possibly transient ZooKeeper
exception: org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/master
2011-09-12 22:28:52,367 INFO  [Thread-832]
zookeeper.RecoverableZooKeeper(173): The 2 times to retry ZooKeeper
after sleeping 1000 ms
2011-09-12 22:28:53,783 WARN  [Thread-832]
zookeeper.RecoverableZooKeeper(161): Possibly transient ZooKeeper
exception: org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/master
2011-09-12 22:28:53,783 INFO  [Thread-832]
zookeeper.RecoverableZooKeeper(173): The 3 times to retry ZooKeeper
after sleeping 1000 ms
2011-09-12 22:28:55,260 WARN  [Thread-832]
zookeeper.RecoverableZooKeeper(161): Possibly transient ZooKeeper
exception: org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/master
2011-09-12 22:28:55,260 ERROR [Thread-832]
zookeeper.RecoverableZooKeeper(163): ZooKeeper exists failed after 3
retries
2011-09-12 22:28:55,261 WARN  [Thread-832] zookeeper.ZKUtil(230):
hconnection Unable to set watcher on znode /hbase/master
org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/master
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:809)
	at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:156)
	at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:221)
	at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:76)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:531)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:520)
	at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:178)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:170)
	at org.apache.hadoop.hbase.mapreduce.HRegionPartitioner.setConf(HRegionPartitioner.java:123)
	at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
	at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
	at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:527)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:613)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
2011-09-12 22:28:55,262 ERROR [Thread-832]
zookeeper.ZooKeeperWatcher(358): hconnection Received unexpected
KeeperException, re-throwing exception
org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/master
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:809)
	at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:156)
	at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:221)
	at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:76)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:531)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:520)
	at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:178)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:170)
	at org.apache.hadoop.hbase.mapreduce.HRegionPartitioner.setConf(HRegionPartitioner.java:123)
	at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
	at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
	at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:527)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:613)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
2011-09-12 22:28:55,263 FATAL [Thread-832]
client.HConnectionManager$HConnectionImplementation(1661): Unexpected
exception during initialization, aborting
org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/master
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:809)
	at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:156)
	at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:221)
	at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:76)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:531)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:520)
	at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:178)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:170)
	at org.apache.hadoop.hbase.mapreduce.HRegionPartitioner.setConf(HRegionPartitioner.java:123)
	at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
	at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
	at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:527)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:613)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
2011-09-12 22:28:57,204 WARN  [Thread-832]
zookeeper.RecoverableZooKeeper(161): Possibly transient ZooKeeper
exception: org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/root-region-server
2011-09-12 22:28:57,204 INFO  [Thread-832]
zookeeper.RecoverableZooKeeper(173): The 1 times to retry ZooKeeper
after sleeping 1000 ms
2011-09-12 22:28:58,498 WARN  [Thread-832]
zookeeper.RecoverableZooKeeper(161): Possibly transient ZooKeeper
exception: org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/root-region-server
2011-09-12 22:28:58,498 INFO  [Thread-832]
zookeeper.RecoverableZooKeeper(173): The 2 times to retry ZooKeeper
after sleeping 1000 ms
2011-09-12 22:29:00,211 WARN  [Thread-832]
zookeeper.RecoverableZooKeeper(161): Possibly transient ZooKeeper
exception: org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/root-region-server
2011-09-12 22:29:00,211 INFO  [Thread-832]
zookeeper.RecoverableZooKeeper(173): The 3 times to retry ZooKeeper
after sleeping 1000 ms
2011-09-12 22:29:02,417 WARN  [Thread-832]
zookeeper.RecoverableZooKeeper(161): Possibly transient ZooKeeper
exception: org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/root-region-server
2011-09-12 22:29:02,417 ERROR [Thread-832]
zookeeper.RecoverableZooKeeper(163): ZooKeeper exists failed after 3
retries
2011-09-12 22:29:02,417 WARN  [Thread-832] zookeeper.ZKUtil(230):
hconnection Unable to set watcher on znode /hbase/root-region-server
org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/root-region-server
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:809)
	at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:156)
	at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:221)
	at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:76)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:534)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:520)
	at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:178)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:170)
	at org.apache.hadoop.hbase.mapreduce.HRegionPartitioner.setConf(HRegionPartitioner.java:123)
	at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
	at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
	at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:527)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:613)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
2011-09-12 22:29:02,417 ERROR [Thread-832]
zookeeper.ZooKeeperWatcher(358): hconnection Received unexpected
KeeperException, re-throwing exception
org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/root-region-server
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:809)
	at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:156)
	at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:221)
	at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:76)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:534)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:520)
	at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:178)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:170)
	at org.apache.hadoop.hbase.mapreduce.HRegionPartitioner.setConf(HRegionPartitioner.java:123)
	at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
	at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
	at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:527)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:613)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
2011-09-12 22:29:02,418 FATAL [Thread-832]
client.HConnectionManager$HConnectionImplementation(1661): Unexpected
exception during initialization, aborting
org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/root-region-server
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:809)
	at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:156)
	at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:221)
	at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:76)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:534)
	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:520)
	at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:178)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192)
	at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:170)
	at org.apache.hadoop.hbase.mapreduce.HRegionPartitioner.setConf(HRegionPartitioner.java:123)
	at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
	at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
	at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:527)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:613)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
2011-09-12 22:29:02,418 ERROR [Thread-832]
mapreduce.HRegionPartitioner(125): java.io.IOException:
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@2e54e48d
closed
2011-09-12 22:29:02,422 WARN  [Thread-832]
mapred.LocalJobRunner$Job(256): job_local_0001
java.lang.NullPointerException
	at org.apache.hadoop.hbase.mapreduce.HRegionPartitioner.setConf(HRegionPartitioner.java:128)
	at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
	at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
	at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:527)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:613)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)



= what's the problem?

I think HTable should connect to ZooKeeper at port 21818 configured at
client side instead of 12345 in hbase-site.xml
and It might be caused by
"HBaseConfiguration.addHbaseResources(conf);" in
HRegionPartitioner#setConf(Configuration).

And this might mean that all of client side configurations, also
configured in hbase-site.xml, are overwritten caused by this problem.


Thanks.



2011/8/21 Takuya UESHIN <ue...@happy-camper.st>:
> Hi,
>
> I found that HRegionPartitioner has the same problem as HBASE-3111.
>
> Some tests I'm writing for MapReduce using HRegionPartitioner don't succeed
> because HRegionPartitioiner overwrites the test specific configuration
> "hbase.zookeeper.property.clientPort" : 21818
> with that in hbase-site.xml (or hbase-default.xml).
>
> I think this is caused by
> "HBaseConfiguration.addHbaseResources(conf);" in
> HRegionPartitioner#setConf(Configuration).
>
>
> You can check this situation using TestTableMapReduce.
>
> Add HRegionPartitioner.class to the 4th argument of
> TableMapReduceUtil#initTableReducerJob().
> And delete "hbase.zookeeper.property.clientPort" property from
> hbase-site.xml or change it.
>
>
> Thanks.
>
> --
> Takuya UESHIN
> Tokyo, Japan
>
> http://twitter.com/ueshin
>



--
Takuya UESHIN
Tokyo, Japan

http://twitter.com/ueshin