Java 无法停止Kerberos调试日志记录

Java 无法停止Kerberos调试日志记录,java,apache-spark,kerberos,Java,Apache Spark,Kerberos,我正在使用一个支持Kerberos的Spark群集来运行Spark应用程序。Kerberos以前是由组织的其他成员设置的,我不知道它是如何工作的。在最初的几天里,我们使用Kerberos调试日志来理解异常“无法从用户处获取密码”,这是由于jre security的cacerts文件夹中缺少JCE证书而引发的。但是,我们不再需要日志,因此使用-Dsun.security.krb5.debug=false参数来禁用日志记录。然而,这并没有产生任何效果。有没有其他参数可以做到这一点?请帮帮我。摘自Gi

我正在使用一个支持Kerberos的Spark群集来运行Spark应用程序。Kerberos以前是由组织的其他成员设置的,我不知道它是如何工作的。在最初的几天里,我们使用Kerberos调试日志来理解异常“无法从用户处获取密码”,这是由于jre security的cacerts文件夹中缺少JCE证书而引发的。但是,我们不再需要日志,因此使用-Dsun.security.krb5.debug=false参数来禁用日志记录。然而,这并没有产生任何效果。有没有其他参数可以做到这一点?请帮帮我。

摘自GitBook“Hadoop和Kerberos:门外的疯狂”,Steve Loughran,第章

JVM库日志记录 您可以在-Dsun.security.krb5.debug=true

这不是通过Log4J或java.util日志记录出来的;就这么来了 在控制台上。这有点不方便,但请记住 他们在系统的一个非常低级的部分进行日志记录。确实如此 至少有一个日志。如果你发现自己处于这一水平,你就陷入了困境 麻烦记住这一点

如果您想调试另一个系统SPNEGO中发生的事情 属性允许您启用此选项:
-Dsun.security.spnego.debug=true

您可以在
HADOOP\u OPTS
环境变量
export HADOOP\u OPTS=“-Dsun.security.krb5.debug=true-Dsun.security.spnego.debug=true”

Hadoop端JAAS调试 将env变量
HADOOP\u JAAS\u DEBUG
设置为true,UGI将设置 它创建的任何JAAS文件上的“debug”标志

在发布hadoop、hdfs或Thread之前,您可以在客户机上执行此操作 命令,并在服务的环境脚本中将其设置为 把它打开
export HADOOP\u JAAS\u DEBUG=true

在下一个Hadoop命令中,您将看到类似(……)的跟踪

警告:以
sun.security.
开头的Java属性适用于sun/Oracle Java运行时,也适用于OpenJDK运行时及其变体。但不适用于IBM Java等


摘自Java 8文档的

如果要监视安全访问,可以设置
java.security.debug
系统属性
(…….)用逗号分隔多个选项

特别是在对Kerberos进行故障排除时,我个人使用这种组合:
-Djava.security.debug=gssloginconfig、configfile、configparser、logincontext


摘自Oracle工具/启动器一节

JDK 9支持一个新的环境变量
JDK_JAVA_OPTIONS
to 将选项前置到命令行上指定的选项。新的 与环境变量相比,环境变量有几个优点 传统/不受支持的
\u JAVA\u选项
环境变量,包括 能够包括java启动器选项(…)

这两个env变量是注入Java系统属性的一种非常肮脏(而且非常难以检测)的方式,而不让它们出现在命令行上


这对你意味着什么?好的,您必须搜索多个Java系统道具和环境变量,它们可能被设置

  • 对于环境变量:全局(cf.
    /etc/profile.d/*.sh
    ),或帐户级别(cf.
    ~/.bashrc
    和朋友),或Hadoop内部的“包含文件”,或直接在运行Spark作业的shell脚本中
  • 对于系统道具:在以后在shell脚本(…)中开发的任何shell或env变量中,或在Java启动时拾取的任何env var中,或在Thread配置文件中(在Thread上使用Spark时),或直接在Java命令行上开发
祝你好运。
我个人会运行一个虚拟的Spark作业,它只转储所有环境变量和Java系统道具;然后检查垃圾场,以检测要搜索的内容;然后运行蛮力
查找-在Linux文件系统上执行grep…
(根据需要重复)。

摘自GitBook“Hadoop和Kerberos:大门之外的疯狂”,Steve Loughran,第章

JVM库日志记录 您可以在-Dsun.security.krb5.debug=true

这不是通过Log4J或java.util日志记录出来的;就这么来了 在控制台上。这有点不方便,但请记住 他们在系统的一个非常低级的部分进行日志记录。确实如此 至少有一个日志。如果你发现自己处于这一水平,你就陷入了困境 麻烦记住这一点

如果您想调试另一个系统SPNEGO中发生的事情 属性允许您启用此选项:
-Dsun.security.spnego.debug=true

您可以在
HADOOP\u OPTS
环境变量
export HADOOP\u OPTS=“-Dsun.security.krb5.debug=true-Dsun.security.spnego.debug=true”

Hadoop端JAAS调试 将env变量
HADOOP\u JAAS\u DEBUG
设置为true,UGI将设置 它创建的任何JAAS文件上的“debug”标志

在发布hadoop、hdfs或Thread之前,您可以在客户机上执行此操作 命令,并在服务的环境脚本中将其设置为 把它打开
export HADOOP\u JAAS\u DEBUG=true

在下一个Hadoop命令中,您将看到类似(……)的跟踪

警告:以
sun.security.
开头的Java属性适用于sun/Oracle Java运行时,也适用于OpenJDK运行时及其变体。但不适用于IBM Java等


摘自Java 8文档的

如果要监视安全访问,可以设置
java.security.debug
系统属性
(…….)用逗号分隔多个选项。