gpt4 book ai didi

hadoop - 如何从 Mapper Hadoop 设置系统环境变量?

转载 作者:可可西里 更新时间:2023-11-01 16:27:17 27 4
gpt4 key购买 nike

线下的问题已经解决了,但是我又遇到了一个问题。

我正在这样做:

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

但我使用的是 hadoop 版本 0.20.2,它具有 Job & Configuration 而不是 JobConf。

我找不到任何这样的变量,这也不是 Hadoop 特定的环境变量,而是系统环境变量。

任何解决方案/建议?提前致谢..

最佳答案

为什么不在集群的所有节点上导出这个变量?

无论如何,使用 Configuration提交作业时如下类

Configuration conf = new Configuration();
conf.set("mapred.map.child.env",<string value>);
Job job = new Job(conf);

取值的格式为k1=v1,k2=v2

关于hadoop - 如何从 Mapper Hadoop 设置系统环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10246301/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com