sqoopexport導出map100% reduce0%卡住原因及解決
時(shí)間:2026-05-05 02:54:21這篇文章主要介紹了sqoop export導出 map100% reduce0% 卡住的卡住多種原因及解決,(?????)具有很好的原因參考價(jià)值,希望對大家有所幫助。及解決一起跟隨小編過(guò)來(lái)看看吧
我稱(chēng)這種bug是卡住一個(gè)典型的“哈姆雷特”bug,就是原因指那種“報錯情況相同但網(wǎng)上卻會(huì )有各種五花繚亂解決辦法”的??bug,讓我們不(bu)知道哪一個(gè)才是及解決癥結所在。
先看導入命令:
[root@host25 ~]#
sqoop export --connect "jdbc:mys(′_`)ql://172.16.xxx.(╥_╥)xxx:3306/dbname?卡住useUnicode=true&characterEncoding=utf-8"
--username=root --passwor??d=xxxx??x --table rule_tag --update-key?? rule_code
--update-mode allowinsert
--export-dir /user/hive/warehouse/lmj_test.db/rule_tag --input-fields-terminated-by '\t'
--input-null-string '\\N' --input-null-non-string '\\N' -m1
這個(gè)導入命令語(yǔ)法上其實(shí)是完全沒(méi)問(wèn)題的。
接下來(lái)是原因報錯:
#截取部分
19/06/11 09:39:5(/ω\)7 INFO mapreduce.Job: The url to track the job: http://dthost25:8088/proxy/application_1554(???)176896418_0537/
19/06/11 09:39:57 INFO mapreduce.Job: Running job: job_1554176896418_0537
19/06/11 09:40:05 INFO mapreduce.Job: Jobヽ(′▽?zhuān)?ノ job_1554176896418_0537 running in uber mode : false
19/06/11 09(′▽?zhuān)?):40:05 INFO mapreduce.Job: map 0% reduce 0%
19/06/11 09??:40:1??9 INFO mapreduce.Job: map 100% reduce 0%
19/06/11 09:45:34 INFO mapreduce.Job: Task Idヽ(′ー`)ノ : atte??mpt_1554176896418_0537_m_0000(╯°□°)╯︵ ┻━┻00_0, Status : FAILED
AttemptID:attempt_1554176896418_0537_m_000000_0 Timed out after 300 secs
19/06/11 09:45:36 INFO mapreduce.┐(′ー`)┌Job: map 0% reduce 0%
19/06/11 09:45:48 INFO mapreduce.Job: map 100% reduce 0%
19/06/11 09:51:04 INFO mapreduce.Job: Task Id : attempt_1554176896418_0537_m_000000_1, Status : FAILED
AttemptID:attempt_1554176896418_0537_(?_?;)m_000000_1 Time??d out after 300 secs
19/06/11 09:51:05 INFO mapreduce.Job: map 0% reduce 0%
19/06/11 09:51:17 INFO mapreduce.Job: map 100% reduce 0%
19/06/11 09:56:34 INFO mapre(′?_?`)duce??.Job??: Task Id : atヽ(′▽?zhuān)?ノtempt_15??54176896418??_0537_m_000000_2, Status : FAILED
AttemptID:attempt_1554176896418_0537_m_000000_2 Timed out after 300 secs
19/06/11 09:56:35 INFO mapr??ed??uce.Job: map 0% reduce 0%
19/06/11 09:56:48 INFO?? mapreduce.Job: map 100% reduce 0%
19/06/11 10:02:05 INFO(╯°□°)╯ mapreduc??e.Job: Job job_1554176896418_0537 failed with state FAILED due to: Task failed task_1554(?????)176896418_(′?_?`)0537_m_000000
Job failed as tasks failed. failedMaps:1 failedReduces:0
19/06/11 10:02:05 INFO mapreduce.Jヽ(′▽?zhuān)?ノob: Counters: 9
Job Counte??rs
Failed map tasks=4
Launched map tasksヽ(′?`)ノ=4
Other local map tasks=3
Data-local map tasks=1
Total time spent by all maps in occu??pied slots (ms)=2624852
Total time spent by all reduces in occupied slots (ms)=0
Total time spent by all map tasks (ms)=1(′?`*)312426
Total vcore-seconds taken by all map tasks=1312426
Tota( ?ヮ?)l(′?_?`) megabyte-seconds taken by all map tasks=2687848448
19/06/11 10:02:05 WA??RN mapredu??ce.Counters: Group FileSystemCounters is deprecated. Use org.apache.hado(╬?益?)op.mapre(′_`)duc??e.FileSystemCounter instead
19/ヽ(′ー`)ノ06/11 10:02:05 INFO mapreduce.ExportJobBase: Transferred 0 byt( ???)es?? in 1,333.3153 seconds (0 bytes/sec)
19/06/11 10:(′ω`)02:05 WARN mapreduce.Counters: Group org.apache.hadoop.mapred.Task$Counter is depre??cated. Use org.ap??ache??.hadoop.mapre??duce.TaskCounter instead
19/06/11 10:02:05 INFO mapreduce.ExportJobBase: Expo(//ω//)rted 0 records.
19/06/11ヽ(′▽?zhuān)?/ 10:02:05 ERRO??R too(′ω`)l.ExportTool: Error during export: Export job failed!
Time taken: 1340 s
task IDE_TASK_ADE56470-B5A3-4303-EA75-4( ?ヮ?)4312FF8AA0C_20190611093945147 is complete.
可以看到,導入任務(wù)在INFO mapreduce??.Job: map 100% reduce 0%時(shí)停住了,及解決停了5分鐘,卡住然后任務(wù)自動(dòng)重跑,原因又卡住停了5分鐘,及解決最后任務(wù)報了個(gè)超時(shí)的卡住錯誤。
很顯然,原因任務(wù)失敗的(′?_?`)及解決直接原因是超時(shí),但是超時(shí)的原因是因為導入過(guò)程的mapreduce任務(wù)??卡住了,那mapreduce為什么會(huì )卡住呢?這個(gè)報錯日志中并沒(méi)??有提到,這就是查原因時(shí)最麻煩的地方。( ?ω?)
先說(shuō)一下結果,最后查了很久才發(fā)現,是因為有一行的數據長(cháng)度,超過(guò)了mysql設定的(de)字段長(cháng)度(′▽?zhuān)?)。也就是在往varchar(50)的字段里導入字符??串“字符串很長(cháng)很長(cháng)很長(cháng)很長(cháng)很長(cháng)很(hen)長(cháng)很長(cháng)很長(cháng)很長(cháng)”時(shí),任務(wù)就阻塞(╥_╥)住了。
在這里也跟大ヽ(′▽?zhuān)?/家匯總一下網(wǎng)上的各種原因,大家可以逐個(gè)檢查
在map 100% reduce 0%時(shí)卡住的可能原因:(以往mysql導出為例)
1、長(cháng)度溢出。導入的數據超過(guò)了mysql表的字段設定長(cháng)度
解決辦法:重設字段長(cháng)度即可
2、編碼錯誤。導入的數據不在mysql的編碼字符集內
解決辦法:其實(shí)在mysql數據庫中對應UTF-8字符集的不是utf8編碼,而是utf8mb4編碼。所以當你的導入數據里有若如Emoji表情或者一些生僻漢字時(shí),就會(huì )導不進(jìn)去造成阻塞卡住。所以你需要注意兩點(diǎn):
(1)導入語(yǔ)句中限定us??eUnicode=true&characterEncoding=utf-8,表示以utf-8的格式導出;
(2)mysql建表語(yǔ)句中有ENG(╯°□°)╯INE=InnoDB?? DEFAULT CHARSET=utf8mb4;
解決辦法:要么分批導入,要么給任務(wù)分配更多內存
4、主機名錯誤。
解決辦法:這個(gè)好像是涉及到主機名的配置??問(wèn)題
5、主鍵重復 。
解決辦法:這是因為你導入的??數據中有重復的主鍵值,要針對性處理一下數據(ju)
補充:sqoop??從(?????)數據庫到處數據到hdfs時(shí)mapreduce卡住不動(dòng)解決
在sqoop時(shí)從數據庫中導出數據時(shí),出現mapred(╯°□°)╯uce卡住的情況
經(jīng)過(guò)百度之后好像是要設置yarn里面關(guān)于內存和虛擬內存的配置項.我以前沒(méi)配置這幾項,也能正常運行。但是這次好像運行的比較大。出現此故障的原因應該是,在每個(gè)Docker分配的內存和CPU資源太少,不能滿(mǎn)足Hadoo??p和Hive運行所需的默認資源需求。
解(jie)決(jue)方案如下:
在yarn-site.xml中加入如下配置:
<pro??perty>
<name>yarn.nodem(╯°□°)╯anager.resource.memory-mb</name>
<??value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb&??lt;/name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value&( ?ω?)gt;2.1</value>
</property>
關(guān)閉yarn重啟就好了?。?!
以上為個(gè)人經(jīng)驗,希望能給大家一個(gè)參考,也希望大家多多支?持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
來(lái)??源:腳本之家
鏈接:https://www.jb51.net/article/203322.htm
客服電話(huà)18021712189
Copyright ? 2012-2018 天津九安特機電工程有限公司 版權所有 備案號:
客服電話(huà)18961021710