【问题标题】:Windows: Apache Spark History Server ConfigWindows:Apache Spark 历史服务器配置
【发布时间】:2020-08-09 10:49:36
【问题描述】:

我想使用 Spark 的历史服务器来利用我的 Web UI 的日志记录机制,但我发现在我的 Windows 机器上运行此代码有些困难。

我做了以下事情:

设置我的 spark-defaults.conf 文件以反映

spark.eventLog.enabled=true
spark.eventLog.dir=file://C:/spark-1.6.2-bin-hadoop2.6/logs
spark.history.fs.logDirectory=file://C:/spark-1.6.2-bin-hadoop2.6/logs

我的 spark-env.sh 反映:

SPARK_LOG_DIR    "file://C:/spark-1.6.2-bin-hadoop2.6/logs"
SPARK_HISTORY_OPTS   "-Dspark.history.fs.logDirectory=file://C:/spark-1.6.2-bin-hadoop2.6/logs"

我正在使用 Git-BASH 运行 start-history-server.sh 文件,如下所示:

USERA@SYUHUH MINGW64 /c/spark-1.6.2-bin-hadoop2.6/sbin
$ sh start-history-server.sh

而且,我得到了这个错误:

USERA@SYUHUH MINGW64 /c/spark-1.6.2-bin-hadoop2.6/sbin
$ sh start-history-server.sh
C:\spark-1.6.2-bin-hadoop2.6/conf/spark-env.sh: line 69: SPARK_LOG_DIR: command not found
C:\spark-1.6.2-bin-hadoop2.6/conf/spark-env.sh: line 70: SPARK_HISTORY_OPTS: command not found
ps: unknown option -- o
Try `ps --help' for more information.
starting org.apache.spark.deploy.history.HistoryServer, logging to C:\spark-1.6.2-bin-hadoop2.6/logs/spark--org.apache.spark.deploy.history.HistoryServer-1-SGPF02M9ZB.out
ps: unknown option -- o
Try `ps --help' for more information.
failed to launch org.apache.spark.deploy.history.HistoryServer:
  Spark Command: C:\Program Files (x86)\Java\jdk1.8.0_91\bin\java -cp C:\spark-1.6.2-bin-hadoop2.6/conf\;C:\spark-1.6.2-bin-hadoop2.6/lib/spark-assembly-1.6.2-hadoop2.6.0.jar;C:\spark-1.6.2-bin-hadoop2.6\lib\datanucleus-api-jdo-3.2.6.jar;C:\spark-1.6.2-bin-hadoop2.6\lib\datanucleus-core-3.2.10.jar;C:\spark-1.6.2-bin-hadoop2.6\lib\datanucleus-rdbms-3.2.9.jar -Xms1g -Xmx1g org.apache.spark.deploy.history.HistoryServer
  ========================================
full log in C:\spark-1.6.2-bin-hadoop2.6/logs/spark--org.apache.spark.deploy.history.HistoryServer-1-SGPF02M9ZB.out

输出的完整日志可以在下面找到:

Spark Command: C:\Program Files (x86)\Java\jdk1.8.0_91\bin\java -cp C:\spark-1.6.2-bin-hadoop2.6/conf\;C:\spark-1.6.2-bin-hadoop2.6/lib/spark-assembly-1.6.2-hadoop2.6.0.jar;C:\spark-1.6.2-bin-hadoop2.6\lib\datanucleus-api-jdo-3.2.6.jar;C:\spark-1.6.2-bin-hadoop2.6\lib\datanucleus-core-3.2.10.jar;C:\spark-1.6.2-bin-hadoop2.6\lib\datanucleus-rdbms-3.2.9.jar -Xms1g -Xmx1g org.apache.spark.deploy.history.HistoryServer
========================================

我正在运行一个 sparkR 脚本,在该脚本中初始化我的 spark 上下文,然后调用 init()。

请告知我是否应该在运行我的 spark 脚本之前运行历史服务器?

将不胜感激继续进行(关于日志记录)的指针和提示。

【问题讨论】:

    标签: windows git bash apache-spark apache-spark-sql


    【解决方案1】:

    在 Windows 上,您需要运行 Spark 的 .cmd 文件,而不是 .sh。据我所见,Spark 历史服务器没有 .cmd 脚本。所以基本上它需要手动运行。

    我已遵循历史服务器 Linux 脚本,为了在 Windows 上手动运行它,您需要执行以下步骤:

    • 所有历史服务器配置都应在 spark-defaults.conf 文件中设置(删除 .template 后缀),如下所述
    • 您应该转到 spark config 目录并将 spark.history.* 配置添加到 %SPARK_HOME%/conf/spark-defaults.conf。如下:

      spark.eventLog.enabled true spark.history.fs.logDirectory file:///c:/logs/dir/path

    • 配置完成后,从 %SPARK_HOME% 运行以下命令

      bin\spark-class.cmd org.apache.spark.deploy.history.HistoryServer

    • 输出应该是这样的:

      16/07/22 18:51:23 INFO Utils: Successfully started service on port 18080. 16/07/22 18:51:23 INFO HistoryServer: Started HistoryServer at http://10.0.240.108:18080 16/07/22 18:52:09 INFO ShutdownHookManager: Shutdown hook called

    希望对您有所帮助! :-)

    【讨论】:

    • 我听从了您的建议并更改了行以反映“export..”,现在我收到此错误:C:\spark-1.6.2-bin-hadoop2.6/conf/spark-env .sh:第 69 行:导出:file://C:/spark-1.6.2-bin-hadoop2.6/logs': not a valid identifier & spark-env.sh: line 70: export: -spark.history.fs.logDirectory=file://C:/spark-1.6.2-bin-hadoop2.6/logs':不是有效标识符。 "
    • 我不确定我在这里缺少什么。我创建了一个“日志”目录并在我的应用程序启动之前运行历史服务器命令..
    • 现在我知道您正在 Windows 上运行。 spark-env.sh 是一个 Linux 脚本。我已经相应地修改了我的答案。另请注意,文件路径格式缺少“/”。应该是三个'/'。我已经在我的答案中改变了它。为了测试,我也会尝试将它放在不同的目录中,并确保我拥有所有相关权限。
    • 感谢您的回信。按照建议,我只对我的 spark-defaults.conf 文件进行了更改。它只包含以下行: spark.eventLog.enabled true spark.eventLog.dir file:///C:/spark-1.6.2-bin-hadoop2.6/logs spark.history.fs.logDirectory file:/// C:/spark-1.6.2-bin-hadoop2.6/logs & 当我使用 gitbash 运行我的“sh start-history-server.sh”命令时,我收到错误为“ps: unknown option -- o.
    【解决方案2】:

    万一有人遇到异常:

    17/05/12 20:27:50 ERROR FsHistoryProvider: Exception encountered when attempting
     to load application log file:/C:/Spark/Logs/spark--org.apache.spark.deploy.hist
    ory.HistoryServer-1-Arsalan-PC.out
    java.lang.IllegalArgumentException: Codec [out] is not available. Consider setti
    ng spark.io.compression.codec=snappy
            at org.apache.spark.io.CompressionCodec$$anonfun$createCodec$1.apply(Com
    

    只需转到 SparkHome/config/spark-defaults.conf 并设置 spark.eventLog.compress false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多