Pivotal Knowledge Base

フォローする

PHD – MapReduceのジョブが「 cannot open shared object file」というエラーで失敗する

環境

製品 バージョン
 Pivotal HD  2.x, 3.x
 MapReduce  
 YARN  

事象

mapper や reducerが実行されているノードに、共有ライブラリが正しくインストールされていないために、MapReduceのジョブが失敗する。

MapReduceジョブが失敗してから数秒後に、以下のような mapperが失敗した旨のメッセージが出力される。 

16/02/02 16:36:29 INFO impl.YarnClientImpl: Submitted application application_1453825164633_0017 to ResourceManager at hdm3.gphd.local/172.28.9.252:8032
16/02/02 16:36:29 INFO mapreduce.Job: The url to track the job: http://hdm3.gphd.local:8088/proxy/application_1453825164633_0017/
16/02/02 16:36:29 INFO mapreduce.Job: Running job: job_1453825164633_0017
16/02/02 16:36:34 INFO mapreduce.Job: Job job_1453825164633_0017 running in uber mode : false
16/02/02 16:36:34 INFO mapreduce.Job: map 0% reduce 0%
16/02/02 16:36:39 INFO mapreduce.Job: map 100% reduce 100%
16/02/02 16:36:39 INFO mapreduce.Job: Job job_1453825164633_0017 failed with state FAILED due to: Task failed task_1453825164633_0017_m_000003
Job failed as tasks failed. failedMaps:1 failedReduces:0

ジョブのステータスは、ジョブが失敗・終了したことを示している。

[hdfs@hdm1]$ hadoop job -status job_1453825164633_0019
DEPRECATED: Use of this script to execute mapred command is deprecated.
Instead use the mapred command for it.

16/02/02 17:29:06 INFO client.RMProxy: Connecting to ResourceManager at hdm3.gphd.local/172.28.9.252:8032
16/02/02 17:29:06 INFO mapred.ClientServiceDelegate: Application state is completed. FinalApplicationStatus=FAILED. Redirecting to job history server

Job: job_1453825164633_0019
Job File: hdfs://dcans:8020/user/history/done/2016/02/02/000000/job_1453825164633_0019_conf.xml
Job Tracking URL : http://hdm3.gphd.local:19888/jobhistory/job/job_1453825164633_0019
Uber job : false
Number of maps: 30
Number of reduces: 20
map() completion: 0.0
reduce() completion: 0.0
Job state: FAILED
retired: false
reason for failure: task 1453825164633_0019_m_000018 failed 2 times For details check tasktracker at: hdw2.gphd.local:19874
Counters not available. Job is retired.
[hdfs@hdm1]$ 

このジョブのログは、共有ライブラリが見つからなかったことを示している(ジョブのログはJob History server 経由で確認するか、yarn mapreduceジョブに関するログの探し方と見方を参照し確認)。

(^@&container_1454415084759_0006_01_000003<A8>^Z<9A>^@^Fstderr^@^C280/data6/hadoop/data/yarn/nm-local-dir/usercache/hdfs/appcache/application_1454415084759_0006/container_1454415084759_0006_01_000003/././Mapper_analog_info_m: error while loading shared libraries: libboost_regex.so.1.41.0: cannot open shared object file: No such file or directory

原因

Mapper もしくは、Reducerが実行されているノードの内、 最低1つ以上のノードで共有ライブラリがないため。 

Resolution

1. mapperとreducerが必要としている共有ライブラリはどれか、lddコマンドを使用して特定。 

[hdm1:bin]$ ldd mapper_binary 
linux-vdso.so.1 => (0x00007fff92d5c000)
librt.so.1 => /lib64/librt.so.1 (0x00000034bda00000)
/lib64/ld-linux-x86-64.so.2 (0x00000034bc600000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00000034c7a00000)
libaudit.so.1 => /lib64/libaudit.so.1 (0x00000034c8600000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000034c7e00000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00000034cc600000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00000034bea00000)
libidn.so.11 => /lib64/libidn.so.11 (0x00000034bee00000)
libfreebl3.so => /lib64/libfreebl3.so (0x00000034c8200000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00000034cd600000)
[hdm1:bin]$

2. 各ノードの datanodeで、共有ライブラリが存在するか、また正しい箇所にあるか上記の出力で確認。

3. 共有ライブラリがないノードに対して、共有ライブラリをインストール。

4. 再度ジョブを実行。 

 

コメント

Powered by Zendesk