线下的问题已解决,但我面临另一个问题。如何从Mapper Hadoop设置系统环境变量?
我这样做:
DistributedCache.createSymlink(job.getConfiguration());
DistributedCache.addCacheFile(new URI
("hdfs:/user/hadoop/harsh/libnative1.so"),conf.getConfiguration());
,并在映射器:
System.loadLibrary("libnative1.so");
(我也尝试 的System.loadLibrary( “libnative1”); 的System.loadLibrary(“native1 “);
但我得到这个错误:
java.lang.UnsatisfiedLinkError: no libnative1.so in java.library.path
我完全不知道该怎么设置java.library.path为.. 我试着将它设置为/ home并将每个.so从分布式缓存复制到/ home /但仍然没有工作:(
任何建议/解决方案吗?
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
我想设置,其中映射器运行的机器的系统环境变量(具体地,LD_LIBRARY_PATH)。
我想:
Runtime run = Runtime.getRuntime();
Process pr=run.exec("export LD_LIBRARY_PATH=/usr/local/:$LD_LIBRARY_PATH");
但它抛出IOException异常。
我也知道
JobConf.MAPRED_MAP_TASK_ENV
但我使用的具有工作&配置,而不是JobConf的Hadoop版本0.20.2。
我找不到任何这样的变量,这也不是一个Hadoop特定的环境变量,而是一个系统环境变量。
任何解决方案/建议? 在此先感谢..
这看起来一个新的问题,所以提出一个新问题否则它会失去焦点 – 2012-04-20 16:51:38