hadoop - 如何在Hortonworks Sandbox中编译WordCount.java?

我正在阅读教程,并尝试在Hortonworks Data Platform Sandbox中运行WordCount示例。但是,当我尝试从命令行进行编译时,出现错误并且无法构建它。

在终端我输入Java编译命令:

$ javac WordCount.java

出现以下错误,而不是编译并获取.class文件:
WordCount.java:27: error: package org.apache.hadoop.conf does not exist

import org.apache.hadoop.conf.Configuration;

^

WordCount.java:28: error: package org.apache.hadoop.conf does not exist

import org.apache.hadoop.conf.Configured;

^

WordCount.java:29: error: package org.apache.hadoop.fs does not exist

import org.apache.hadoop.fs.Path;

^

WordCount.java:30: error: package org.apache.hadoop.io does not exist

import org.apache.hadoop.io.IntWritable;

^

WordCount.java:31: error: package org.apache.hadoop.io does not exist

import org.apache.hadoop.io.LongWritable;

^

WordCount.java:32: error: package org.apache.hadoop.io does not exist

import org.apache.hadoop.io.Text;

^

WordCount.java:42: error: package org.apache.hadoop.util does not exist

import org.apache.hadoop.util.Tool;

^

WordCount.java:43: error: package org.apache.hadoop.util does not exist

import org.apache.hadoop.util.ToolRunner;

^

WordCount.java:54: error: cannot find symbol

public class WordCount extends Configured implements Tool {

^

symbol: class Configured

WordCount.java:54: error: cannot find symbol

public class WordCount extends Configured implements Tool {

^

symbol: class Tool

WordCount.java:61: error: cannot access Closeable

public static class MapClass extends MapReduceBase

^

class file for org.apache.hadoop.io.Closeable not found

WordCount.java:64: error: cannot find symbol

private final static IntWritable one = new IntWritable(1);

^

symbol: class IntWritable

location: class MapClass

WordCount.java:65: error: cannot find symbol

private Text word = new Text();

^

symbol: class Text

location: class MapClass

WordCount.java:67: error: cannot find symbol

public void map(LongWritable key, Text value,

^

symbol: class LongWritable

location: class MapClass

WordCount.java:67: error: cannot find symbol

public void map(LongWritable key, Text value,

^

symbol: class Text

location: class MapClass

WordCount.java:68: error: cannot find symbol

OutputCollector<Text, IntWritable> output,

^

symbol: class Text

location: class MapClass

WordCount.java:68: error: cannot find symbol

OutputCollector<Text, IntWritable> output,

^

symbol: class IntWritable

location: class MapClass

WordCount.java:83: error: cannot find symbol

implements Reducer<Text, IntWritable, Text, IntWritable> {

^

symbol: class Text

location: class WordCount

WordCount.java:83: error: cannot find symbol

implements Reducer<Text, IntWritable, Text, IntWritable> {

^

symbol: class IntWritable

location: class WordCount

WordCount.java:83: error: cannot find symbol

implements Reducer<Text, IntWritable, Text, IntWritable> {

^

symbol: class Text

location: class WordCount

WordCount.java:83: error: cannot find symbol

implements Reducer<Text, IntWritable, Text, IntWritable> {

^

symbol: class IntWritable

location: class WordCount

WordCount.java:85: error: cannot find symbol

public void reduce(Text key, Iterator<IntWritable> values,

^

symbol: class Text

location: class Reduce

WordCount.java:85: error: cannot find symbol

public void reduce(Text key, Iterator<IntWritable> values,

^

symbol: class IntWritable

location: class Reduce

WordCount.java:86: error: cannot find symbol

OutputCollector<Text, IntWritable> output,

^

symbol: class Text

location: class Reduce

WordCount.java:86: error: cannot find symbol

OutputCollector<Text, IntWritable> output,

^

symbol: class IntWritable

location: class Reduce


我究竟做错了什么?我使用的是当前版本的Hortonworks Sandbox 2.6.1。 Hadoop版本为3.1.1

最佳答案

您需要指定正确的类路径。在沙箱中,您可以使用hadoop类路径信息。

试试看(注意引号,它们必须是反引号!“`”):

$ javac -cp `hadoop classpath` WordCount.java

https://stackoverflow.com/questions/55324049/

相关文章:

amazon-web-services - 如何知道Amazon Emr集群上的mapred-sit

docker - Docker Mesosphere/chronos容器在启动后立即失败

docker - docker 错误FATA [0000]获取http:///var/run/doc

macos - 从其他物理机访问Docker容器IP

hadoop - 撒哈拉集群的 Vanilla 图像

hadoop - 更改表列名称拼写格式Hadoop

hadoop - 从Hue运行python脚本

hadoop - 从 View 创建表存储为文本文件时出错

sql - 我需要创建一个新列或将原始列从 array 更改为 map

ruby-on-rails - 将时钟进程与Docker上的sidekiq worker分开