Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Accumulo >> mail # user >> Programmatically Gettting a TServer address for ThriftUtil.getClient?


Copy link to this message
-
Re: Programmatically Gettting a TServer address for ThriftUtil.getClient?
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
<[EMAIL PROTECTED]> 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++;
>   }