Просмотр исходного кода

fix(dw_base): SPARK_CONF_DIR setdefault + 回退 HIVE_CONF_DIR + 删 HDP 残留注释

tianyu.chu 2 недель назад
Родитель
Сommit
de84fd2394
2 измененных файлов с 15 добавлено и 6 удалено
  1. 4 6
      dw_base/__init__.py
  2. 11 0
      kb/01-运行环境.md

+ 4 - 6
dw_base/__init__.py

@@ -13,16 +13,14 @@ def cow_says():
     os.system(f'source {PROJECT_ROOT_PATH}/bin/common/functions.sh')
 
 
-# HADOOP_CONF_DIR / HIVE_CONF_DIR:Spark on YARN + Hive metastore 定位需要
-# 缺 HADOOP_CONF_DIR → SparkSubmitArguments 启动校验失败
-# 缺 HIVE_CONF_DIR → enableHiveSupport 回落 in-memory metastore,看不到 HMS 真实库表
-# DataX JVM 不读 classpath 中的 conf,HA 由 ini [hadoop_config] 节显式注入
+# HADOOP_CONF_DIR:spark-submit 启动 YARN 校验需要;DataX JVM 不读 classpath conf,HA 由 ini [hadoop_config] 节显式注入
 os.environ['HADOOP_CONF_DIR'] = '/etc/hadoop/conf'
-os.environ['HIVE_CONF_DIR'] = '/etc/hive/conf'
+# SPARK_CONF_DIR:pip pyspark 默认指向自身空 conf/,显式指到集群配置才能加载 hive-site.xml,否则 enableHiveSupport 回落 in-memory metastore
+os.environ.setdefault('SPARK_CONF_DIR', '/etc/spark/conf')
+# os.environ['HIVE_CONF_DIR'] = '/etc/hive/conf'
 # os.environ['JAVA_HOME'] = '/usr/local/java'
 os.environ["PYSPARK_DRIVER_PYTHON"] = "/usr/bin/python3"
 os.environ["PYSPARK_PYTHON"] = "/usr/bin/python3"
-# os.environ['SPARK_HOME'] = '/usr/hdp/3.1.5.0-152/spark2'
 os.environ['PYTHONUNBUFFERED'] = 'x'
 PROJECT_ROOT_PATH = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
 PROJECT_NAME = os.path.basename(PROJECT_ROOT_PATH)

+ 11 - 0
kb/01-运行环境.md

@@ -71,3 +71,14 @@
 | `n1` ~ `n4` | Worker(存算一体) | DataNode + NodeManager + Impala Daemon;任务实际执行节点 |
 
 > 详细角色分配、硬件配置由大数据负责人及运维人员维护。开发只需要知道任务最终跑在 n1-n4 上,Driver 前期集中在 m2。
+
+## 4. Spark 运行时环境变量
+
+Spark 作业正常跑通依赖两个环境变量指到集群配置目录,`dw_base/__init__.py` 在导入时设默认值,shell 侧若已 export 则以外部值为准:
+
+| 环境变量 | 默认值 | 作用 |
+|---------|--------|------|
+| `HADOOP_CONF_DIR` | `/etc/hadoop/conf` | spark-submit 启动 YARN 校验;NameNode HA / RM HA 解析 |
+| `SPARK_CONF_DIR` | `/etc/spark/conf` | 加载 `spark-env.sh` + `hive-site.xml`,否则 `enableHiveSupport` 静默回落 in-memory metastore,看不到 HMS 真实库表 |
+
+后续若出现其他运行期外配(连接串、容量参数、密钥路径等),统一在此节登记约定来源与默认行为。