error: Не удалось найти или загрузить основной класс com.sun.tools.javac.Main в Hadoop [duplicate]

Еще один подход к возврату значения из асинхронной функции - передать объект, который сохранит результат от асинхронной функции.

Вот пример того же:

var async = require("async");

// This wires up result back to the caller
var result = {};
var asyncTasks = [];
asyncTasks.push(function(_callback){
    // some asynchronous operation
    $.ajax({
        url: '...',
        success: function(response) {
            result.response = response;
            _callback();
        }
    });
});

async.parallel(asyncTasks, function(){
    // result is available after performing asynchronous operation
    console.log(result)
    console.log('Done');
});

Я использую объект result для хранения значения во время асинхронной операции. Это позволяет получить результат даже после асинхронного задания.

Я использую этот подход много. Мне было бы интересно узнать, насколько хорошо этот подход работает, когда задействован результат обратно через последовательные модули.

8
задан Liondancer 25 March 2015 в 17:13
поделиться

3 ответа

Вы не можете установить jdk. Проверьте свой /lib/tools.jar в своей папке java. Если нет, #sudo apt-get установит default-jdk, и ошибка исчезнет.

2
ответ дан Anna Chen 31 August 2018 в 23:45
поделиться

bin/hadoop com.sun.tools.javac.Main WordCount.java окончательно работает как java com.sun.tools.javac.Main WordCount.java.

Если ваш classpath / javahome прав, попробуйте ввести java ... самостоятельно и проверьте имя com.sun.tools... с помощью клавиши TAB , Возможно, имя не является правильным. (яйцо, вы используете Java из Oracle, а не SUN)

Другое предложение изменяет $HADOOP_HOME/etc/hadoop/hadoop-env.sh. Добавьте tools.jar в HADOOP_CLASSPATH.

2
ответ дан cricket_007 31 August 2018 в 23:45
поделиться

У меня такая же ошибка.

И я решил это, добавив параметр среды HADOOP_CLASSPATH:

export HADOOP_CLASSPATH=/usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar

Пожалуйста, убедитесь, что вы установили OpenJDK7. Я использую Ubuntu 14.04:

sudo apt-get install openjdk-7-jdk
17
ответ дан Nguyen Sy Thanh Son 31 August 2018 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: