in aios/sql/python/local_search_starter.py [0:0]
def _startQrs(self):
zoneName = "qrs"
partId = 0
rundir = os.path.join(self.localSearchDir, zoneName)
if not os.path.exists(rundir):
os.system("mkdir %s" % rundir)
targetCfg = os.path.join(rundir, "qrs_service_%d.cfg" % (self.portStart))
os.system("cp %s %s" % (self.qrsCfg, targetCfg))
startCmd = self.startCmdTemplate % (self.binPath, self.libPath, "qrs", self.alogConfigPath,
self.binaryPath, targetCfg, 0, 0,
self.qrsHttpArpcBindPort, self.serviceName, self.amonPath,
zoneName, self.qrsArpcBindPort, self.ip, zoneName, zoneName,
partId, self.config_loader)
startCmd += " --env LIBHDFS_OPTS=-Xrs "
startCmd += " --env JAVA_TOOL_OPTIONS=-Djdk.lang.processReaperUseDefaultStackSize=true "
if self.qrsQueue:
startCmd += " --env extraTaskQueues=" + self.qrsQueue
if self.qrsQueueSize:
startCmd += " --env queueSize=" + str(self.qrsQueueSize)
if self.qrsThreadNum:
startCmd += " --env threadNum=" + str(self.qrsThreadNum)
if self.naviThreadNum:
startCmd += " --env naviThreadNum=" + str(self.naviThreadNum)
if self.threadNumScaleFactor:
startCmd += " --env threadNumScaleFactor=" + str(self.threadNumScaleFactor)
if self.aggName:
startCmd += " --env defaultAgg=" + self.aggName
if self.basicTuringBizNames:
startCmd += " --env basicTuringBizNames=" + self.basicTuringBizNames
if self.basicTuringPrefix:
startCmd += " --env basicTuringPrefix=" + self.basicTuringPrefix
if self.paraSearchWays:
startCmd += " --env paraSearchWays=" + self.paraSearchWays
if self.disableSql:
startCmd += " --env disableSql=true"
if self.disableSqlWarmup:
startCmd += " --env disableSqlWarmup=true"
if self.kmonSinkAddress:
startCmd += " --env kmonitorSinkAddress=" + self.kmonSinkAddress
if self.specialCatalogList:
startCmd += " --env specialCatalogList=" + str(self.specialCatalogList)
if self.forceTabletLoad:
startCmd += " --env force_tablet_load=true"
if self.enableLocalAccess:
startCmd += " --env enableLocalAccess=true"
startCmd += " --env rewriteLocalBizNameType=sql"
if self.enableMultiPartition:
startCmd += " --env enableMultiPartition=true"
if self.enableUpdateCatalog and not self.disableSql:
startCmd += " --env enableUpdateCatalog=true"
if self.enableLocalCatalog and not self.disableSql:
startCmd += " --env enableLocalCatalog=true"
if self.onlySql:
startCmd += " --env onlySql=true"
if (self.tabletInfos):
if self.mode:
startCmd += " --env mode=" + self.mode
if self.zkRoot:
startCmd += " --env zk_root=" + self.zkRoot
if self.leaderElectionStrategyType:
startCmd += " --env leader_election_strategy_type=" + self.leaderElectionStrategyType
if self.leaderElectionConfig:
startCmd += " --env leader_election_config=" + "'" + self.leaderElectionConfig + "'"
if self.versionSyncConfig:
startCmd += " --env version_sync_config=" + "'" + self.versionSyncConfig + "'"
startCmd += ' -d -n 1>>%s 2>>%s ' % (os.path.join(self.localSearchDir, "qrs.stdout.out"),
os.path.join(self.localSearchDir, "qrs.stderr.out"))
os.chdir(rundir)
print "start qrs cmd: %s" % startCmd
os.system(startCmd)
time.sleep(0.1)
terminator = TimeoutTerminator(5)
while not terminator.is_timeout():
pids = self.getPids(rundir)
if len(pids) == 1:
break
time.sleep(0.1)
if len(pids) != 1:
print "start qrs process failed, cmd [%s]" % startCmd
return False
else:
print "start qrs process success, pid [%d]" % pids[0]
pid = pids[0]
f = open(self.pidFile, 'a+')
f.write("%d %s\n" % (pid, rundir))
f.close()
self.wait_load(rundir)
http_port, arpc_port, grpc_port = self.get_listen_ports(rundir)
self.qrs_port_list = (http_port, arpc_port, grpc_port)
with open(self.portFile, 'w') as portFile:
portFile.write('%s %s\n' % (http_port, arpc_port))
return True