2015-06-28 3 views
0

Я получил эту ошибку, когда я пытаюсь выполнить следующую команду: $bin/hadoop namenode –format

/home/MAHI/hadoop-1.2.1/libexec/../conf/hadoop-env.sh: line 31: unexpected EOF while looking for matching `"' 
/home/MAHI/hadoop-1.2.1/libexec/../conf/hadoop-env.sh: line 58: syntax error: unexpected end of file** 
# The java implementation to use. Required. 
export JAVA_HOME= "C:\Java\" 

# Extra Java CLASSPATH elements. Optional. 
# export HADOOP_CLASSPATH= 

# The maximum amount of heap to use, in MB. Default is 1000. 
# export HADOOP_HEAPSIZE=2000 

# Extra Java runtime options. Empty by default. 
# export HADOOP_OPTS=-server 

# Command specific options appended to HADOOP_OPTS when specified 
export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS" 
export HADOOP_SECONDARYNAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_SECONDARYNAMENODE_OPTS" 
export HADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_DATANODE_OPTS" 
export HADOOP_BALANCER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_BALANCER_OPTS" 
export HADOOP_JOBTRACKER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_JOBTRACKER_OPTS" 
export HADOOP_TASKTRACKER_OPTS= 
The following applies to multiple commands (fs, dfs, fsck, distcp etc) 
export HADOOP_CLIENT_OPTS 

Extra ssh options. Empty by default. 
export HADOOP_SSH_OPTS="-o ConnectTimeout=1 -o SendEnv=HADOOP_CONF_DIR" 

Where log files are stored. $HADOOP_HOME/logs by default. 
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs 

File naming remote slave hosts. $HADOOP_HOME/conf/slaves by default. 
export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves 

host:path where hadoop code should be rsync'd from. Unset by default. 
export HADOOP_MASTER=master:/home/$USER/src/hadoop 

Seconds to sleep between slave commands. Unset by default. This 
can be useful in large clusters, where, e.g., slave rsyncs can 
otherwise arrive faster than the master can service them. 
export HADOOP_SLAVE_SLEEP=0.1 

каталог, где PID-файлы хранятся. /tmp по умолчанию.
ПРИМЕЧАНИЕ. Это должно быть указано в каталоге, на который может быть записано только пользователей, которые будут запускать демонов hadoop. В противном случае существует вероятность атаки символической ссылки .

export HADOOP_PID_DIR=/var/hadoop/pids 

A string representing this instance of hadoop. $USER by default. 
export HADOOP_IDENT_STRING=$USER 

The scheduling priority for daemon processes. See 'man nice'. 
export HADOOP_NICENESS=10 

ответ

0

Вы неправильно установили JAVA_HOME в hadoop-env.sh. Дайте полный путь java_home.You может найти путь Java тока Java с помощью следующей команды:

alternatives --config java 

Это даст все версии Java вы установили и выбрать правильную версию и установить этот путь Java в hadoop-env.sh как показано ниже:

export JAVA_HOME=/usr/java/jdk1.*/bin 

Другой подход - установить $ JAVA_HOME в пользовательский .bashrc. Поэтому нет необходимости требовать установки в hadoop-env.sh.

0

экспорт JAVA_HOME = "C: \ Java \"

Это показывает, что Вы используете Hadoop в среде Windows. Но:

экспорт HADOOP_PID_DIR = /вар/Hadoop/ИДП

Эта линия показывает, вы обеспечиваете местоположение папки, как в Linux среде.

Не путайте с окнами и конфигурациями linux. Исправить маршрут, чтобы отразить вашу операционную систему.

0

Установите java в машину и установите путь JAVA_HOME в .bash_profile. Как только вы это сделаете, экспортируйте переменную $ JAVA_HOME, чтобы другие процессы, которые искали JAVA_HOME, могли использовать этот путь. Также задайте путь JAVA_HOME в файле /etc/hadoop/conf/hadoop-env.sh. Примечание: - Некоторые люди устанавливают более одной версии хауопа. Убедитесь, что вы вносите изменения в правильную систему хаоса. Чтобы узнать, какую систему hadoop вы используете, выполните команду cat в файле/etc/alternatives, которая даст все символические ссылки и внесите необходимые изменения.

Смежные вопросы