From 48bcec826c38b80b6fc41746994d094ac3103b5d Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Tue, 1 Apr 2025 14:23:33 +0200 Subject: [PATCH] PHOENIX-7523 Parse hbase-env.sh in PQS scripts, and and fall back to HBASE_OPTS in queryserver.py --- bin/phoenix_queryserver_utils.py | 25 +++++++++++++------------ bin/queryserver.py | 7 +++---- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bin/phoenix_queryserver_utils.py b/bin/phoenix_queryserver_utils.py index 2013873..de26a4b 100755 --- a/bin/phoenix_queryserver_utils.py +++ b/bin/phoenix_queryserver_utils.py @@ -23,6 +23,7 @@ import fnmatch import re import subprocess +import sys def find(pattern, classPaths): paths = classPaths.split(os.pathsep) @@ -179,18 +180,26 @@ def setPath(): logging_jar += ":"+findFileInPathWithoutRecursion(LOGGING_JAR_PATTERN2, os.path.join(current_dir, "..","lib")) logging_jar += ":"+findFileInPathWithoutRecursion(LOGGING_JAR_PATTERN3, os.path.join(current_dir, "..","lib")) - __set_java_home() + __read_hbase_env() + __set_java() __set_jvm_flags() return "" -def __set_java_home(): +def __set_java(): global hbase_env global java_home global java java_home = os.getenv('JAVA_HOME') - java = 'java' + if java_home: + java = os.path.join(java_home, 'bin', 'java') + else: + java = 'java' + +def __read_hbase_env(): + if os.getenv("SKIP_HBASE_ENV"): + return "" # HBase configuration folder path (where hbase-site.xml reside) for # HBase/Phoenix client side property override hbase_config_path = hbase_conf_dir @@ -208,18 +217,11 @@ def __set_java_home(): sys.stderr.write("hbase-env file unknown on platform {}{}".format(os.name, os.linesep)) sys.exit(-1) - hbase_env = {} if os.path.isfile(hbase_env_path): p = subprocess.Popen(hbase_env_cmd, stdout = subprocess.PIPE) for x in p.stdout: (k, _, v) = tryDecode(x).partition('=') - hbase_env[k.strip()] = v.strip() - - if 'JAVA_HOME' in hbase_env: - java_home = hbase_env['JAVA_HOME'] - - if java_home: - java = os.path.join(java_home, 'bin', 'java') + os.environ[k.strip()] = v.strip() return "" @@ -293,5 +295,4 @@ def common_sqlline_args(parser): print("java_home:", java_home) print("java:", java) print("jvm_module_flags:", jvm_module_flags) - print("hbase_env:", hbase_env) diff --git a/bin/queryserver.py b/bin/queryserver.py index 8120d9b..c8d66fa 100755 --- a/bin/queryserver.py +++ b/bin/queryserver.py @@ -83,10 +83,9 @@ phoenix_pid_file = '%s.pid' % phoenix_file_basename tmp_dir = os.path.join(tempfile.gettempdir(), 'phoenix') -hbase_env = phoenix_queryserver_utils.hbase_env -opts = os.getenv('PHOENIX_QUERYSERVER_OPTS') or hbase_env.get('PHOENIX_QUERYSERVER_OPTS') or '' -pid_dir = os.getenv('PHOENIX_QUERYSERVER_PID_DIR') or hbase_env.get('HBASE_PID_DIR') or tmp_dir -log_dir = os.getenv('PHOENIX_QUERYSERVER_LOG_DIR') or hbase_env.get('HBASE_LOG_DIR') or tmp_dir +opts = os.getenv('PHOENIX_QUERYSERVER_OPTS') or os.getenv('HBASE_OPTS') or '' +pid_dir = os.getenv('PHOENIX_QUERYSERVER_PID_DIR') or os.getenv('HBASE_PID_DIR') or tmp_dir +log_dir = os.getenv('PHOENIX_QUERYSERVER_LOG_DIR') or os.getenv('HBASE_LOG_DIR') or tmp_dir pid_file_path = os.path.join(pid_dir, phoenix_pid_file) log_file_path = os.path.join(log_dir, phoenix_log_file) out_file_path = os.path.join(log_dir, phoenix_out_file)