Если у вас есть эта ошибка с Symfony с помощью построителя запросов doctrine, и если эта ошибка вызвана orderBy:
Обратите внимание на select
столбец, который вы хотите groupBy
, и используйте addGroupBy
вместо groupBy
:
$query = $this->createQueryBuilder('smth')->addGroupBy('smth.mycolumn');
Работает на Symfony3 -
Я использую hasoop 1.1, я также столкнулся с этой проблемой.
Я изменил переменную JAVA_HOME в conf / hadoop-env.sh
export JAVA_HOME=/etc/local/java/<jdk folder>
теперь она работает
Способ решения этой проблемы состоит в том, чтобы экспортировать переменную JAVA_HOME в файл conf / hadoop-env.sh.
Неважно, если вы уже экспортировали эту переменную в ~ / .bashrc, он все равно покажет ошибку.
Итак, отредактируйте conf / hadoop-env.sh и раскомментируйте строку «export JAVA_HOME» и добавьте к ней правильный путь к файловой системе, то есть путь к вашему Java JDK.
# Реализация Java для использования. Необходимые. экспорт JAVA_HOME = "/ path / to / java / JDK /"
blockquote>
Я также столкнулся с аналогичной проблемой в hadoop 1.1. Я не заметил, что JAVA_HOME
был прокомментирован в: hadoop/conf/hadoop-env.sh
Было
/#JAVA_HOME=/usr/lib/jvm/java-6-oracle
измените его на
JAVA_HOME=/usr/lib/jvm/java-6-oracle
echo "export JAVA_HOME=/usr/lib/java" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
Примечание: Не используйте export JAVA_HOME=${JAVA_HOME}
!
Выйти в ту же тему на ubuntu LTS 16.04. Запуск bash -vx ./bin/hadoop
показал, что он проверял, является ли java каталогом. Поэтому я изменил JAVA_HOME в папку, и он сработал.
++ [[ ! -d /usr/bin/java ]]
++ hadoop_error 'ERROR: JAVA_HOME /usr/bin/java does not exist.'
++ echo 'ERROR: JAVA_HOME /usr/bin/java does not exist.'
ERROR: JAVA_HOME /usr/bin/java does not exist.
Итак, я изменил JAVA_HOME в ./etc/hadoop/hadoop-env.sh
на
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre/
, и hasoop начал нормально. Это также упоминается в этой статье .
независимо от debian или любого вкуса linux, просто знайте, что ~/.bash_profile
принадлежит определенному пользователю и не является системным. в псевдораспределенной среде hasoop работает на localhost
, поэтому $JAVA_HOME
в .bash_profile больше не используется.
просто экспортирует JAVA_HOME в ~/.bashrc
и использует его в системной области.
extract from etc / hadoop / hadoop-env.sh
Единственной требуемой переменной среды является JAVA_HOME. Все остальные являются необязательными. При запуске распределенной конфигурации лучше всего установить JAVA_HOME в этом файле, чтобы он был правильно определен на удаленных узлах.
Это означает, что лучше и рекомендуется установить JAVA_HOME здесь .. хотя существующее определение читается переменная JAVA_HOME. Возможно, он не получает значение JAVA_HOME от ранее установленного значения ... стандартное руководство Apache не говорит об этом :(: (
Измените переменную JAVA_HOME
в conf/hadoop-env.sh
export JAVA_HOME=/etc/local/java/<jdk folder>
Способ отладки заключается в том, чтобы поставить «echo $ JAVA_HOME» в start -all.sh. Вы используете свою среду hadoop под другим именем пользователя или как себя? Если первое, очень вероятно, что переменная среды JAVA_HOME не установлена для этого пользователя.
Другая потенциальная проблема заключается в том, что вы неправильно указали JAVA_HOME, а предоставленное вами значение не указывает на JDK / JRE. Обратите внимание, что «java» и «java -version» будут работать, даже если JAVA_HOME установлен неверно.
Проверьте, соответствуют ли ваши альтернативы правильному, вы можете фактически указывать на другую версию и пытаться изменить hasoop-env.sh на другой установленной версии.
-alternatives --install / etc / hadoop / conf [generic_name] [ваш правильный путь] приоритет {для дополнительной проверки справочной страницы альтернатив}
для установки альтернатив вручную,
alternatives --set [generic name] [ваш текущий путь].
Эта ошибка исходит от строки 180
if [[ -z $JAVA_HOME ]]; then
echo "Error: JAVA_HOME is not set and could not be found." 1>&2
exit 1
fi
в libexec/hadoop-config.sh
.
Попробуйте выполнить эхо $JAVA_HOME
в этом скрипте. Если он не распознается,
Найдите свой JAVA_HOME
, используя это:
$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
и замените строку
export JAVA_HOME=${JAVA_HOME}
в /etc/hadoop/hadoop-env.sh
с JAVA_HOME, который вы получили из команды выше.