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

Loknath Priyatham Teja Singamsetty  commented on PHOENIX-3113:
--------------------------------------------------------------

[~ankit.singhal] Good eye on the corner case scenario where the mapred jar is 
not in classpath. Simply qualifying for mapredFrameworkName config to be null 
for enabling async index rebuilding would be sufficient. The idea is to rely on 
hadoop/hbase configuration and enable/disable async index rebuilding.

(mapredFrameworkName ==null || 
 (mapredFrameworkName != null && 
!mapredFrameworkName.equals(MAPRED_FRAMEWORK_YARN_CONFIG))
)

This check should cover the scenario pointed out.

> 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
>            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