dolphinscheduler 3.0.1 资源中心
dolphinscheduler 3.0.1 資源中心
- 🐬配置HDFS存儲
- 🐠common.properties配置文件
- 🐠驗證
- 🐬具體功能
- 🐠表結構
- 🐠文件管理
- 🐟文件夾
- 🐟代碼
- 🐠UDF管理
- 🐠任務組管理
- 🐟創建任務組
- 🐟任務組處理
- 🐵其它
🔼上一集:dolphinscheduler 3.0.1 項目管理(三):任務
*??主目錄:dolphinscheduler 3.0.1功能梳理及源碼解讀
🔽下一集:dolphinscheduler 3.0.1數據質量
官網介紹
資源中心通常用于上傳文件、UDF 函數和任務組管理。 對于 standalone環境,可以選擇本地文件目錄作為上傳文件夾(此操作不需要Hadoop部署)。當然,你也可以 選擇上傳到 Hadoop 或者 MinIO 集群。在這種情況下,您需要有 Hadoop(2.6+)或 MinION 等相關環境。
🐬配置HDFS存儲
🐠common.properties配置文件
修改API下面的common.properties中hdfs存儲配置信息
data.basedir.path=/tmp/dolphinscheduler3 resource.storage.type=HDFS resource.storage.upload.base.path=/dolphinscheduler hdfs.root.user=hadoop fs.defaultFS=hdfs://192.xxx.xxx.xx:8020 resource.manager.httpaddress.port=8088 yarn.resourcemanager.ha.rm.ids=192.xxx.xxx.xx,192.xxx.xxx.xx,192.xxx.xxx.xx指定基礎目錄,一開始沒改,上傳文件報文件不存在,原因是虛擬機部署了2.0,不同用戶,相同目錄,導致3.0沒有權限創建目錄
File /tmp/dolphinscheduler/dolphin/resources/3c24469c-5ea4-40ff-ab50-ed27ae49ccaa does not existHA高可用模式下要把core-site.xml 和 hdfs-site.xml 放到對應的conf目錄下面
sudo cp /home/hadoop/hadoop/etc/hadoop/core-site.xml api-server/conf/ sudo cp /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml api-server/conf/之前2.0遇到過這種錯,原因是fs.defaultFS=hdfs://192.xxx.xxx.xx:8020,節點狀態為standby,改成active狀態的節點即可,但是每次hadoop節點狀態切換,就要修改配置文件顯然不合理,因此增加yarn.resourcemanager.ha.rm.ids和core-site.xml、hdfs-site.xml,成功解決下面的錯,但是3.0依然報這個錯,最終只能將fs.defaultFS改為active節點才好使
Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-errorat org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.checkOperation(StandbyState.java:108)at org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.checkOperation(NameNode.java:2094)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkOperation(FSNamesystem.java:1550)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfo(FSNamesystem.java:3342)at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getFileInfo(NameNodeRpcServer.java:1208)at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfo(ClientNamenodeProtocolServerSideTranslatorPB.java:1042)at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)at org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:604)at org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:572)at org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:556)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1093)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1043)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:971)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:422)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1878)at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2976)hdfs查看節點狀態 hdfs haadmin -getServiceState 節點名稱
🐠驗證
🐬具體功能
🐠表結構
真正使用的時候都是集群模式,因此對資源的操作除了本地資源表t_ds_resources,還涉及對HDFS的增刪改查()相互對應的
🐠文件管理
🐟文件夾
🐟代碼
- 直接調用hadoop提供的工具類完成增刪改查,不多言
- 連接hadoop集群亦是如此
調用調度自己封裝的HadoopUtils,操作HDFS之前,先 getInstance(),加載common.properties中配置,連接hadoop集群,然后進行增刪改查
🐠UDF管理
同上
🐠任務組管理
官方說明
任務組主要用于控制任務實例并發,旨在控制其他資源的壓力(也可以控制Hadoop集群壓力,不過集群會有隊列管控)。您可在新建任務定義時,可配置對應的任務組,并配置任務在任務組內運行的優先級。
任務組的使用適用于由 worker 執行的任務,master負責執行的節點類型不受任務組控制,例如【switch】節點、【condition】節點、【sub_process】等
-
獲取任務組資源:
Master 在分發任務時判斷該任務是否配置了任務組,如果任務沒有配置,則正常拋給 worker 運行;如果配置了任務組,在拋給 worker 執行之前檢查任務組資源池剩余大小是否滿足當前任務運行,如果滿足資源池 -1,繼續運行;如果不滿足則退出任務分發,等待其他任務結束喚醒。 -
釋放與喚醒:
當獲取到任務組資源的任務結束運行后,會釋放任務組資源,釋放后會檢查當前任務組是否有任務等待,如果有則標記優先級最好的任務可以運行,并新建一個可以執行的event。該event中存儲著被標記可以獲取資源的任務id,隨后在獲取任務組資源然后運行。
🐟創建任務組
- 選擇不到項目
- 排查
奇怪的是沒有查詢出數據:
- 切換admin用戶可以查詢到
前面任務定義好像也遇到過這種問題,看最新代碼是單獨增加了一個查詢方法
🐟任務組處理
官方流程圖如下(待后續研究到后臺主要服務的時候再詳細探究吧):
🐵其它
最近才用到資源中心的功能(對應2.0.5版本),就是上傳python腳本,然后定義shell節點,直接運行python腳本,這種簡單應用,創建子目錄的的時候遇到過問題,稍微記錄下:
- 跳轉/創建子目錄失敗,都是前端的錯,缺少參數和傳值
沒有傳當前目錄ID,api缺少參數報錯(文件和UDF都缺少):
UDF子目錄失敗,原因也是沒把當前目錄id傳過來:
-
租戶不存在:這個其實不算錯,一般管理員用戶,都是沒有租戶的,新建的普通用戶是沒問題的(新增時會強制你選擇租戶)
-
未知錯
- 文件刪除,重新上傳,任務定義選擇之后,顯示的是之前的老路經,但是資源中心顯示的是正確的路徑
登錄hdfs查看,發現原先的文件還在,但是重新上傳的目錄下面又是沒有文件的 - 刪除目錄,創建子目錄,完成之后,發現目錄還是在外面
這些問題都沒有復現,看現象就是本地資源表數據和HDFS上面的不一致,能想到的一種可能是,比如剛創建完目錄,緊接著要在HDFS上創建的時候,系統不穩導致創建失敗,但是本地已經創建成功了,導致兩邊數據不一致
- 文件刪除,重新上傳,任務定義選擇之后,顯示的是之前的老路經,但是資源中心顯示的是正確的路徑
總結
以上是生活随笔為你收集整理的dolphinscheduler 3.0.1 资源中心的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: chrome浏览器完整保存整个网页 可离
- 下一篇: 开始刷博弈。。