當前位置:首頁 » 網頁前端 » 腳本監控yarn任務
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

腳本監控yarn任務

發布時間: 2022-02-24 02:18:39

㈠ yarn是如何解決高可用問題的

摘要 YARN 的高可用:

㈡ 如何殺死 spark on yarn 任務

這里是結合Hadoop2.0使用的1,download:根據的spark的README中的描述合適的版本3,安裝其實就是解壓,配置/etc/profile環境變數exportSPARK_HOME=/data1/spark/sparkexportSCALA_HOME=/data1/spark/scala-2.9.3exportPATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin配置spark的conf下的spark-env.shexportJAVA_HOME=/usr/java/defaultexportSCALA_HOME=/data1/spark/scala-2.9.3exportSPARK_MASTER_IP=192.168.0.1exportSPARK_MASTER_WEBUI_PORT=8080exportSPARK_WORKER_WEBUI_PORT=8000exportYARN_CONF_DIR=/data/hadoop/hadoop-2.0/etc/hadoop配置slaves(ip根據需要修改)192.168.0.2192.168.0.3分發spark目錄和scala目錄到幾台伺服器相同路徑下4,啟動進入主節點的spark目錄的bin下stop-all.sh是停掉集群,start-all.sh啟動集群,jps可以在主節點看到master進程,slave節點看到worker進程5,運行程序,運行例子進入spark目錄下分布式運行./run-exampleorg.apache.spark.examples.SparkPispark://192.168.0.1:7077./run-exampleorg.apache.spark.examples.SparkLRspark://192.168.0.1:7077本地運行./run-exampleorg.apache.spark.examples.SparkPilocal./run-exampleorg.apache.spark.examples.SparkLRlocal

㈢ 用什麼命令查看yarn平台mr運行的日誌

用hadoop也算有一段時間了,一直沒有注意過hadoop運行過程中,產生的數據日誌,比如說System列印的日誌,或者是log4j,slf4j等記錄的日誌,存放在哪裡,日誌信息的重要性,在這里散仙就不用多說了,調試任何程序基本上都得需要分析日誌。

㈣ 如何在代碼中通過API監控Hadoop,Spark任務的進度和結果

使用腳本提交 1.使用spark腳本提交到yarn,首先需要將spark所在的主機和hadoop集群之間hosts相互配置(也就是把spark主機的ip和主機名配置到hadoop所有節點的/etc/hosts裡面,再把集群所有節點的ip和主機名配置到spark所在主機的/etc/hosts裡面)。 2.然後需要把hadoop目錄etc/hadoop下面的*-sit.xml復制到${SPARK_HOME}的conf下面. 3.確保hadoop集群配置了 HADOOP_CONF_DIR or YARN_CONF_DIR 1.yarn-standalone方式提交到yarn 在${SPARK_HOME}下面執行: SPARK_JAR=./assembly/target/scala-2.10.4/spark-assembly-0.9.0-incubating-hadoop2.2.0.jar \ ./bin/spark-class org.apache.spark.deploy.yarn.Client \ --jar ./examples/target/scala-2.10/spark-examples_2.10-assembly-0.9.0-incubating.jar \ --class org.apache.spark.examples.SparkPi \ --args yarn-standalone \ --num-workers 3 \ --master-memory 2g \ --worker-memory 2g \ --worker-cores 1 復制代碼 2. yarn-client 方式提交到yarn 在${SPARK_HOME}下面執行: SPARK_JAR=./assembly/target/scala...

㈤ YARN到底是怎麼一回事

YARN的編程模型
1:保證編程模型的向下兼容性,MRv2重用了MRv1的編程模型和數據處理引擎,但運行環境被重寫。
2:編程模型與數據處理引擎
maprece應用程序編程介面有兩套:新的API(mapred)和舊的API(maprece)
採用MRv1舊的API編寫的程序可直接運行在MRv2上
採用MRv1新的API編寫的程序需要使用MRv2編程庫重新編譯並修改不兼容的參數 和返回值
3:運行時環境
MRv1:Jobracker和Tasktracker
MRv2:YARN和ApplicationMaster

YARN的組成
yarn主要由ResourceManager,NodeManager,ApplicationMaster和Container等幾個組件組成。
ResourceManager(RM)
RM是全局資源管理器,負責整個系統的資源管理和分配。
主要由兩個組件組成:調度器和應用 程序管理器(ASM)
調度器
調度器根據容量,隊列等限制條件,將系統中的資源分配給各個正在運行的應用程序
不負責具體應用程序的相關工作,比如監控或跟蹤狀態
不負責重新啟動失敗任務
資源分配單位用「資源容器」resource Container表示
Container是一個動態資源分配單位,它將內存,CPU,磁碟,網路等資源封裝在一起,從而限定每個任務的資源量
調度器是一個可插拔的組件,用戶可以自行設計
YARN提供了多種直接可用的調度器,比如fair Scheler和Capacity Scheler等。
應用程序管理器
負責管理整個系統中所有應用程序
ApplicationMaster(AM)
用戶提交的每個應用程序均包含一個AM
AM的主要功能
與RM調度器協商以獲取資源(用Container表示)
將得到的任務進一步分配給內部的任務
與NM通信以自動/停止任務
監控所有任務運行狀態,並在任務運行失敗時重新為任務申請資源以重啟任務
當前YARN自帶了兩個AM實現
一個用於演示AM編寫方法的實常式序distributedshell
一個用於Maprece程序---MRAppMaster
其他的計算框架對應的AM正在開發中,比如spark等。
Nodemanager(NM)和Container
NM是每個節點上的資源和任務管理器
定時向RM匯報本節點上的資源使用情況和各個Container的運行狀態
接收並處理來自AM的Container啟動/停止等各種要求
Container是YARN中的資源抽象,它封裝了某個節點上的多維度資源
YARN會為每個任務分配一個Container,且改任務只能使用該Container中描述的資源
Container不同於MRv1的slot,它是一個動態資源劃分單位,是根據應用程序的需求動態產生的
YARN主要由以下幾個協議組成
ApplicationClientProtocol
Jobclient通過該RPC協議提交應用才程序,查詢應用程序狀態等

Admin通過該協議更新系統配置文件,比如節點黑名單,用戶隊列許可權等。
ApplicationMasterProtocol
AM通過該RPC協議想RM注冊和撤銷自己,並為各個任務申請資源
ContainerManagementProtocol
AM通過要求NM啟動或者停止Container,獲取各個Container的使用狀態等信息
ResourceTracker
NM通過該RPC協議向RM注冊,並定時發送心跳信息匯報當前節點的資源使用情況和Container運行狀況
YARN的工作流程
文字描述一下這個過程:
1:由客戶端提交一個應用,由RM的ASM接受應用請求
提交過來的應用程序包括哪些內容:
a:ApplicationMaster
b:啟動Applicationmaster的命令
c:本身應用程序的內容
2:提交了三部分內容給RM,然後RM找NodeManager,然後
Nodemanager就啟用Applicationmaster,並分配Container

接下來我們就要執行這個任務了,
3:但是執行任務需要資源,所以我們得向RM的ASM申請執行任務的資源(它會在RM這兒注冊一下,說我已經啟動了,注冊了以後就可以通過RM的來管理,我們用戶也可以通過RM的web客戶端來監控任務的狀態)ASM只是負責APplicationMaster的啟用
4::我們注冊好了後,得申請資源,申請資源是通過第四步,向ResourceScheler申請的
5:申請並領取資源後,它會找Nodemanager,告訴他我應經申請到了,然後Nodemanager判斷一下,
6:知道他申請到了以後就會啟動任務,當前啟動之前會准備好環境,
7:任務啟動以後會跟APplicationmaster進行通信,不斷的心跳進行任務的匯報。
8:完成以後會給RM進行匯報,讓RSM撤銷注冊。然後RSM就會回收資源。當然了,我們是分布式的,所以我們不會只跟自己的Nodemanager通信。也會跟其他的節點通信。

㈥ 如何在yarn中查看spark任務

[{icon:'extjs/examples/shared/icons/fam/cog_edit.png',//UseaURLintheiconconfigtooltip:'Edit',handler:function(grid,rowIndex,colIndex){varrec=grid.getStore().getAt(rowIndex);alert("Edit"+rec.get('firstname'));}},{icon:'extjs/examples/restful/images/delete.png',tooltip:'Delete',handler:function(grid,rowIndex,colIndex){varrec=grid.getStore().getAt(rowIndex);alert("Terminate"+rec.get('firstname'));}}]}],

㈦ 如何通過Java程序提交yarn的MapRece計算任務

1、在程序中,我將文件讀入格式設定為WholeFileInputFormat,即不對文件進行切分。

2、為了控制rece的處理過程,map的輸出鍵的格式為組合鍵格式。與常規的<key,value>不同,這里變為了<textpair,value>,TextPair的格式為<key1,key2>。

3、為了適應組合鍵,重新設定了分組函數,即GroupComparator。分組規則為,只要TextPair中的key1相同(不要求key2相同),則數據被分配到一個rece容器中。這樣,當相同key1的數據進入rece容器後,key2起到了一個數據標識的作用

㈧ 如何使用spark將程序提交任務到yarn-Spark-about雲

使用腳本提交 1使用spark腳本提交到yarn,首先需要將spark所在的主機和hadoop集群之間hosts相互配置(也就是把spark主機的ip和主機名配置到hadoop所有節點的/etc/hosts裡面,再把集群所有節點的ip和主機名配置到spark所在主機的/etc/hosts裡面如何使用spark將程序提交任務到yarn-Spark-about雲

㈨ yarn 任務怎麼獲得其運行時間

第二代的maprece框架的TaskScheler就是yarn

YARN的編程模型

1:保證編程模型的向下兼容性,MRv2重用了MRv1的編程模型和數據處理引擎,但運行環境被重寫。

2:編程模型與數據處理引擎

maprece應用程序編程介面有兩套:新的API(mapred)和舊的API(maprece)

採用MRv1舊的API編寫的程序可直接運行在MRv2上

採用MRv1新的API編寫的程序需要使用MRv2編程庫重新編譯並修改不兼容的參數 和返回值

3:運行時環境

MRv1:Jobracker和Tasktracker

MRv2:YARN和ApplicationMaster

YARN的組成

yarn主要由ResourceManager,NodeManager,ApplicationMaster和Container等幾個組件組成。

ResourceManager(RM)

RM是全局資源管理器,負責整個系統的資源管理和分配。

主要由兩個組件組成:調度器和應用 程序管理器(ASM)

調度器

調度器根據容量,隊列等限制條件,將系統中的資源分配給各個正在運行的應用程序

不負責具體應用程序的相關工作,比如監控或跟蹤狀態

不負責重新啟動失敗任務

資源分配單位用「資源容器」resource Container表示

Container是一個動態資源分配單位,它將內存,CPU,磁碟,網路等資源封裝在一起,從而限定每個任務的資源量

調度器是一個可插拔的組件,用戶可以自行設計

YARN提供了多種直接可用的調度器,比如fair Scheler和Capacity Scheler等。

應用程序管理器

負責管理整個系統中所有應用程序

ApplicationMaster(AM)

用戶提交的每個應用程序均包含一個AM

AM的主要功能

與RM調度器協商以獲取資源(用Container表示)

將得到的任務進一步分配給內部的任務

與NM通信以自動/停止任務

監控所有任務運行狀態,並在任務運行失敗時重新為任務申請資源以重啟任務

當前YARN自帶了兩個AM實現

一個用於演示AM編寫方法的實常式序distributedshell

一個用於Maprece程序---MRAppMaster

其他的計算框架對應的AM正在開發中,比如spark等。

Nodemanager(NM)和Container

NM是每個節點上的資源和任務管理器

定時向RM匯報本節點上的資源使用情況和各個Container的運行狀態

接收並處理來自AM的Container啟動/停止等各種要求

Container是YARN中的資源抽象,它封裝了某個節點上的多維度資源

YARN會為每個任務分配一個Container,且改任務只能使用該Container中描述的資源

Container不同於MRv1的slot,它是一個動態資源劃分單位,是根據應用程序的需求動態產生的

㈩ 如何編寫YARN應用程序

1. 概述
YARN是一個資源管理系統,負責集群資源的管理和分配。如果想要將一個新的應用程序運行在YARN之上,通常需要編寫兩個組件:客戶端和ApplicationMaster。由於這兩個組件編寫非常復雜,尤其ApplicationMaster,需要考慮RPC調用、任務容錯等細節,所以,往往由專業的開發人員編寫這兩個組件,並提供給上層的應用程序用戶使用。如果大量應用程序可抽象成一種通用框架,那麼只需實現一個客戶端和一個ApplicationMaster,然後讓所有應用程序重用這兩個組件即可,比如MapRece是一種通用的計算框架,YARN已經為其實現了一個直接可以使用的客戶端—MRClientService和ApplicationMaster—MRAppMaster。
本文主要介紹了如何讓一種新的應用程序,或者新的計算框架,運行於YARN之上。正如前面介紹的,用戶需要編寫兩個組件完成該任務:客戶端和ApplicationMaster,其中,客戶端負責向ResourceManager提交ApplicationMaster,並查詢應用程序運行狀態,ApplicationMaster負責向ResourceManager申請資源(以Container形式表示),並與NodeManager通信以啟動各個Container,此外,ApplicationMaster還負責監控各個任務運行狀態,並在失敗是為其重新申請資源。
2. YARN Appcalition涉及到的RPC協議和主要編寫步驟
(1) 涉及到的RPC協議
通常而言,編寫一個YARN Appcalition涉及到3個RPC協議,分別為:
1) ClientRMProtocol(Client<–>ResourceManager)
Client通過該協議將應用程序提交到ResourceManager上、查詢應用程序的運行狀態或者殺死應用程序等。
2) AMRMProtocol(ApplicationMaster<–>ResourceManager)
ApplicationMaster使用該協議向ResourceManager注冊、申請資源以運行自己的各個任務。
3) ContainerManager(ApplicationMaster<–> NodeManager)
ApplicationMaster使用該協議要求NodeManager啟動/撤銷Container,或者獲取各個container的運行狀態。
(2)客戶端編寫流程
步驟1 Client通過RPC函數ClientRMProtocol#getNewApplication從ResourceManager中獲取唯一的application ID
步驟2 Client通過RPC函數ClientRMProtocol#submitApplication將ApplicationMaster提交到ResourceManager上。
(3)ApplicationMaster編寫流程
步驟1 ApplicationMaster通過RPC函數AMRMProtocol#registerApplicationMaster向ResourceManager注冊。
步驟2 ApplicationMaster通過RPC函數AMRMProtocol#allocate向ResourceManager申請資源(以Container形式表示)。
步驟3 ApplicationMaster通過RPC函數ContainerManager#startContainer要求對應的NodeManager啟動Container。
ApplicationMaster重復步驟2~3,直到所有任務運行成功。
另外,在應用程序運行過程中,用戶可使用ClientRMProtocol#getApplicationReport 查詢應用程序運行狀態,也可以使用ClientRMProtocol#forceKillApplication將應用程序殺死。