Передача нескольких путей к 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