除了修改hadoop-env.sh之外,如何在hadoop中指定系统属性?
我想在运行hadoop作业时设置系统属性(而不是hadoop属性)。 我发现设置系统属性并不容易。 即使我在shell中设置属性
export HADOOP_OPTS="$HADOOP_OPTS:-Dproperty=value"
它仍然无法正常工作。 hadoop命令行的“-D”选项仅适用于Configuration,而不适用于系统属性。 所以“-D”选项也不起作用
有人有想法吗? 谢谢
为什么不通过命令行简单地使用-Dfoo.bar=example
in-line,如下所示:
hadoop jar example.jar com.example.ExampleTool -Dfoo.bar=example argument
要在代码中获取属性,请使用conf.get("foo.bar");
现在如果你真的需要将它设置为系统属性,你可以使用从Hadoop配置获得的值在代码的开头设置它,如下所示:
String property = conf.get("foo.bar"); System.setProperty("foo.bar", property);
hadoop
脚本像这样调用java类
exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
所以,我们可以像这样传递系统范围的属性:
export HADOOP_OPTS="$HADOOP_OPTS -Dfoo=bar"
检查系统属性和环境变量之间的区别以及如何在此处设置它们。
- 即使在命令行上告知-D mapred.reduce.tasks = 0之后,hadoop也会减少任务运行
- java.lang.NoSuchFieldError:IBM_JAVA,用于Eclipse中的简单hbase Java客户端
- 如何在Hadoop中将String对象转换为IntWritable对象
- Spark on yarn jar上传问题
- Hadoop gzip压缩文件
- 如何在HBase上使用带有SingleColumnValueFilter的自定义比较器?
- 运行hbase MR作业时,我的cdh5.2集群会出现FileNotFoundException
- 多输出路径(Java – Hadoop – MapReduce)
- apache zeppelin抛出NullPointerException错误