Я заметил, что все мои датододы Hadoop обычно имеют около 10-15 процессов Java для пользователя 'mapred', который может зависать до нескольких дней за один раз.
Только пара процессовактивно занимаюсь работой.Остальные, кажется, успешно выполнили свои соответствующие задачи MapReduce давно, но они никогда не выходили.
Это связано с тем, что эти процессы удерживают драгоценное распределение памяти, а также отображают / уменьшают временные интервалы задач, несмотря на свою работу.(кумулятивный VSZ 58 ГБ и RSS более 30 ГБ на некоторых серверах ..)
Вот пример одного такого процесса (немного усеченного).Это в настоящее время 7/19/19 12:47 вечера MST, и вы можете увидеть процесс, начатый давно в 12: 01:
$ ps aux | grep mapred
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mapred 2915 0.2 0.1 1749504 365004 ? Ssl 12:01 0:09 /usr/java/jdk1.7.0_00/jre/bin/java -Djava.library.path=/usr/lib/hadoop-0.20- mapreduce/lib/native/Linux-amd64-64:/disk6/mapreduce/tmp-map-data/taskTracker /mapred/jobcache/job_201902042217_28716 /attempt_201902042217_28716_m_000000_0/work -Xmx1024m -Djava.io.tmpdir=/disk6 /mapreduce/tmp-map-data/taskTracker/mapred/jobcache/job_201902042217_28716 /attempt_201902042217_28716_m_000000_0/work/tmp
..
TLA -Dhadoop.tasklog.taskid=attempt_201902042217_28716_m_000000_0 -Dhadoop.tasklog.iscleanup=false -Dhadoop.tasklog.totalLogFileSize=0 org.apache.hadoop.mapred.Child 127.0.0.1 47071 attempt_201902042217_28716_m_000000_0 /var/log/hadoop-0.20-mapreduce/userlogs /job_201902042217_28716/attempt_201902042217_28716_m_000000_0 -1455485471
Вот краткое изложение JobTracker, ясно показывающее вышеупомянутые Job ивсе его задачи завершены:
Hadoop Job 28716 on History Viewer
User: mapred
JobName: oozie:launcher:T=java:W=<censored>:A=checkStatus:ID=0007877-190202224243941-oozie-oozi-W
JobConf: hdfs://PRODcluster/tmp/hadoop-mapred/mapred/staging/mapred /.staging/job_201902042217_28716/job.xml
Job-ACLs: All users are allowed
Submitted At: 7-Feb-2019 12:01:04
Launched At: 7-Feb-2019 12:01:04 (0sec)
Finished At: 7-Feb-2019 12:01:16 (12sec)
Status: SUCCESS
Analyse This Job
Kind Total Tasks(successful+failed+killed) Successful tasks Failed tasks Killed tasks Start Time Finish Time
Setup 1 1 0 0 7-Feb-2019 12:01:04 7-Feb-2019 12:01:06 (1sec)
Map 1 1 0 0 7-Feb-2019 12:01:08 7-Feb-2019 12:01:14 (5sec)
Reduce 0 0 0 0
Cleanup 1 1 0 0 7-Feb-2019 12:01:14 7-Feb-2019 12:01:16 (1sec)
Вот хвост журнала задач, показывающий чистое завершение:
$ sudo ls -lh /var/log/hadoop-0.20-mapreduce/userlogs/job_201902042217_28716/attempt_201902042217_28716_m_000000_0/syslog
-rw-r - r-- 1 mapred mapred 22K Feb7 12:01 /var/log/hadoop-0.20-mapreduce/userlogs/job_201902042217_28716/attempt_201902042217_28716_m_000000_0/syslog
tail:
2019-02-07 12:01:12,983 INFO org.apache.hadoop.mapred.Task: Task:attempt_201902042217_28716_m_000000_0 is done. And is in the process of commiting
2019-02-07 12:01:14,105 INFO org.apache.hadoop.mapred.Task: Task attempt_201902042217_28716_m_000000_0 is allowed to commit now
2019-02-07 12:01:14,128 INFO org.apache.hadoop.mapred.FileOutputCommitter: Saved output of task 'attempt_201902042217_28716_m_000000_0' to hdfs://PRODcluster:8020/user/mapred/oozie-oozi/0007877-190202224243941-oozie-oozi-W/checkStatus--java/output
2019-02-07 12:01:14,131 INFO org.apache.hadoop.mapred.Task: Task 'attempt_201902042217_28716_m_000000_0' done.
2019-02-07 12:01:14,133 INFO org.apache.hadoop.mapred.TaskLogsTruncater: Initializing logs' truncater with mapRetainSize=-1 and reduceRetainSize=-1
Если я ускоряю процесс, то вижу, что FEX видит, как видит F:1021 *
$ sudo strace -p 301 -f
[pid 339] futex(0x7f5cac0d7c54, FUTEX_WAIT_BITSET_PRIVATE, 1, {11581718, 780361675}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 339] futex(0x7f5cac0d7c28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 339] futex(0x7f5cac0d7c54, FUTEX_WAIT_BITSET_PRIVATE, 1, {11581718, 830757941}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 339] futex(0x7f5cac0d7c28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 339] futex(0x7f5cac0d7c54, FUTEX_WAIT_BITSET_PRIVATE, 1, {11581718, 881088118}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 339] futex(0x7f5cac0d7c28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 339] futex(0x7f5cac0d7c54, FUTEX_WAIT_BITSET_PRIVATE, 1, {11581718, 931488956}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 339] futex(0x7f5cac0d7c28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 339] futex(0x7f5cac0d7c54, FUTEX_WAIT_BITSET_PRIVATE, 1, {11581718, 981908072}, ffffffff <unfinished ...>
[pid 329] <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
[pid 329] futex(0x7f5cac09cc28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 329] futex(0x7f5cac09cc54, FUTEX_WAIT_BITSET_PRIVATE, 1, {11581719, 976658613}, ffffffff <unfinished ...>
[pid 339] <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
[pid 339] futex(0x7f5cac0d7c28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 339] futex(0x7f5cac0d7c54, FUTEX_WAIT_BITSET_PRIVATE, 1, {11581719, 32166788}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 339] futex(0x7f5cac0d7c28, FUTEX_WAKE_PRIVATE, 1) = 0
Эти задания выполняются через скоординированный рабочий процесс Oozie.Я нахожусь на версии Hadoop 2.0.0-cdh4.3.0, с 2 наменодами и 3 узлами Zookeeper.Один из них Zookeeper не работает пару месяцев, но не уверен, что это вообще связано.Пожалуйста, дайте мне знать, если что-нибудь еще я могу предоставить здесь.