相关疑难解决方法(0)

246
推荐指数
2
解决办法
22万
查看次数

将Hadoop参数传递给Java代码

我有一个Uber jar执行一些级联ETL任务.jar的执行方式如下:

hadoop jar munge-data.jar
Run Code Online (Sandbox Code Playgroud)

我想在工作启动时将参数传递给jar,例如

hadoop jar munge-data.jar -Denv=prod
Run Code Online (Sandbox Code Playgroud)

将根据环境从属性文件中读取不同的凭据,主机名等.

如果作业被执行java jar munge-data.jar -Denv=prod,这将起作用,因为env可以访问该属性:

System.getProperty("env")
Run Code Online (Sandbox Code Playgroud)

但是,执行jar时这不起作用hadoop jar ....

我看到了一个类似的线程,其中回答者声明可以使用类似于org.apache.hadoop.conf.Configuration类的方法访问属性.从答案来看,我不清楚如何conf创建对象.我尝试了以下内容并返回null:

Configuration configuration = new Configuration();
System.out.println(configuration.get("env"));
Run Code Online (Sandbox Code Playgroud)

据推测,需要读取/设置配置属性.

你能告诉我如何将属性传递hadoop jar [...] -DsomeProperty=someValue给我的ETL工作吗?

java hadoop jar

5
推荐指数
2
解决办法
3062
查看次数

标签 统计

java ×2

environment ×1

hadoop ×1

jar ×1

properties ×1

system ×1

variables ×1