国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【斬蟲】Hadoop中作業(yè)執(zhí)行剛開始就掛掉的兩種情況

這篇具有很好參考價值的文章主要介紹了【斬蟲】Hadoop中作業(yè)執(zhí)行剛開始就掛掉的兩種情況。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

開門見山。

最近在搭建基于 Hadoop 3.3.6 的高可用集群時,遇到了雖然守護(hù)進(jìn)程能正常啟動,但是提交 WordCount 示例程序后作業(yè)沒有辦法啟動執(zhí)行的情況(剛開始就掛了),查看日志發(fā)現(xiàn)主要是以下兩種情況:

  1. 提示 /bin/java 文件不存在。

    bash: /bin/java: No such file or directory  
    
  2. 啟動 MRAppMaster 失敗,原因是其拋出了 java.lang.reflect.InaccessibleObjectException 異常。

    java.lang.reflect.InaccessibleObjectException: Unable to make ... accessible: module java.base does not "opens java.lang" to unnamed module @...
    

這里簡單寫一下二者的解決方法。

1. /bin/java 不存在

字面上看是 Bash 找不到可執(zhí)行文件 /bin/java ,但細(xì)想一下,無論是在 hadoop-env.sh 還是 yarn-env.sh 亦或者 yarn-site.xmlyarn.nodemanager.env-whitelist 配置中,我全都加上了 JAVA_HOME 的相關(guān)環(huán)境變量配置,我在任何地方都沒有寫過 /bin/java 這個路徑,就有點令人匪夷所思了。

但在看了 NodeManager 執(zhí)行作業(yè)時生成的默認(rèn)容器啟動腳本 launch_container.sh 后就能發(fā)現(xiàn)其末尾寫著這樣的語句(這個腳本的位置可以參考下方):

echo "Launching container"
exec /bin/bash -c "$JAVA_HOME/bin/java ... -Xmx1024m org.apache.hadoop.mapreduce.v2.app.MRAppMaster ...

顯而易見,這里因為 $JAVA_HOME 環(huán)境變量沒有傳遞進(jìn)腳本,導(dǎo)致 bash 實際執(zhí)行的是 /bin/java。


怎么解決這個問題?最粗暴的方式是直接給 Java 創(chuàng)建一個軟鏈 /bin/java (網(wǎng)上很多復(fù)制粘貼的帖子給出的方法),這樣做雖然能跑,但其實沒觸及根本的問題。

還有一種方法是直接在 Hadoop安裝目錄/libexec/hadoop-config.sh 中導(dǎo)出一個 JAVA_HOME 環(huán)境變量。(網(wǎng)上的帖子里還有修改這里某個條件判斷語句的解決方案,但是在 Hadoop 新版中這部分代碼已經(jīng)重構(gòu)了)

我真的好想找出問題的根源哇!(╯▔皿▔)╯ 回去檢查配置文件,我也沒看出什么問題,該配置的都配置了。

到底還是偶然看到的 StackOverflow 的一位老哥點明了我(鏈接):

“不要在屬性值中換行”

回去檢查了一下我的 yarn-site.xml 配置,發(fā)現(xiàn) VSCode 格式化工具幫我格式化成了這個樣子:

去掉開頭的換行符,改成 <value>JAVA_HOME, ...</value> 就能把這個問題給解決了...原來是值中出現(xiàn)額外字符而導(dǎo)致的,哭笑不得。

2. java.lang.reflect.InaccessibleObjectException

這個異常貼到網(wǎng)上倒是能找到很多類似的解決方案,即加上 Java 選項 --add-opens java.base/java.lang=ALL-UNNAMED ,但大多是圍繞 ResourceManager, NodeManager 啟動時的情況。

問題就在于這里 MRAppMaster 的啟動參數(shù)位于 launch_container.sh 中,因而我需要找到辦法在腳本的這一句中加入 Java 選項:

exec /bin/bash -c "$JAVA_HOME/bin/java ... -Xmx1024m org.apache.hadoop.mapreduce.v2.app.MRAppMaster ...

在官方文檔里按 java opts 這種關(guān)鍵詞查了半天沒找著,轉(zhuǎn)變思路用 MRAppMaster 搜索,還真就給我找著了。在 mapred-site.xml 配置中有這樣一個屬性(文檔鏈接):

屬性名 默認(rèn)值 說明
yarn.app.mapreduce.am.command-opts -Xmx1024m Java opts for the MR App Master processes....

正好就是 MRAppMaster 進(jìn)程啟動時的 Java 選項,在 mapred-site.xml 中加入如下屬性配置即可:

<property>
    <name>yarn.app.mapreduce.am.command-opts</name>
    <!--保留了 -Xmx1024 -->
    <value>--add-opens java.base/java.lang=ALL-UNNAMED -Xmx1024m</value>
    <description>MR App Master 進(jìn)程的 Java 參數(shù)</description>
</property>

附: 找到 Job 執(zhí)行對應(yīng)容器 (Container) 的執(zhí)行日志

首先執(zhí)行一個作業(yè)(Job),然后在集群某臺機器中找到其對應(yīng)的 Application:

# 找到 Job 對應(yīng)的 Application
yarn application -list -appStates=ALL

返回內(nèi)容大概是這樣:

Total number of applications (application-types: [], states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED] and tags: []):2
                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
application_1707118501768_0002	          word count	           MAPREDUCE	      root	   default	          FINISHED	         SUCCEEDED	           100%	http://shworker1:19888/jobhistory/job/job_1707118501768_0002

找到 applicationId 后,查詢這個應(yīng)用在哪臺機器上執(zhí)行:

yarn application -status application_1707118501768_0002

返回內(nèi)容大概是這樣:

Application Report : 
	Application-Id : application_1707118501768_0002
	Application-Name : word count
	Application-Type : MAPREDUCE
	User : root
	Queue : default
	Application Priority : 0
	Start-Time : 1707120843501
	Finish-Time : 1707120865825
	Progress : 100%
	State : FINISHED
	Final-State : SUCCEEDED
	Tracking-URL : http://shworker1:19888/jobhistory/job/job_1707118501768_0002
	RPC Port : 42097
	AM Host : shworker1
	Aggregate Resource Allocation : 52071 MB-seconds, 35 vcore-seconds
	Aggregate Resource Preempted : 0 MB-seconds, 0 vcore-seconds
	Log Aggregation Status : DISABLED
	Diagnostics : 
	Unmanaged Application : false
	Application Node Label Expression : <Not set>
	AM container Node Label Expression : <DEFAULT_PARTITION>
	TimeoutType : LIFETIME	ExpiryTime : UNLIMITED	RemainingTime : -1seconds

其中 AM Host 即為應(yīng)用執(zhí)行所在主機,這里是 shworker1

在主機 shworker1 上進(jìn)入Hadoop的日志目錄,這個日志目錄默認(rèn)是 ${HADOOP_HOME}/logs 。其中會有一個子目錄 userlogs,在這個目錄內(nèi)你就能找到 application_1707118501768_0002 的 Container 日志了:文章來源地址http://www.zghlxwxcb.cn/news/detail-825428.html

到了這里,關(guān)于【斬蟲】Hadoop中作業(yè)執(zhí)行剛開始就掛掉的兩種情況的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 解決jupyter notebook使用matplotlib畫圖時內(nèi)核掛掉的問題

    在筆記本開頭添加下列代碼: ?os.environ[“kmp_duplicate_lib_ok”]=“true\\\"是Python中設(shè)置環(huán)境變量的一種方式。該語句將\\\"kmp_duplicate_lib_ok\\\"這個環(huán)境變量的值設(shè)置為\\\"true”。 在Python中,os.environ是一個字典對象,用于訪問和修改當(dāng)前進(jìn)程的環(huán)境變量。通過設(shè)置環(huán)境變量,我們可以在程序

    2024年02月21日
    瀏覽(25)
  • MAC M1:解決在jupyter中引入tensorflow內(nèi)核似乎掛掉的問題

    MAC M1:解決在jupyter中引入tensorflow內(nèi)核似乎掛掉的問題

    我的設(shè)備:Macbook air M1; macOS?12.3 考慮到大家遇到這個問題,通常是已經(jīng)安裝好anaconda與jupyter了。因此直接講我的操作 一.打開終端,重新創(chuàng)建一個tensorflow環(huán)境: 二.由于新創(chuàng)建的虛擬環(huán)境沒有jupyter,需要重新安裝。 這里有兩種方法: 1.使用pip安裝 2.直接使用anaconda安裝,

    2023年04月20日
    瀏覽(28)
  • flink執(zhí)行任務(wù)運行10h以后掛掉并且報錯

    flink執(zhí)行任務(wù)運行10h以后掛掉并且報錯

    問題描述 flink運行jar包任務(wù),運行幾個小時或者1天以后,任務(wù)就會掛掉!??! 第一個錯誤是 2023-02-01 23:43:08,083 INFO org.apache.flink.runtime.executiongraph.ExecutionGraph [] - Window(TumblingEventTimeWindows(60000), EventTimeTrigger, getHvcDownLine) - Sink: Unnamed (1/1) (8672ad64cfc4ddce37756e60242432be) switched from RUN

    2024年02月10日
    瀏覽(19)
  • Hadoop作業(yè)篇(一)

    一、選擇題 1. 以下哪一項不屬于Hadoop可以運行的模式__C____。 A. 單機(本地)模式 B. 偽分布式模式 C. 互聯(lián)模式 D. 分布式模式 C. 互聯(lián)模式 不屬于Hadoop可以運行的模式。 Hadoop主要有四種運行模式: A. 單機(本地)模式:在單個計算機上運行,適用于開發(fā)和測試。 B. 偽分布式

    2024年02月06日
    瀏覽(16)
  • UE5.1.1 C++從0開始(15.作業(yè)4個人作業(yè)分享)

    UE5.1.1 C++從0開始(15.作業(yè)4個人作業(yè)分享)

    教程鏈接:https://www.bilibili.com/video/BV1nU4y1X7iQ 好吧這個作業(yè)應(yīng)該是之前寫的,但是我發(fā)現(xiàn)我沒寫,后面我又回去自己寫了一遍再看代碼,感覺上大差不差,各位可以看著我的和老師的還有自己的對比下。 SBTService_CheckHealth.h SBTService_CheckHealth.cpp SBTTask_HealSelf.h SBTTask_HealSelf.cpp 行

    2024年02月11日
    瀏覽(43)
  • Spark 作業(yè)執(zhí)行流程

    Spark 作業(yè)執(zhí)行流程

    Spark的基本組件,包括負(fù)責(zé)集群運行的Master和Worker,負(fù)責(zé)作業(yè)運行的Client和Driver,以及負(fù)責(zé)集群資源管理器(如YARN)和執(zhí)行單元Executor等。 從架構(gòu)層面上來說,每一個Spark Application都由控制集群的主控節(jié)點Master、負(fù)責(zé)集群資源管理的Cluster Manager、執(zhí)行具體任務(wù)的Worker節(jié)點和執(zhí)

    2024年02月09日
    瀏覽(22)
  • 【數(shù)據(jù)庫】執(zhí)行計劃中的兩趟算法機制原理,基于排序算法來分析,算法的限制,執(zhí)行代價以及優(yōu)化

    【數(shù)據(jù)庫】執(zhí)行計劃中的兩趟算法機制原理,基于排序算法來分析,算法的限制,執(zhí)行代價以及優(yōu)化

    ? 專欄內(nèi)容 : 手寫數(shù)據(jù)庫toadb 本專欄主要介紹如何從零開發(fā),開發(fā)的步驟,以及開發(fā)過程中的涉及的原理,遇到的問題等,讓大家能跟上并且可以一起開發(fā),讓每個需要的人成為參與者。 本專欄會定期更新,對應(yīng)的代碼也會定期更新,每個階段的代碼會打上tag,方便階段學(xué)

    2024年02月05日
    瀏覽(26)
  • 搭建hadoop集群,從安裝虛擬機開始直到hadoop成功搭建

    搭建hadoop集群,從安裝虛擬機開始直到hadoop成功搭建

    搭建Hadoop集群 ? 一、實驗?zāi)康呐c要求 學(xué)習(xí)和掌握Hadoop的相關(guān)應(yīng)用,首先必須得學(xué)會搭建Hadoop集群。本次實驗將針對Hadoop集群的搭建內(nèi)容進(jìn)行演練。學(xué)會虛擬機的安裝和克隆,Linux系統(tǒng)的網(wǎng)絡(luò)配置和SSH配置,Hadoop集群的搭建和配置,Hadoop集群測試,熟悉Hadoop集群基本的操作。

    2023年04月08日
    瀏覽(17)
  • 頭歌大數(shù)據(jù)作業(yè)二:搭建Hadoop環(huán)境及HDFS

    頭歌大數(shù)據(jù)作業(yè)二:搭建Hadoop環(huán)境及HDFS

    課外作業(yè)二:搭建Hadoop環(huán)境及HDFS 作業(yè)詳情 內(nèi)容 阿里云-云起實驗室-《搭建Hadoop環(huán)境》-Hadoop-2.10.1偽分布式: 1.截圖本實驗ECS的公網(wǎng)IP地址,并添加彩色框標(biāo)注,如下圖所示: 2.步驟6.啟動Hadoop成功之后,截圖并添加彩色框標(biāo)注,如下圖所示 3.hdfs 根目錄創(chuàng)建文件夾(文件夾命

    2024年02月08日
    瀏覽(26)
  • 從零開始畫自己的DAG作業(yè)依賴圖(一)--前期準(zhǔn)備

    從零開始畫自己的DAG作業(yè)依賴圖(一)--前期準(zhǔn)備

    背景: 由于業(yè)務(wù)場景需要展示作業(yè)之間的依賴關(guān)系,由于一些開源的插件和當(dāng)前的業(yè)務(wù)邏輯有一些沖突,個人打算嘗試從零開始,一點點實現(xiàn)自己的DAG圖。同時用博客記錄自己實現(xiàn)過程和總結(jié),不正確的地方,歡迎指正提升。 場景分析: 數(shù)據(jù)開發(fā)中常常有作業(yè)之間的依賴,

    2024年02月05日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包