accumulo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Newton <eric.new...@gmail.com>
Subject Re: Programmatically Gettting a TServer address for ThriftUtil.getClient?
Date Thu, 31 Jan 2013 15:11:04 GMT
You can also get the list of current tservers with the thrift call to
getMasterStats().

-Eric



On Thu, Jan 31, 2013 at 10:05 AM, Keith Turner <keith@deenlo.com> wrote:

> One other thing to consider.  If you scan the metadata table instead
> of talking to tablet servers, then you will get stats about tablets
> that are not currently hosted anywhere.  For example if you talk
> directly to tablet servers, you may miss a tablet that was migrating.
>
> On Thu, Jan 31, 2013 at 9:48 AM, David Medinets
> <david.medinets@gmail.com> wrote:
> > I have some code that totals the number of entries in each tablet will
> > the end goal of find the average number of entries per tablet;
> > basically for a hotspot report. My code is working on my single-node
> > Accumulo but not on the edge node of my Accumulo cluster. On my edge
> > node, the TServer list has zero entries.
> >
> >   1) Any idea why the multi-node cluster is not reporting the set of
> TServers?
> >   2) Is there a different, better, recommended, way to accomplish my
> goal?
> >
> >
> >   LiveTServerSet tserverSet = new LiveTServerSet(instance, new
> > DoNothingLiveTServerSetCallback());
> >   tserverSet.scanServers();
> >   Set<TServerInstance> tserverList = tserverSet.getCurrentServers();
> >   if (tserverList.size() == 0) {
> >     throw new RuntimeException("NO TSERVERS!");
> >   }
> >   TServerInstance tServerInstance (TServerInstance)
> tserverList.toArray()[0];
> >   InetSocketAddress tserverAddress =
> > AddressUtil.parseAddress(tServerInstance.host() + ":" +
> > tServerInstance.port(), -1);
> >
> >   List<TabletStats> tsStats = new ArrayList<TabletStats>();
> >
> >   TableClientService.Iface client = ThrifUtil.getClient(new
> > TabletClientService.Client.Factory(), tserverAddress,
> > ServerConfiguration.getSystemConfiguration());
> >   for (String tableId : mmi.tableMap.keySet()) {
> >     tsStats.addAll(client.getTabletStats(null,
> > SecurityConstants.getSystemCredentials(), tableId));
> >   }
> >
> >   long totalEntries = 0;
> >   long tabletCount = 0;
> >   for (TableStats info : tsStats) {
> >     totalEntries += info.numEntries;
> >     tabletCount++;
> >   }
>

Mime
View raw message