Hadoop:如何使用 Java 应用程序写入 HDFS
Hadoop: How to write to HDFS using a Java application
我是 Hadoop 的新手,正在努力学习。我正在 运行 Ubuntu Linux 上的 Eclipse 中尝试以下 Hadoop 示例代码。我有 Hadoop v 2.7.0 并且我有所需的罐子。
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
Path pt=new Path("hdfs://localhost:9000/myhome/a.txt");
FileSystem fs = FileSystem.get(conf);
当我 运行 Eclipse 中的应用程序时,我得到 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
。我正在引用的 hadoop-common-2.7.0.jar
文件不包含正在查找的 class 应用程序。我正在引用那个 jar 文件 Hadoop/common 文件夹。
任何解决此问题的帮助将不胜感激。
如果我为上述代码创建 class 的 jar 文件,并使用 hadoop -jar <jar file> <class name>
创建 运行 它,它就可以工作。所以我想知道是否有可能在不使用 hadoop 命令的情况下从 Eclipse 或命令行 运行 Hadoop Java 应用程序。
JVM 似乎没有加载所有必需的 Hadoop 工件。
如果您是 maven 用户,请确保您拥有这些依赖项。
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.client.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.client.version}</version>
</dependency>
我是 Hadoop 的新手,正在努力学习。我正在 运行 Ubuntu Linux 上的 Eclipse 中尝试以下 Hadoop 示例代码。我有 Hadoop v 2.7.0 并且我有所需的罐子。
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
Path pt=new Path("hdfs://localhost:9000/myhome/a.txt");
FileSystem fs = FileSystem.get(conf);
当我 运行 Eclipse 中的应用程序时,我得到 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
。我正在引用的 hadoop-common-2.7.0.jar
文件不包含正在查找的 class 应用程序。我正在引用那个 jar 文件 Hadoop/common 文件夹。
任何解决此问题的帮助将不胜感激。
如果我为上述代码创建 class 的 jar 文件,并使用 hadoop -jar <jar file> <class name>
创建 运行 它,它就可以工作。所以我想知道是否有可能在不使用 hadoop 命令的情况下从 Eclipse 或命令行 运行 Hadoop Java 应用程序。
JVM 似乎没有加载所有必需的 Hadoop 工件。
如果您是 maven 用户,请确保您拥有这些依赖项。
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.client.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.client.version}</version>
</dependency>