в чем разница между spark-shell и отправленными программами sbt

#shell #apache-spark #sbt

#оболочка #apache-spark #sbt

Вопрос:

Spark-shell можно использовать для взаимодействия с распределенным хранилищем данных, тогда в чем существенная разница между кодированием в spark-shell и загрузкой упакованных независимых приложений sbt в работу кластера?(Я обнаружил разницу в том, что sbt отправляет задание, которое можно увидеть в интерфейсе управления кластером, а оболочка не может) В конце концов, sbt очень хлопотно, а оболочка очень удобна. Большое спасибо!

Ответ №1:

Spark-shell предоставляет вам простой консольный интерфейс, в котором вы можете запускать свои коды как отдельные команды. Это может быть очень полезно, если вы все еще экспериментируете с пакетами или отлаживаете свой код.

 I found a difference is sbt submit the job can be seen in the cluster management interface, and the shell can not
  

На самом деле, spark shell также отображается в пользовательском интерфейсе задания как «Spark-Shell», и вы можете отслеживать задания, которые вы выполняете через это.

Создание приложений spark с использованием SBT дает вам некоторую организацию в процессе разработки, итеративную компиляцию, которая полезна в повседневной разработке, и благодаря этому можно избежать большого количества ручной работы. Если у вас есть постоянный набор вещей, которые вы всегда запускаете, вы можете просто снова запустить тот же пакет вместо того, чтобы испытывать трудности с запуском всего этого, например, команд. SBT требует некоторого времени для привыкания, если вы новичок в стиле разработки Java, но это может помочь поддерживать приложения в долгосрочной перспективе.

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

1. Спасибо за объяснение. Если я должен запустить простую программу на большом наборе данных, хранящихся в HDFS, должен ли я делать это с помощью spark-shell или я должен отправить ее с помощью sbt? Есть ли различия в производительности?

2. Я бы рекомендовал запускать вашу программу как приложение SBT из-за указанных выше причин. Но если это будет только один раз, и вы никогда не собираетесь делать это снова, я не вижу ничего плохого в том, чтобы делать это в shell.