我需要根据hadoop job.properties中的内容创建动态文件,然后将其放入分布式缓存中。
当我创建文件时,我发现它是使用" / tmp"的路径创建的。
我创建一个符号名称并在缓存中引用此文件。现在,当我尝试在Dis中读取文件时。缓存我无法访问它。我得到的错误是由:java.io.FileNotFoundException:请求的文件/tmp/myfile6425152127496245866.txt不存在。
请告诉我如果我在创建文件时还需要指定路径,并在访问/读取文件时使用该路径。
我只需要该文件仅在作业运行之前可用。
答案 0 :(得分:0)
我真的不明白你的意思
我只需要该文件仅在作业运行之前可用
但是,当我练习使用分布式缓存时,我使用这样的路径:
final String NAME_NODE = "hdfs://sandbox.hortonworks.com:8020";
job.addCacheFile(new URI(NAME_NODE + "/user/hue/users/users.dat"));
希望这会对你有所帮助。