【问题标题】:Amazon EMR: Passing java system property to custom jarAmazon EMR:将 java 系统属性传递给自定义 jar
【发布时间】:2013-09-02 15:44:27
【问题描述】:

Amazon EMR 是否允许将系统属性传递给自定义 jar,例如hadoop jar -Dkey=value myjob.jar? (keyvalue上面在应用程序本身初始化时使用,而不是属于hadoop的Configuration对象。)

相关线程How to specify mapred configurations & java options with custom jar in CLI using Amazon's EMR? 讨论了仅通过引导操作将系统属性传递给hadoop 守护程序的方法,显然,这不允许对java 入口点类执行相同的操作。

【问题讨论】:

  • 如果你甚至能够以某种方式做到这一点,但 将无法从所有映射器和减速器访问,除非你在上下文中设置它们。
  • 这正是我们的目标。
  • 如果是这种情况,请检查我的回答 - 可能会对您有所帮助。谢谢!

标签: java hadoop amazon-emr system-properties


【解决方案1】:

如果您不想将 传递给映射器或减速器,您可以在终端或脚本中执行以下操作 -

export HADOOP_OPTS="-Dkey=value"
hadoop jar ...

您也可以将它们放在$HADOOP_HOME/conf/hadoop-env.sh 中,如果您希望每个作业都使用它,而无需在每次运行作业时都明确定义它们。

希望这是有道理的。

【讨论】:

  • 我对 EMR 比较陌生。在 EMR 中创建作业流时,必须提供自定义 jar 位置 + 其参数。什么时候我们可以通过终端访问集群?如果是这样,这应该在工作开始之前完成吗?谢谢,
  • 你能检查一下引导操作,看看你是否可以传递环境变量吗?我认为,export HADOOP_OPTS="-Dkey=value" 是一个环境变量。如果您想使用 ssh 直接访问终端,you can follow this guide。谢谢
  • 你也可以look at this
  • 非常感谢您的建议。会试一试的。
猜你喜欢
  • 2012-05-17
  • 2015-06-30
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
相关资源
最近更新 更多