Невозможно запустить spark-shell из терминала на macOS

#apache-spark #environment-variables #macos-mojave

#apache-spark #переменные среды #macos-mojave

Вопрос:

Я пытался запустить spark-shell из терминала на macOS с помощью ./Documents/spark/spark-3.0.0-bin-hadoop2.7/bin/spark-shell , и он начал работать, но я хотел запустить его, используя только spark-shell .

Я видел 4-минутное видео, в котором показано, как это делается, но у меня это не работает.

Я не совсем понимаю, как ~/.bash_profile работает, но ниже показано, как это выглядит:

 # added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!

__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/ajay/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/ajay/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/ajay/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        export PATH="/Users/ajay/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<
export SPARK_HOME=/Users/ajay/Documents/spark/spark-3.0.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
PATH="/usr/local/bin:/Users/ajay/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
  

$PATH дает /usr/local/bin:/Users/ajay/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Как мне нужно изменить ~/.bash_profile для spark-shell работы?

Редактировать

Вот сообщение, которое я получаю при запуске ./Documents/spark/spark-3.0.0-bin-hadoop2.7/bin/spark-shell

 20/08/27 16:51:16 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://192.168.0.2:4040
Spark context available as 'sc' (master = local[*], app id = local-1598527288778).
Spark session available as 'spark'.
  

При запуске spark-shell он показывает : -bash: spark-shell: command not found

Комментарии:

1. Вы пробовали запускать spark-shell в консоли? Сработало ли это? Что было сообщением об ошибке?

2. @thsutton В правках

3. ~/.bash_profile доступен только для чтения при входе в систему…

Ответ №1:

 export PATH=$PATH:$SPARK_HOME/bin
PATH="/usr/local/bin:/Users/ajay/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
  

Эти две строки расположены в неправильном порядке, поскольку вы «добавляете» установку spark в $PATH , а затем немедленно перезаписываете $PATH .

Возможно, вы предпочтете иметь что-то вроде:

 export PATH="$SPARK_HOME/bin:/Users/ajay/anaconda3/bin:/usr/local/bin:$PATH"
  

Не забывайте, что любые изменения в .bash_profile , .profile , .bashrc вступят в силу только в новой оболочке (если вы не загрузите их вручную).

Комментарии:

1. Итак, 2 строки экспорта должны быть после PATH="/usr/local/bin:/Users/ajay/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" строки?

2. Нет необходимости иметь несколько строк; у вас может быть просто одна строка, которая выполняет `export PATH=»new:things:followed:by:$PATH