Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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.5.1和Hadoop 2.2.0的文件拷贝_Java_Maven_Hadoop_Cascading - Fatal编程技术网

Java Hadoop:级联2.5.1和Hadoop 2.2.0的文件拷贝

Java Hadoop:级联2.5.1和Hadoop 2.2.0的文件拷贝,java,maven,hadoop,cascading,Java,Maven,Hadoop,Cascading,我最近在MacOSX上安装了一个伪分布式Hadoop2.2.0集群,如下所示。然后,我使用Cascading 2.5.1尝试了基本的级联文件副本,但是当我使用maven编译项目时,我得到了以下错误: [ERROR] /Users/david/IdeaProjects//CascadingIntro/src/main/java/com/example/CascadingIntro.java:[24,24] cannot access org.apache.hadoop.mapred.JobCon

我最近在MacOSX上安装了一个伪分布式Hadoop2.2.0集群,如下所示。然后,我使用Cascading 2.5.1尝试了基本的级联文件副本,但是当我使用maven编译项目时,我得到了以下错误:

[ERROR] /Users/david/IdeaProjects//CascadingIntro/src/main/java/com/example/CascadingIntro.java:[24,24] 
cannot access org.apache.hadoop.mapred.JobConf
class file for org.apache.hadoop.mapred.JobConf not found
我做错了什么?我该如何解决这个问题?我相信Cascading 2.5.1与Cascading.org上的Hadoop 2.2.0兼容

我的pom.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>CascadingIntro</groupId>
<artifactId>CascadingIntro</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
    <repository>
        <id>conjars.org</id>
        <url>http://conjars.org/repo</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>cascading</groupId>
        <artifactId>cascading-core</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>cascading</groupId>
        <artifactId>cascading-hadoop</artifactId>
        <version>2.5.1</version>
    </dependency>
</dependencies>
<build>
    <finalName>CascadingIntro</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.CascadingIntro</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>
</project>

您需要将hadoop客户端添加到依赖项中:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.2.0</version>
</dependency>

org.apache.hadoop
hadoop客户端
2.2.0

谢谢你的回答,我添加了这个,但是得到了这个:
线程“main”java.lang.NoClassDefFoundError中的异常:级联/scheme/scheme由以下原因引起:java.lang.ClassNotFoundException:cascading.scheme.scheme
想法?一秒钟,可能就是类路径,对吗?我用程序集插件添加了所有依赖项,但我在线程“main”cascading.flow.planner.PlannerException中的mr作业
异常的开头就正确了这一点:[无效字段类型(null);必须是字符串或整数:]
这可能是一个兼容性问题:。你的想法?
“对我有用”
:你有没有可能把解决方案归档并下载下来。。。它大约是22MB,因为我在组装好的作业jar中包含了target/文件。我还添加了一个简单的运行脚本。谢谢你,我仔细阅读了,它编译得很好。快速提问,您知道我是如何告诉Cascading在hdfs而不是本地文件系统中查找副本的吗?
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.2.0</version>
</dependency>