[ 
https://issues.apache.org/jira/browse/PHOENIX-3113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15391787#comment-15391787
 ] 

Ankit Singhal commented on PHOENIX-3113:
----------------------------------------

Actually [~singamteja], the real issue is, if the user doesn't configure this 
mapreduce.framework.name explicitly, then the default value LOCAL will be taken 
,resulting in asyncIndexRebuilderTask thread to start building all the async 
index available in the system which we don't want,  because user may have 
mapreduce configured or deployed on another cluster where he generally uses 
IndexTool to build this ASYNC index.

And, we want to avoid asyncIndexRebuilderTask to build the large indexes(on 
large cluster) as it does UPSERT SELECT which can timeout on larger index build.

> Automatic build of async index will happen even if mapreduce.framework.name 
> is not set in any configuration
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-3113
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3113
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Ankit Singhal
>            Assignee: Loknath Priyatham Teja Singamsetty 
>            Priority: Critical
>             Fix For: 4.8.0
>
>
> As per below code, we are starting automatic build of async index even if 
> mapreduce.framework.name is not set in any of the configuration(because 
> conf.get(QueryServices.MAPRED_FRAMEWORK_NAME) will always return LOCAL as a 
> default value).
> This may cause problem in the hbase cluster where mapreduce is not deployed 
> or this configuration is not set or included in the classpath. 
> {code}
> String hbaseClusterDistributedMode = 
> conf.get(QueryServices.HBASE_CLUSTER_DISTRIBUTED_ATTRIB);
>         String mapredFrameworkName = 
> conf.get(QueryServices.MAPRED_FRAMEWORK_NAME);
> if ((hbaseClusterDistributedMode != null && 
> !hbaseClusterDistributedMode.equals(HBASE_CLUSTER_DISTRIBUTED_CONFIG)) || 
>             (mapredFrameworkName != null && 
> !mapredFrameworkName.equals(MAPRED_FRAMEWORK_YARN_CONFIG)))
>         {
>             LOG.info("Enabling Async Index rebuilder");
>             AsyncIndexRebuilderTask asyncIndexRebuilderTask = new 
> AsyncIndexRebuilderTask(e.getEnvironment());
>             // run async index rebuilder task every 10 secs to rebuild any 
> newly created async indexes
>             executor.scheduleAtFixedRate(asyncIndexRebuilderTask, 10000, 
> rebuildIndexTimeInterval, TimeUnit.MILLISECONDS);
>         }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to