Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hadoop 2.x中的分布式缓存_Java_Hadoop_Mapreduce_Distributed Cache - Fatal编程技术网

Java Hadoop 2.x中的分布式缓存

Java Hadoop 2.x中的分布式缓存,java,hadoop,mapreduce,distributed-cache,Java,Hadoop,Mapreduce,Distributed Cache,我在Hadoop 2.x新API中的DistributedCache中遇到了一个问题,我发现一些人正在解决这个问题,但它并没有解决我的问题 此解决方案不适用于我,因为我在尝试检索DistributedCache中的数据时遇到NullPointerException 我的配置如下: 司机 安装程序 在这里,当它开始创建缓冲读取器时,抛出NullPointerException,这是因为context.getCacheFiles()始终返回空值。如何解决这个问题,缓存文件存储在哪里(HDFS或本地文

我在Hadoop 2.x新API中的DistributedCache中遇到了一个问题,我发现一些人正在解决这个问题,但它并没有解决我的问题

此解决方案不适用于我,因为我在尝试检索DistributedCache中的数据时遇到NullPointerException

我的配置如下:

司机 安装程序
在这里,当它开始创建缓冲读取器时,抛出NullPointerException,这是因为context.getCacheFiles()始终返回空值。如何解决这个问题,缓存文件存储在哪里(HDFS或本地文件系统)

如果在Hadoop中使用本地JobRunner(非分布式模式,作为单个Java进程),则不会创建本地数据目录;getLocalCacheFiles()或getCacheFiles()调用将返回一组空结果。能否确保以分布式或伪分布式模式运行作业

Hadoop框架将分布式缓存中设置的文件复制到作业中每个任务的本地工作目录。 存在所有缓存文件的副本,这些文件放置在每个工作计算机的本地文件系统中。(它们将位于mapred.local.dir的子目录中。)


关于DistributedCache的更多信息,您可以参考本文。

如果您在Hadoop中使用本地JobRunner(非分布式模式,作为单个Java进程),则不会创建本地数据目录;getLocalCacheFiles()或getCacheFiles()调用将返回一组空结果。能否确保以分布式或伪分布式模式运行作业

Hadoop框架将分布式缓存中设置的文件复制到作业中每个任务的本地工作目录。 存在所有缓存文件的副本,这些文件放置在每个工作计算机的本地文件系统中。(它们将位于mapred.local.dir的子目录中。)


关于DistributedCache的更多信息,您可以参考本文。

如果您在Hadoop中使用本地JobRunner(非分布式模式,作为单个Java进程),则不会创建本地数据目录;getLocalCacheFiles()或getCacheFiles()调用将返回一组空结果。能否确保以分布式或伪分布式模式运行作业

Hadoop框架将分布式缓存中设置的文件复制到作业中每个任务的本地工作目录。 存在所有缓存文件的副本,这些文件放置在每个工作计算机的本地文件系统中。(它们将位于mapred.local.dir的子目录中。)


关于DistributedCache的更多信息,您可以参考本文。

如果您在Hadoop中使用本地JobRunner(非分布式模式,作为单个Java进程),则不会创建本地数据目录;getLocalCacheFiles()或getCacheFiles()调用将返回一组空结果。能否确保以分布式或伪分布式模式运行作业

Hadoop框架将分布式缓存中设置的文件复制到作业中每个任务的本地工作目录。 存在所有缓存文件的副本,这些文件放置在每个工作计算机的本地文件系统中。(它们将位于mapred.local.dir的子目录中。)


关于DistributedCache的更多信息,请参考此链接。

我正在以非分布式模式使用Hadoop进行测试,我将其移动到完全分布式集群,我已经阅读了您发送给我的链接,但仍然无法理解一些点,如mapred.local.dir,因为我理解此配置需要在Hadoop-conf.xml中设置。但是在Hadoop2.x中没有这样的文件,或者我应该将这个配置添加到core-site.xml中(对吗?)Hi-Mahmoud mapred.local.dir属性包含在Hadoop 1.x中的mapred-site.xml中。此属性设置MapReduce存储作业中间数据文件的本地目录。在Hadoop 2.x中,与旧名称相等的peoperty名称是MapReduce.cluster.local.dir,可以在mapred-site.xml中进行配置。您可以了解这一点以下链接的属性:您是否有一个工作示例的链接,似乎我误解了什么,因为仍然存在NullPointerException,但我认为您的解决方案是正确的,通过阅读本文,我知道如果你使用的是Thread,那么你可以使用你现在使用的API。但是如果你在MR1中配置了一个集群,那么你必须使用旧的不推荐的API。你可以这样尝试吗。我似乎在解决一个bug()我有hadoop 2.1.0-beta,我将尝试更改版本。我在非分布式模式下使用hadoop进行测试,我将把它移动到完全分布式集群,我已经阅读了您发送给我的链接,但仍然无法找到一些点,如mapred.local.dir,因为我知道这个配置需要在hadoop-conf.xml中设置。但是在Hadoop2.x中没有这样的文件,或者我应该将这个配置添加到core-site.xml中(对吗?)Hi-Mahmoud mapred.local.dir属性包含在Hadoop 1.x中的mapred-site.xml中。此属性设置MapReduce存储作业中间数据文件的本地目录。在Hadoop 2.x中,与旧名称相等的peoperty名称是MapReduce.cluster.local.dir,可以在mapred-site.xml中进行配置。您可以了解这一点以下链接的属性:您是否有一个工作示例的链接,似乎我误解了什么,因为仍然存在NullPointerException,但我认为您的解决方案是正确的,通过阅读本文,我知道如果你使用的是Thread,那么你可以使用你现在使用的API。但是如果你在MR1中配置了一个集群,那么你必须使用旧的不推荐的API。你可以这样尝试吗。我似乎在解决一个bug()我有hadoop 2.1.0-beta,我将尝试更改版本。我在非分布式模式下使用hadoop进行测试,我将把它移动到完全分布式集群,我已经阅读了您发送给我的链接,但仍然无法找到一些点,如mapred.local.dir,因为我知道这个配置需要在hadoop-conf.xml中设置。但是在Hadoop2.x中没有
    public int run(String[] arg) throws Exception {
        Configuration conf = this.getConf();
        Job job= new Job(conf,"job Name");
        ...
        job.addCacheFile(new URI(arg[1]);
    protected void setup(Context context)
            throws IOException, InterruptedException {
        Configuration conf = context.getConfiguration();
        URI[] cacheFiles = context.getCacheFiles();
        BufferedReader dtardr = new BufferedReader(new FileReader(cacheFiles[0].toString()));