如何準備MRS的數據源?
MRS既可以處理OBS中的數據,也可以處理HDFS中的數據。在使用MRS分析數據前,需要先準備數據。
1.將本地數據上傳OBS。
a.登錄OBS管理控制臺。
b.在OBS上創建userdata并行文件系統,然后在userdata文件系統下創建program、input、output和log文件夾。
i.單擊“并行文件系統 > 創建并行文件系統”,創建一個名稱為userdata的文件系統。
ii.在OBS文件系統列表中單擊文件系統名稱userdata,選擇“文件 > 新建文件夾”,分別創建program、input、output和log目錄。
c.上傳數據至userdata文件系統。
i.進入program文件夾,單擊“上傳文件”。
ii.單擊“添加文件”并選擇用戶程序。
iii.單擊“上傳”。
iv.使用同樣方式將用戶數據文件上傳至input目錄。
2.將OBS數據導入至HDFS。
當“Kerberos認證”為“關閉”,且運行中的集群,可執行將OBS數據導入至HDFS的操作。
a.登錄MRS管理控制臺。
b.單擊集群名稱進入集群詳情頁面。
c.單擊“文件管理”,選擇“HDFS文件列表”。
d.進入數據存儲目錄,如“bd_app1”。
“bd_app1”目錄僅為示例,可以是界面上的任何目錄,也可以通過“新建”創建新的目錄。
e.單擊“導入數據”,通過單擊“瀏覽”選擇OBS和HDFS路徑。
f.單擊“確定”。
文件上傳進度可在“文件操作記錄”中查看。
MRS集群支持提交哪些形式的Spark作業?
當前在MRS頁面,集群支持提交Spark、Spark Script和Spark SQL形式的Spark作業。
MRS集群的租戶資源最小值改為0后,只能同時運行一個Spark任務嗎?
租戶資源最小值改為0后,只能同時運行一個Spark任務。
Spark作業的Client模式和Cluster模式有什么區別?
理解YARN-Client和YARN-Cluster深層次的區別之前先清楚一個概念:Application Master。
在YARN中,每個Application實例都有一個ApplicationMaster進程,它是Application啟動的第一個容器。它負責和ResourceManager打交道并請求資源,獲取資源之后告訴NodeManager為其啟動Container。從深層次的含義講YARN-Cluster和YARN-Client模式的區別其實就是ApplicationMaster進程的區別。
YARN-Cluster模式下,Driver運行在AM(Application Master)中,它負責向YARN申請資源,并監督作業的運行狀況。當用戶提交了作業之后,就可以關掉Client,作業會繼續在YARN上運行,因而YARN-Cluster模式不適合運行交互類型的作業。
YARN-Client模式下,Application Master僅僅向YARN請求Executor,Client會和請求的Container通信來調度工作,也就是說Client不能離開。
如何查看MRS作業的日志?
MRS Console頁面作業管理,每一條作業支持查看日志,包含launcherJob日志和realJob日志。
- launcherJob作業的日志,一般會在stderr和stdout中打印錯誤日志,如下圖所示:


- realJob的日志,可以通過MRS Manager中Yarn服務提供的ResourceManager Web UI查看。


1.登錄集群Master節點,可獲取上述作業的日志文件 ,具體hdfs路徑為“/tmp/logs/ {submit_user} /logs/ {application_id} ”。
2.提交作業后,在Yarn的WEB UI未找到對應作業的application_id,說明該作業沒有提交成功,可登錄集群主Master節點,查看提交作業進程日志“/var/log/executor/logs/exe.log”。
提交作業時系統提示當前用戶在Manager不存在如何處理?
問題詳情
安全集群使提交作業時,未進行IAM用戶同步,會出現“當前用戶在MRS Manager不存在,請先在IAM給予該用戶足夠的權限,再在概覽頁簽進行IAM用戶同步”的錯誤提示。
處理方式
在提交作業之前,用戶需要先在集群詳情頁的“概覽”頁簽,單擊“IAM用戶同步”右側的“同步”進行IAM用戶同步,然后再提交作業。
LauncherJob作業執行失敗,報錯信息為“jobPropertiesMap is null”如何處理?
問題描述
Launcher作業失敗的,提示原因為:提交作業用戶無“hdfs /mrs/job-properties”目錄的寫權限如何處理?
處理方式
該問題已在MRS 2.1.0.6的補丁中修復,也可通過在MRS Manager頁面給同步的提交作業用戶賦予該目錄“/mrs/job-properties”的寫入權限進行處理。
為什么MRS Console頁面Flink作業狀態與Yarn上的作業狀態不一致?
為了節約存儲空間,用戶修改了Yarn的配置項yarn.resourcemanager.max-completed-applications,減小yarn上歷史作業的記錄保存個數。由于Flink是長時作業,在yarn上realJob還在運行,但launcherJob已經被刪除,導致因從Yarn上查不到launcherJob,從而更新作業狀態失敗。該問題在2.1.0.6補丁中解決。
解決方法:終止找不到launcherJob的作業,后續提交的作業狀態就會更新。
SparkStreaming]()作業運行幾十個小時后失敗,報OBS訪問403如何處理?
當用戶提交作業需要讀寫OBS時,提交作業程序會默認為用戶添加訪問OBS的臨時accesskey和secretkey,但是臨時accesskey和secretkey有過期時間。
如果需要運行像Flink和SparkStreaming這樣的長時作業時,用戶可通過“服務配置參數”選項框傳入永久的accesskey和secretkey,以保證作業不會在運行過程中因密鑰過期而執行失敗。
ClickHouse客戶端執行SQL查詢時報內存不足如何處理?
問題現象
ClickHouse會限制group by使用的內存量,在使用ClickHouse客戶端執行SQL查詢時報如下錯誤:
Progress: 1.83 billion rows, 85.31 GB (68.80 million rows/s., 3.21 GB/s.) 6%Received exception from server:
Code: 241. DB::Exception: Received from localhost:9000, 127.0.0.1.
DB::Exception: Memory limit (for query) exceeded: would use 9.31 GiB (attempt to allocate chunk of 1048576 bytes), maximum: 9.31 GiB:
(while reading column hits):
解決方法
- 在執行SQL語句前,執行如下命令。注意執行前保證集群有足夠內存可以設置。
SET max_memory_usage = 128000000000; #128G
- 如果沒有上述大小內存可用,ClickHouse可以通過如下設置將“溢出”數據到磁盤。建議將max_memory_usage設置為max_bytes_before_external_group_by大小的兩倍。
set max_bytes_before_external_group_by=20000000000; #20G
set max_memory_usage=40000000000; #40G
- 如果客戶數據量大,而且是全表查詢,建議按照分區進行查詢或者進行升級集群core節點的規格。
Spark運行作業報錯“java.io.IOException: Connection reset by peer”如何處理?
問題現象
Spark作業運行一直不結束,查看日志報錯:java.io.IOException: Connection reset by peer。
解決方法
修改提交參數,加上參數“executor.memoryOverhead”。
Spark作業訪問OBS報錯“requestId=XXX”如何處理?
問題現象
Spark作業訪問OBS報錯:requestId=4971883851071737250
解決方法
登錄Spark客戶端節點,進入conf目錄,修改配置文件“core-site.xml”中的“fs.obs.metrics.switch”參數值為“false”。
Spark作業報錯“UnknownScannerExeception”如何處理?
問題現象
Spark作業運行查看日志有些WARN日志,作業運行很慢,Caused by顯示:UnknownScannerExeception。
解決方法
運行Spark作業前,調整hbase.client.scanner.timeout.period參數,(例如從60秒調高到120秒)。
登錄Manage界面,選擇“集群 > 服務 > HBase > 配置 > 全部配置”,搜索參數“hbase.client.scanner.timeout.period”,并修改參數值為“120000”(參數單位為毫秒)。
DataArts Studio調度Spark作業偶現失敗如何處理?
問題現象
DataArts Studio調度spark作業,偶現失敗,重跑失敗,作業報錯:
Caused by: org.apache.spark.SparkException: Application application_1619511926396_2586346 finished with failed status
解決方法
使用root用戶登錄Spark客戶端節點,調高“spark-defaults.conf”文件中“spark.driver.memory”參數值。
Flink任務運行失敗,報錯“java.lang.NoSuchFieldError: SECURITY_SSL_ENCRYPT_ENABLED”如何處理?
問題現象
Flink任務運行失敗,報錯:
Caused by: java.lang.NoSuchFieldError: SECURITY_SSL_ENCRYPT_ENABLED
解決方法
客戶代碼里面打包的第三方依賴包和集群包沖突,提交到MRS集群運行失敗,需修改相關的依賴包,并將pom文件中的開源版本的Hadoop包和Flink包的作用域設置為provide,添加完成后重新打包運行任務。
提交的Yarn作業在界面上查看不到如何處理?
問題現象
創建完Yarn作業后,以admin用戶登錄Manager界面查看不到運行的作業。
解決方法
- admin用戶為集群管理頁面用戶,檢查是否有supergroup權限,通常需要使用具有supergroup權限的用戶才可以查看作業。
- 使用提交作業的用戶登錄查看Yarn上的作業,不使用admin管理帳號查看。
如何修改現有集群的HDFS fs.defaultFS?
當前不建議在服務端修改或者新增集群內HDFS NameSpace(fs.defaultFS)。
如果只是為了客戶端更好的識別,則一般可以通過修改客戶端內“core-site.xml”,“hdfs-site.xml”兩個文件的相關參數進行實現。
提交Flink任務時launcher-job被Yarn終止如何處理?
問題現象
管控面提交Flink任務時launcher-job因heap size不足被Yarn終止如何處理?
解決方法
調大launcher-job的heap size值。
1.使用omm用戶登錄主OMS節點。
2.修改“/opt/executor/webapps/executor/WEB-INF/classes/servicebroker.xml”中參數“job.launcher.resource.memory.mb”的值為“2048”。
3.使用sh /opt/executor/bin/restart-executor.sh重啟executor進程。
提交Flink作業時報錯slot request timeout如何處理?
問題現象
Flink作業提交時,jobmanager啟動成功,但taskmanager一直是啟動中直到超時,報錯如下:
org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: Could not allocate the required slot within slot request timeout. Please make sure that the cluster has enough resources
可能原因
1.Yarn隊列中資源不足,導致創建taskmanager啟動不成功。
2.用戶的Jar包與環境中的Jar包沖突導致,可以通過執行wordcount程序是否成功來判斷。
3.若集群為安全集群,可能是Flink的SSL證書配置錯誤,或者證書過期。
解決方法
1.增加隊列的資源。
2.排除用戶Jar包中的Flink和Hadoop依賴,依靠環境中的Jar包。
3.重新配置Flink的SSL證書。
DistCP作業導入導出數據常見問題
DistCP類型作業導入導出數據時,是否會對比數據的一致性?
不會。
DistCP類型作業導入導出數據時不會對比數據的一致性,只是對數據進行拷貝,不會修改數據。
DistCP類型作業在導出時,遇到OBS里已經存在的文件是如何處理的?
覆蓋原始文件。
DistCP類型作業在導出時,遇到OBS里已經存在的文件時會覆蓋原始文件。
如何通過Yarn WebUI查看Hive作業對應的SQL語句?
以業務用戶登錄FusionInsight Manager。
1.選擇“集群 > 服務 > Yarn”,單擊“ResourceManager WebUI”后的“ResourceManager(xxx,主) ”超鏈接,進入Yarn WebUI界面。
2.單擊待查看的作業ID。


3.單擊“Tracking URL”后的“ApplicationMaster”或“History”。


4.單擊左側導航欄的“Configuration”,在右上角搜索“hive.query.string”參數,即可查詢出對應的HiveSQL。


如何查看指定Yarn任務的日志?
以root用戶登錄主Master節點。
1.執行如下命令初始化環境變量。
source 客戶端安裝目錄/bigdata_env
2.如果當前集群已啟用Kerberos認證,執行以下命令認證當前用戶。如果當前集群未啟用Kerberos認證,則無需執行此命令。
kinit MRS集群用戶
3.執行以下命令獲取指定任務的日志信息。
yarn logs -applicationId 待查看作業的application_ID