Передача нескольких путей к cmdenv в потоковой передаче hadoop

Я использую Hadoop streaming jar и пытается передать переменную среды, которая указывает на несколько путей, используя -cmdenv.

hadoop jar ../hadoop-streaming.jar \
-libjars .../something.jar \
-inputFormat ..CustomInputFormat \
-file mapper.py \
-file stream.py \
-cacheFile ../files#aliasname \
-cmdenv LD_LIBRARY_PATH=/home/files/1/xyz:/home/files/2/:/home/files/1/abc/ \
-mapper mapper.py \
-input hdfs:/inputfiles/ \
-output hdfs:/outputfiles/ \
-reducer NONE \
-verbose

У меня есть пара вопросов. 1. Экологическая переменная, определенная в cmdenv не отображается в mapper script 2. Могу ли я предоставить hdfs каталоги как путь к переменной среды?

Когда я запускаю выполнить hadoop Я получаю сообщение об ошибке в журналах приложений, где выдается "ошибка при загрузке общих библиотек: xyz.so: не удается открыть файл общего объекта: такой файл или каталог отсутствуют".

Кроме того, я мог заметить переменную среды в потоковом задании STREAM: stream.addenvironment=HADOOP_ROOT_LOGGER= LD_LIBRARY_PATH=<path1>/:<path2>/..

Подскажите пожалуйста где я иду не так?

1 ответ

Решение
I was able to resolve the issue by adding the C code and dependency libraries to hdfs and then add them to CacheFile with symlinks and providing the symlinks in the environmental variable in cmdenv. See below.

hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
 -libjars /<path>/jars/Hadoop_Streaming.jar \
 -inputformat com.hadoop.IMCFInputFormat \
 -outputformat org.apache.hadoop.mapred.TextOutputFormat \
 -file mapper.sh \
 -file stream.py \
 -cacheFile hdfs:/<hdfspath>/IMCF/Common/#IMCF_Common \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/Common/#IMCF_STMC_Common \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/StarLabResults/#IMCF_STMC_StarLabResults \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/StarMeasureMembership/#IMCF_STMC_StarMeasureMembership \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/StarMedicalCase/#IMCF_STMC_StarMedicalCase \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/StarMedicalClaim/#IMCF_STMC_StarMedicalClaim \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/StarPrcdrTracking/#IMCF_STMC_StarPrcdrTracking \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/StarRxClaim/#IMCF_STMC_StarRxClaim \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/Stars/#IMCF_STMC_Stars \
 -cacheFile hdfs:/<hdfspath>/IMCF/STMC/StarDerived/#IMCF_STMC_StarDerived \
 -cacheFile hdfs:/<hdfspath>/lkup_files/MFW_meas_comp_def.lkup#MFW_meas_comp_def.lkup \
 -cacheFile hdfs:/<hdfspath>/lkup_files/MFW_msr_cdset_x_cdset_lst.lkup#MFW_msr_cdset_x_cdset_lst.lkup \
 -cacheFile hdfs:/<hdfspath>/lkup_files/MFW_msr_criteria.lkup#MFW_msr_criteria.lkup \
 -cacheFile hdfs:/<hdfspath>/lkup_files/MFW_run_params.properties#MFW_run_params_HMO.env \
 -cacheFile hdfs:/<hdfspath>/IMCF/MainModule/imcf.exe#imcf.exe \
 -mapper mapper.sh \
 -input /<hdfspath>/Stars_Ext_Tbl/IMCF_CIF_EXT/ \
 -output /<hdfspath>/stream_output/ \
 -reducer NONE \
 -cmdenv LD_LIBRARY_PATH=IMCF_Common:IMCF_STMC_Common:IMCF_STMC_StarLabResults:IMCF_STMC_StarMeasureMembership:IMCF_STMC_StarMedicalCase:IMCF_STMC_StarMedicalClaim:IMCF_STMC_StarPrcdrTracking:IMCF_STMC_StarRxClaim:IMCF_STMC_Stars:IMCF_STMC_StarDerived \
 -verbose
Другие вопросы по тегам