As you noted in the FIXME, there're some factors which should be tackled by balancer / assignment manager.
Please continue digging up master log so that we can find the cause for balancer not fulfilling your goal. Cheers On Mon, Sep 22, 2014 at 10:09 AM, Jianshi Huang <jianshi.hu...@gmail.com> wrote: > Ok, I fixed this by manually reassign region servers to newly created ones. > > def reassignRegionServer(admin: HBaseAdmin, regions: Seq[HRegionInfo], > regionServers: Seq[ServerName]): Unit = { > val rand = new Random() > regions.foreach { r => > val idx = rand.nextInt(regionServers.size) > val server = regionServers(idx) > // FIXME: what if selected region server is dead? > admin.move(r.getEncodedNameAsBytes, > server.getServerName.getBytes("UTF8")) > } > } > > er... > > Jianshi > > On Tue, Sep 23, 2014 at 12:24 AM, Jianshi Huang <jianshi.hu...@gmail.com> > wrote: > > > Hmm...any workaround? I only want to do this: > > > > Rebalance the new regions *evenly* to all servers after manually adding > > splits, so later bulk insertions won't cause contention. > > > > P.S. > > Looks like two of the region servers which had majority of the regions > > were down during Major compaction... I guess it had too much data. > > > > > > Jianshi > > > > On Tue, Sep 23, 2014 at 12:13 AM, Jianshi Huang <jianshi.hu...@gmail.com > > > > wrote: > > > >> Yes, I have access to Master UI, however logs/*.log cannot be opened or > >> downloaded, must be some security restrictions in the proxy... > >> > >> Jianshi > >> > >> On Tue, Sep 23, 2014 at 12:06 AM, Ted Yu <yuzhih...@gmail.com> wrote: > >> > >>> Do you have access to Master UI ? > >>> > >>> <master-address>:60010/logs/ would show you list of log files. > >>> > >>> The you can view > <master-address>:60010/logs/hbase-<user>-master-XXX.log > >>> > >>> Cheers > >>> > >>> On Mon, Sep 22, 2014 at 9:00 AM, Jianshi Huang < > jianshi.hu...@gmail.com> > >>> wrote: > >>> > >>> > Ah... I don't have access to HMaster logs... I need to ask the admin. > >>> > > >>> > Jianshi > >>> > > >>> > On Mon, Sep 22, 2014 at 11:49 PM, Ted Yu <yuzhih...@gmail.com> > wrote: > >>> > > >>> > > bq. assign per-table balancer class > >>> > > > >>> > > No that I know of. > >>> > > Can you pastebin master log involving output from balancer ? > >>> > > > >>> > > Cheers > >>> > > > >>> > > On Mon, Sep 22, 2014 at 8:29 AM, Jianshi Huang < > >>> jianshi.hu...@gmail.com> > >>> > > wrote: > >>> > > > >>> > > > Hi Ted, > >>> > > > > >>> > > > I moved setBalancerRunning before balancer and run them twice. > >>> However > >>> > I > >>> > > > still got highly skewed region distribution. > >>> > > > > >>> > > > I guess it's because of the StochasticLoadBalancer, can I assign > >>> > > per-table > >>> > > > balancer class in HBase? > >>> > > > > >>> > > > > >>> > > > Jianshi > >>> > > > > >>> > > > On Mon, Sep 22, 2014 at 9:50 PM, Ted Yu <yuzhih...@gmail.com> > >>> wrote: > >>> > > > > >>> > > > > admin.setBalancerRunning() call should precede the call to > >>> > > > > admin.balancer(). > >>> > > > > > >>> > > > > You can inspect master log to see whether regions are being > >>> moved off > >>> > > the > >>> > > > > heavily loaded server. > >>> > > > > > >>> > > > > Cheers > >>> > > > > > >>> > > > > On Mon, Sep 22, 2014 at 1:42 AM, Jianshi Huang < > >>> > > jianshi.hu...@gmail.com> > >>> > > > > wrote: > >>> > > > > > >>> > > > > > Hi Ted and others, > >>> > > > > > > >>> > > > > > I did the following after adding splits (without data) to my > >>> table, > >>> > > > > however > >>> > > > > > the region is still very imbalanced (one region server has > 221 > >>> > > regions > >>> > > > > and > >>> > > > > > other 50 region servers have about 4~8 regions each). > >>> > > > > > > >>> > > > > > admin.balancer() > >>> > > > > > admin.setBalancerRunning(true, true) > >>> > > > > > > >>> > > > > > The balancer class in my HBase cluster is > >>> > > > > > > >>> > > > > > > org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer > >>> > > > > > > >>> > > > > > So, is this behavior expected? Can I assign different > balancer > >>> > class > >>> > > to > >>> > > > > my > >>> > > > > > tables (I don't have HBase admin permission)? Which one > should > >>> I > >>> > use? > >>> > > > > > > >>> > > > > > I just want HBase to evenly distribute the regions even they > >>> don't > >>> > > have > >>> > > > > > data (that's the purpose of pre-split I think). > >>> > > > > > > >>> > > > > > > >>> > > > > > Jianshi > >>> > > > > > > >>> > > > > > > >>> > > > > > On Sat, Sep 6, 2014 at 12:45 AM, Ted Yu <yuzhih...@gmail.com > > > >>> > wrote: > >>> > > > > > > >>> > > > > > > Yes. See the following method in HBaseAdmin: > >>> > > > > > > > >>> > > > > > > public boolean balancer() > >>> > > > > > > > >>> > > > > > > > >>> > > > > > > On Fri, Sep 5, 2014 at 9:38 AM, Jianshi Huang < > >>> > > > jianshi.hu...@gmail.com > >>> > > > > > > >>> > > > > > > wrote: > >>> > > > > > > > >>> > > > > > > > Thanks Ted! > >>> > > > > > > > > >>> > > > > > > > Didn't know I still need to run the 'balancer' command. > >>> > > > > > > > > >>> > > > > > > > Is there a way to do it programmatically? > >>> > > > > > > > > >>> > > > > > > > Jianshi > >>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > On Sat, Sep 6, 2014 at 12:29 AM, Ted Yu < > >>> yuzhih...@gmail.com> > >>> > > > wrote: > >>> > > > > > > > > >>> > > > > > > > > After splitting the region, you may need to run > balancer > >>> to > >>> > > > spread > >>> > > > > > the > >>> > > > > > > > new > >>> > > > > > > > > regions out. > >>> > > > > > > > > > >>> > > > > > > > > Cheers > >>> > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > On Fri, Sep 5, 2014 at 9:25 AM, Jianshi Huang < > >>> > > > > > jianshi.hu...@gmail.com > >>> > > > > > > > > >>> > > > > > > > > wrote: > >>> > > > > > > > > > >>> > > > > > > > > > Hi Shahab, > >>> > > > > > > > > > > >>> > > > > > > > > > I see, that seems to be the right way... > >>> > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > On Sat, Sep 6, 2014 at 12:21 AM, Shahab Yunus < > >>> > > > > > > shahab.yu...@gmail.com> > >>> > > > > > > > > > wrote: > >>> > > > > > > > > > > >>> > > > > > > > > > > Shahab > >>> > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > -- > >>> > > > > > > > > > Jianshi Huang > >>> > > > > > > > > > > >>> > > > > > > > > > LinkedIn: jianshi > >>> > > > > > > > > > Twitter: @jshuang > >>> > > > > > > > > > Github & Blog: http://huangjs.github.com/ > >>> > > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > > >>> > > > > > > > -- > >>> > > > > > > > Jianshi Huang > >>> > > > > > > > > >>> > > > > > > > LinkedIn: jianshi > >>> > > > > > > > Twitter: @jshuang > >>> > > > > > > > Github & Blog: http://huangjs.github.com/ > >>> > > > > > > > > >>> > > > > > > > >>> > > > > > > >>> > > > > > > >>> > > > > > > >>> > > > > > -- > >>> > > > > > Jianshi Huang > >>> > > > > > > >>> > > > > > LinkedIn: jianshi > >>> > > > > > Twitter: @jshuang > >>> > > > > > Github & Blog: http://huangjs.github.com/ > >>> > > > > > > >>> > > > > > >>> > > > > >>> > > > > >>> > > > > >>> > > > -- > >>> > > > Jianshi Huang > >>> > > > > >>> > > > LinkedIn: jianshi > >>> > > > Twitter: @jshuang > >>> > > > Github & Blog: http://huangjs.github.com/ > >>> > > > > >>> > > > >>> > > >>> > > >>> > > >>> > -- > >>> > Jianshi Huang > >>> > > >>> > LinkedIn: jianshi > >>> > Twitter: @jshuang > >>> > Github & Blog: http://huangjs.github.com/ > >>> > > >>> > >> > >> > >> > >> -- > >> Jianshi Huang > >> > >> LinkedIn: jianshi > >> Twitter: @jshuang > >> Github & Blog: http://huangjs.github.com/ > >> > > > > > > > > -- > > Jianshi Huang > > > > LinkedIn: jianshi > > Twitter: @jshuang > > Github & Blog: http://huangjs.github.com/ > > > > > > -- > Jianshi Huang > > LinkedIn: jianshi > Twitter: @jshuang > Github & Blog: http://huangjs.github.com/ >