Hadoop Job从本地读取或写入blob

时间:2018-06-12 15:31:17

标签: java azure hadoop hdinsight

我在运行mapreduce作业时遇到问题。我认为的问题是配置。

我的作业有两个参数:输入输出目录。问题是,Job有内部代码为自己准备数据,确切地说: 它将结帐存储库形成github到作为参数给出的输入位置,然后将输出保存在 output 目录中。因此,当我在本地运行我的作业hadoop jar myjar.jar input output时,作业会将源文件检出到输入目录,并在那里阅读表格。

但在HDInsight中运行它并不是这样。我已经通过scp上传了jar文件并由yarn jar hadoop-1.0-SNAPSHOT.jar input output启动了它。正如假设Job正在读取blob存储而不是形成jar位置,但内部代码正在写入本地文件系统,因此我的工作没有看到输入文件。

我在这里看到两个选项。首先,首选的是配置hadoop以读取表单本地文件系统,因此Job将看到check-outed文件。第二个是以某种方式检查从github到blob input 目录的源代码。我尝试以输入目录运行作业传递wsab(wasb://YOURDefaultContainer@YOURStorageAccount.blob.core.windows.net/SomeDirectory/ASubDirectory/)uri,但这不起作用任

我正在使用jgit来检查源文件:

  

文件目的地=新文件(inputDir +" /" +项目);   。Git.cloneRepository()setURI(URI).setDirectory(目的地).CALL();

感谢您的帮助。

0 个答案:

没有答案