0

我写了一个hadoop程序,我知道我可以直接将参数传递给hadoop使用args [],我的意思是目前是这样的

ToolRunner.run(new Configuration(), new RunDear(), args); 

但是如果有很多参数,我可以制作一个像下面这样的配置文件并传递给hadoop吗?这个文件应该在哪里,在本地文件系统或 hdfs 中?

sample_size 200
input_genotype_file /data/genotypes.txt 
input_phenotype_file /data/phenotypes.txt
output_directory /outout 
mtry 200
ntree 3000
distance 0 (e.g. 0=euclidean, 1=mehalanobis
variable_important 0 (e.g. 0=information gain, 1=permutation)
etc….
4

3 回答 3

1

您可以将文件放入分布式缓存中,然后将配置中的文件名传递给您的任务。

于 2012-05-28T07:00:01.417 回答
1

您可以使用 conf.addResource(new Path(/path/to/local/file))。这会将文件传递给每个任务。

于 2012-05-28T07:43:42.587 回答
0

您可以创建一个包装类,它读取这些参数并将它们设置在 agrs 数组中,然后传递它。

于 2012-05-27T09:00:08.140 回答