|
Разработка Spark приложений на винде.
|
|||
---|---|---|---|
#18+
Ко мне в почту обратился человек с форума касательно примерно такого вопроса: разработка приложений, использующих Spark без сборки и заливки jar в кластер. Хотелось бы заметить, что в почте я отвечать не вижу смысла. Форум на то и форум, что может быть полезно более чем одному, да и мой ответ могут дополнить или подкорректировать. В общем не претендуя никоим образом на эксерта в данной области опишу некоторые моменты, может кому-то поможет для старта. 1. Я бы предложил начать с самого простого примера, который выполнится и на винде и на линуксе. Нашел у себя древнюю заготовку на scala (но не супер древнюю, для запуска нужен Spark 2.0+ вроде) Код считает число строк в текстовом файле содержащих а и то же для b. Делается это с помощью Spark. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Если выполняется, значит вы сумели подтянуть все зависимости и можно продолжать. Из этого же можно сгенерировать jar и залить в линукс, только не забыть путь прописать другой для spark.read.textFile. Здесь стоит обратить внимание, что если хочется использовать SQL (и hive metastore) или прописать детали менеджера ресурсов или настройки kerberos, то многое из этого и еще куча всего может указываться как методы после .builder. Типа .config("hive.metastore.uris", "...") 2. Идея использовать driver program на винде является нерациональной изначально, имхо. В чем проблема после билда заливать батником с тем же pscp на сервер? В моем случае за это отвечает билд сервер. Предположим таки, что идея фикс сборки заливки jar избежать. Тут если посмотреть в доку https://spark.apache.org/docs/latest/cluster-overview.html главной проблемой будет как минимум The driver program must listen for and accept incoming connections from its executors throughout its lifetime (e.g., see spark.driver.port in the network config section). As such, the driver program must be network addressable from the worker nodes. Дополнительно, тезисно https://stackoverflow.com/questions/37027732/spark-standalone-differences-between-client-and-cluster-deploy-modes. Я не говорю, что это невозможно в принципе, но я бы даже не стал заморачиваться. Для любителей острых ощущений есть и YARN на винде, и прочая экзотика, но имхо и бех этого головняка хватает. Если желание избежать заливки из-за сложностей дебага, то как правило все выставляют нужный уровень логгирования и потом ковыряются в логах. На крайний случай - remote debugging (google: agentlib:jdwp). 3. Самый простой путь начать - скачать Oracle Big Data Lite . Там все сконфигурировано и настроено. При желании в виртуалку можно качнуть intellij/eclipse или что еще по вкусу и разрабатывать себе под линуксом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2018, 03:33 |
|
Разработка Spark приложений на винде.
|
|||
---|---|---|---|
#18+
dbms_photoshop 2. Идея использовать driver program на винде является нерациональной изначально, имхо. В чем проблема после билда заливать батником с тем же pscp на сервер? В моем случае за это отвечает билд сервер. Идея совершенно нормальная и не раз муссировалась в сети. Проблема в самом Spark, точнее в его bootstrap script, который целиком написан на shell, были попытки переписать его на Scala, но дело заглохло по какой-то причине. Зачем это надо? Да чтоб сделать работу со Spark полноценной интерактивной не через убогий spark-shell, а прямо из IDE, дебажить опять же. Есть определенные обходные пути, но нормально этого сделать нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2018, 04:52 |
|
|
start [/forum/topic.php?fid=48&msg=39603603&tid=1856635]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 270ms |
0 / 0 |