• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 0445-如何為Spark應用啟用Kerberos的Debug日志

    標簽: Hadoop實操

    溫馨提示:如果使用電腦查看圖片不清晰,可以使用手機打開文章單擊文中的圖片放大查看高清原圖。
    Fayson的github:
    https://github.com/fayson/cdhproject
    提示:代碼塊部分可以左右滑動查看噢

    1

    文檔編寫目的

    在CDH集群啟用了Kerberos后,在執行Spark作業時難免會遇到由于Kerberos認證問題導致作業運行失敗的時候,那我們需要針對Spark作業進行調試,通過一些Debug日志查看認證失敗的原因。本篇文章Fayson主要介紹如何為Spark的Driver和Executor的JVM啟用Kerberos的Debug日志。

    • 內容概述

    1.啟用Kerberos的Debug日志

    2.示例運行

    3.總結

    • 測試環境

    1.CM和CDH版本為5.15

    2

    啟用Kerberos的Debug日志

    Spark的運行環境Java環境,在為Spark的Driver和Executor啟用Kerberos的Debug日志時,可以通過配置通用的Java屬性“sun.security.krb5.debug=true”。可以在Java的運行命令中增加參數“-D sun.security.krb5.debug=true”,在運行時啟用該屬性。

    對于Spark,需要在Spark的屬性中將這些Java命令行屬性分別傳遞給Driver和Executor對應的JVM,方式如下;

    1.Spark Driver啟用Kerberos的Debug日志,添加如下參數

    spark.driver.extraJavaOptions=-Dsun.security.krb5.debug=true
    

    2.Spark Executor啟用Kerberos的Debug日志,添加如下參數

    spark.executor.extraJavaOptions=-Dsun.security.krb5.debug=true
    

    3

    配置Debug日志輸出

    默認的Spark log4j配置是將Spark日志輸出發送到stderr中,JVM不提供Kerberos的Debug日志輸出位置配置。這里為了方便日志上下文分析,我們需要為Spark Gateway增加如下配置,將JVM中Kerberos的Debug日志輸出到Spark的日志中。

    1.登錄Cloudera Manager并進入Spark的配置頁面

    2.在搜索框輸入“log4j.properties”,在配置項中增加如下配置:

    log4j.appender.console.target=System.out
    

    3.保存配置并重新部署Spark的Gateway客戶端

    4

    運行示例測試

    1.在命令行向集群提交Spark作業,命令如下:

    spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --conf "spark.driver.extraJavaOptions=-Dsun.security.krb5.debug=true" --conf "spark.executor.extraJavaOptions=-Dsun.security.krb5.debug=true" /opt/cloudera/parcels/CDH/lib/spark/lib/spark-examples.jar 10
    

    2.查看Yarn作業執行日志

    5

    總結

    1. Spark運行環境依賴于Java,因此在為Spark應用的Driver和Executor啟用Kerberos的Debug日志時,只需要將Java通用屬性sun.security.krb5.debug=true傳遞給Driver和Executor的運行環境即可。

    2.默認的Spark日志輸出文件為stderr,JVM并為提供Kerberos的Debug日志輸出文件配置,需要在Spark的Gateway日志配置中增加log4j的配置。

    3.由此配置方式,我們也可以為Driver和Executor配置其它的JVM運行參數,如垃圾回收等調優的參數。

    提示:代碼塊部分可以左右滑動查看噢
    為天地立心,為生民立命,為往圣繼絕學,為萬世開太平。
    溫馨提示:如果使用電腦查看圖片不清晰,可以使用手機打開文章單擊文中的圖片放大查看高清原圖。

    推薦關注Hadoop實操,第一時間,分享更多Hadoop干貨,歡迎轉發和分享。

    版權聲明:本文為Hadoop_SC原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/Hadoop_SC/article/details/104350359

    智能推薦

    CDH啟用kerberos認證

    文章目錄 1,集群架構 a, kerberos: 命令行工具 b, kadmin命令行: 修改賬號密碼, 導出keytab認證文件 2, 安裝kerberos服務 3, CDH集群啟用kerberos a, Administrator: security b, Enable Kerberos c, 確認并勾選 d, 填寫kdc信息 e, 略過CDH管理kerberos, 填寫CDH管理員賬號 4,...

    kafka啟用Kerberos認證

    kafka啟用Kerberos認證 1.環境準備 1.1.建用戶 創建用戶組 ywjk groupadd ywjk 新增用戶 useradd -g ywjk ywjk 設置密碼 passwd ywjk 1.2.上傳kafk壓縮包 從官網下載kafka壓縮包,這里用的是kafka_2.11-0.10.2.2.tgz 上傳kafka壓縮包,利用git客戶端從windows客戶端上傳至每臺linux主機...

    Java Api Consumer 連接啟用Kerberos認證的Kafka

    java程序連接到一個需要Kerberos認證的kafka集群上,消費生產者生產的信息,kafka版本是2.10-0.10.0.1; Java程序以maven構建,(怎么構建maven工程,可去問下度娘:“maven工程入門示例”) 先上pom.xml文件 然后是Jave代碼,先上圖,一一解釋圖中標識: 注釋:     1:可以將所需的配置文件加載到程序...

    如何為線上正在運行的服務的某個類加條日志?

    文章目錄 前言 如何為正在飛馳的汽車換輪子 要把大象裝冰箱,一共分幾步 JVM加載class文件過程 類加載時機 類加載器 如何替換JVM上正在運行的class文件 java.lang.instrument.Instrumentation 如何替換服務器上正在運行的class文件 直接操作字節碼修改class BTrace 總結 前言 請您思考這樣一個問題:如何為線上服務的某個類加條日志? 您可能...

    【Kerberos】ambari啟用kerberos 報錯處理

    文章目錄 一、 ambari中啟用kerberos報錯Invalid KDC administrator credentials. Please enter admin principal and password. 二、Can not fetch master key (error: No such file or directory). while initializing kadmin.lo...

    猜你喜歡

    基于 Kerberos 認證的 Hadoop Token 過期問題 Debug 過程

    1 Kerberos Kerberos是誕生于上個世紀90年代的計算機認證協議,被廣泛應用于各大操作系統和Hadoop生態系統中。了解Kerberos認證的流程將有助于解決Hadoop集群中的安全配置過程中的問題。 1.1 Kerberos可以用來做什么 簡單地說,Kerberos提供了一種單點登錄(SSO)的方法。考慮這樣一個場景,在一個網絡中有不同的服務器,比如,打印服務器、郵件服務器和文件服...

    hive 導出數據之一列多行,轉為一行多列

    需求:提取數據 說明:原數據是一列多行,需要轉化為一行多列 待查詢表為:temp_05 待查詢數據為: 待查詢數據如圖: 需要提取的數據表頭如下: 預定日期 昨日價格 前天價格 2018-02-01 2018-02-02 2018-02-03 2018-02-04 可用提數 SQL 數據如圖: 以下為嘗試過程 數據如圖: 數據如圖: 數據如圖: 數據如圖:...

    asp.net做一個簡易的聊天室

    要求: 結果: 關鍵代碼: Default.aspx Default.aspx.cs Default2.aspx Default2.aspx.cs Default3.aspx Default3.aspx.cs Default4.aspx...

    動態SQL和多表關聯-筆記

    《動態SQL與多表關聯》筆記 學習目標 能夠使用動態SQL完成SQL拼接 能夠使用resultMap完成多表查詢 能夠使用一對一查詢 能夠使用一對多查詢 (注:多對多其實就是兩個一個多) 映射文件:為什么要resultMap 目標 定義結果映射 使用結果映射 回顧 在mybatis中有2種配置文件: 核心配置文件,如:sqlMapConfig.xml 實體類映射文件,如:UserMapper.xm...

    【OpenGL C++ UE4】獲取模型頂點及面索引數據,并優化存儲結構供UE4繪制

    目錄 一、功能需求 二、成果 三、環境配置 四、詳細步驟 4.1 Max制作三棱錐并處理 4.2 核心代碼 4.2.1 傳入結構體數據 4.2.2 頂點去重、更新索引 4.2.3 輸出本地CSV文件 4.3 UE4繪制 一、功能需求 想必你肯定會問我一個問題,UE4直接導入模型不好么? 哈哈,前提是在做畢設時,導師提供的只有頂點與面索引數據,沒有模型。 下文詳細介紹了畢設開發中的難點,涉...

    精品国产乱码久久久久久蜜桃不卡