【问题标题】:How to enable glue logging for AWS Glue script only如何仅为 AWS Glue 脚本启用粘合日志记录
【发布时间】:2021-03-02 07:48:25
【问题描述】:

我正在努力为仅使用 PySpark 的 Glue 脚本启用调试日志记录。

我试过了:

import...

def quiet_logs(sc):
    logger = sc._jvm.org.apache.log4j
    logger.LogManager.getLogger("org").setLevel(logger.Level.ERROR)
    logger.LogManager.getLogger("akka").setLevel(logger.Level.ERROR)


def main():

    # Get the Spark Context
    sc = SparkContext.getOrCreate()
    sc.setLogLevel("DEBUG")
    quiet_logs(sc)

    context = GlueContext(sc)
    logger = context.get_logger()

    logger.debug("I only want to see this..., and for all others, only ERRORS")
    ...

我已将“--enable-continuous-cloudwatch-log”设置为 true,但根本无法获取日志跟踪以仅为我自己的脚本编写调试消息。

【问题讨论】:

    标签: amazon-web-services pyspark


    【解决方案1】:

    我还没有完全按照您的要求做,但我可以通过设置一个单独的自定义日志来做类似的事情,这可能会实现您所追求的。

    import os
    from watchtower import CloudWatchLogHandler
    import logging
    
    
    args = getResolvedOptions(sys.argv,["JOB_RUN_ID"])
    
    job_run_id = args["JOB_RUN_ID"]
    
    os.environ["AWS_DEFAULT_REGION"] = "eu-west-1"
    lsn = f"{job_run_id}_custom"
    cw = CloudWatchLogHandler(
        log_group="/aws-glue/jobs/logs-v2", stream_name=lsn, send_interval=4
    )
    slog = logging.getLogger()
    slog.setLevel(logging.DEBUG)
    slog.handlers = []
    slog.addHandler(cw)
    slog.info("hello from the custom logger")
    

    现在您登录到 slog 的任何内容都将进入一个单独的记录器,可作为“输出”日志中的条目之一访问

    请注意,当您运行胶水作业时,您需要将瞭望塔作为--additional-python-modules 包含在内

    更多信息here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2015-08-31
      • 2022-01-01
      相关资源
      最近更新 更多