Reopening as scanner creations may be done in parallel as well, and this may cut some time during scanner creation.
 Reopening to apply parallel scan for finding accept applications for nodes when drawing the server map.

Implement parallel result scanner for scanning rows distributed with RowKeyDistributor
Allow distributed scanners to run in parallel that would theoretically allow for better performance when scanning rows that are well distributed using `RowKeyDistributor`

web/src/main/java/com/navercorp/pinpoint/web/dao/hbase/HbaseHostApplicationMapDao.java
web/src/main/java/com/navercorp/pinpoint/web/dao/hbase/HbaseHostApplicationMapDao.java
diff --git a/web/src/main/java/com/navercorp/pinpoint/web/dao/hbase/HbaseHostApplicationMapDao.java b/web/src/main/java/com/navercorp/pinpoint/web/dao/hbase/HbaseHostApplicationMapDao.java
index c577b5fa3482..ff47ecdf7fc3 100644
--- a/web/src/main/java/com/navercorp/pinpoint/web/dao/hbase/HbaseHostApplicationMapDao.java
+++ b/web/src/main/java/com/navercorp/pinpoint/web/dao/hbase/HbaseHostApplicationMapDao.java
@@ -53,6 +53,8 @@
 @Repository
 public class HbaseHostApplicationMapDao implements HostApplicationMapDao {
 
+    private static final int HOST_APPLICATION_MAP_VER2_NUM_PARTITIONS = 4;
+
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
     private int scanCacheSize = 10;
 
@@ -127,7 +129,7 @@ public Set<AcceptApplication> findAcceptApplicationName(Application fromApplicat
             throw new NullPointerException("fromApplication must not be null");
         }
         final Scan scan = createScan(fromApplication, range);
-        final List<List<AcceptApplication>> result = hbaseOperations2.find(HBaseTables.HOST_APPLICATION_MAP_VER2, scan, acceptApplicationRowKeyDistributor, hostApplicationMapperVer2);
+        final List<List<AcceptApplication>> result = hbaseOperations2.findParallel(HBaseTables.HOST_APPLICATION_MAP_VER2, scan, acceptApplicationRowKeyDistributor, hostApplicationMapperVer2, HOST_APPLICATION_MAP_VER2_NUM_PARTITIONS);
         if (CollectionUtils.isNotEmpty(result)) {
             final Set<AcceptApplication> resultSet = new HashSet<>();
             for (List<AcceptApplication> resultList : result) {
