Как стать автором
Обновить

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

Все-таки переводить «Notebooks» как ноутбук — не есть хорошо.
Опрос не открывается.

Спасибо, поправили!

Как Spark + Java 8 + Scala разработчик на Hadoop скажу вот что: нам для работы со Spark более чем хватает Community. Спарк вполне запускается локально на машине разработчика, и вполне может при этом работать с кластером (проблемы при этом — ну разве что правильная настройка Kerberos). У нас Jupiter, и Hue. А еще например Hbase, и Kafka. И Oozie. Кроме паркета мы чего только не используем, из очевидных — Avro и CSV, а еще JSON, к примеру. Scala плагин есть, и он более-менее работает (далеко не идеально, впрочем).

И вот смотрю я на этот зооопарк, и думаю — а нафига бы мне пригодился такой вот инструмент? И прихожу к выводу, что ни для чего он мне не нужен. Нашим DataScience коллегам — возможно и подошел бы, но они а) пишут на PySpark, то есть на сегодня в пролете, и б) у них Jupiter, а не Цеппелин. Базовая интеграция со Spark на Hedoop… ну хм. И что, отладку на кластере напишете? Авторизацию в Kerberos (IPA), в количестве N штук, несколько кластеров одновременно. Интеграция с и.т.д (например, Hive, но HBase и кафка тоже напрашивается) нужна позарез. Причем со всем и.т.д. одновременно.
а нам бы пригодилось. по данным с кластера красивые отчетики прямо в родной среде вывести.
зепелин что бы поставить надо админов привлекать, ставить stb, открывать порты. сложно…
Расскажите подробнее про сложности настройки. Используете ли вы Spark? Удобно ли было бы запускать Zeppelin или Spark локально?
у нас на кластере cloudera 5.x, там по дефолту спарк еще из первой ветки. на узлах кластера стоит parcel c 2.x веткой, а на машинках что имеют доступ к узлам кластера похоже не по ставили. т.е. надо или с админами договариваться или самому собирать ванильный, который тоже так просто не собрался.
и локально че-то не работает, зепелин коверкает похоже логи и даже не понять что у него не так

2019-10-17 08:48:30 INFO Client:54 - Setting up container launch context for our AM
2019-10-17 08:48:30 INFO Client:54 - Setting up the launch environment for our AM container
2019-10-17 08:48:30 INFO Client:54 - Preparing resources for our AM container
2019-10-17 08:48:32 WARN Client:66 - Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
2019-10-17 08:48:44 INFO Client:54 - Uploading resource file:/tmp/spark-e2b2fd0e-955d-43b7-a203-d86e7680b38a/__spark_libs__8513377897181943277.zip -> hdfs://censoredfs/user/censored/.sparkStaging/application_1570322815840_17054/__spark_libs__8513377897181943277.zip

at org.apache.zeppelin.interpreter.remote.RemoteInterpreterManagedProcess.start(RemoteInterpreterManagedProcess.java:205)
at org.apache.zeppelin.interpreter.ManagedInterpreterGroup.getOrCreateInterpreterProcess(ManagedInterpreterGroup.java:64)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getOrCreateInterpreterProcess(RemoteInterpreter.java:111)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.internal_create(RemoteInterpreter.java:164)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.open(RemoteInterpreter.java:132)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:299)
at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:407)
at org.apache.zeppelin.scheduler.Job.run(Job.java:188)
at org.apache.zeppelin.scheduler.RemoteScheduler$JobRunner.run(RemoteScheduler.java:315)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

INFO [2019-10-17 08:49:25,755] ({pool-2-thread-2} VFSNotebookRepo.java[save]:196) - Saving note:2ERC9JRNE
INFO [2019-10-17 08:49:25,769] ({pool-2-thread-2} SchedulerFactory.java[jobFinished]:120) - Job 20191017-083503_1590331634 finished by scheduler org.apache.zeppelin.interpreter.remote.RemoteInterpreter-spark:shared_process-shared_session
INFO [2019-10-17 08:55:06,098] ({Exec Default Executor} RemoteInterpreterManagedProcess.java[onProcessComplete]:243) - Interpreter process exited 0


удобно наверно было бы запускать из идеи в режиме yarn-cluster, т.е. драйвер программа где-то там на кластере жить будет.
Учитывая, что IntelliJ IDEA общается с Zeppelin через HTTP и тот же адрес и порт, который используется в браузере, проблем использования Zeppelin из IDE быть не должно.
Позже, мы планируем также добавить поддержку мониторинга Spark джоб. Для этого нужно будет открыть хост и порт Spark Job History Server.
Насколько я понял, выполнение все равно на кластере. Почему порты-то вдруг станет легче открывать? А в целом вполне верю, что может пригодится — просто не всем.
Прошу прощение что раньше не ответил. Во-первых, спасибо за обратную связь.
> Как Spark + Java 8 + Scala разработчик на Hadoop скажу вот что: нам для работы со Spark более чем хватает Community.
Вполне могу понять. Хотя, если честно, мое мнение, более тесная интеграция со Spark не помешала бы: это и мониторинг джоб и более простой/удобный запуск Spark приложений, и т.п.
> У нас Jupiter, и Hue.
Вот прямо сейчас у меня задача понять, как мы можем упростить жизнь разработчиков Spark, которые используют Jupyter.
> Кроме паркета мы чего только не используем, из очевидных — Avro и CSV, а еще JSON, к примеру.
Думаю поддержка Avro стоит на очереди. CSV и JSON вроде как уже более или менее поддерживаются.
> Интеграция с и.т.д (например, Hive, но HBase и кафка тоже напрашивается) нужна позарез.
Да, желание ближе подружиться с Hive и начать предлагать полезные фичи – есть и, уверен, мы займемся этим в ближайшее время.
Так или иначе, скажите, если у вас будет как-нибудь время созвониться на полчасика. Я бы с удовольствием подробнее по-расспросил, про потребности. С нас не заржавеет. ;-)
В любом случае, спасибо огромное за обратную связь.
>Хотя, если честно, мое мнение, более тесная интеграция со Spark не помешала бы: это и мониторинг джоб и более простой/удобный запуск Spark приложений, и т.п.
Да, само собой. Я говорил исключительно про текущие планы, которые уж так сложилось, слегка не про нас. Что в целом такое может пригодится — тут сомнения может и есть, но они исключительно в том, что задачи эти довольно сложные. Ну например отладка в ярн — это такое себе развлечение, когда вы не знаете ни числа процессов, ни хосты, где они запустились, и вообще ничего. И все обычные методы отладки дефакто не работают.
>> Кроме паркета мы чего только не используем, из очевидных — Avro и CSV, а еще JSON, к примеру.
Думаю поддержка Avro стоит на очереди. CSV и JSON вроде как уже более или менее поддерживаются.

В принципе, еще одна интересная тема — это поддержка разных форматов схем. Ну то есть, упрощенно — у авро своя схема, у паркета своя, а у Hive своя. И преобразование между ними, когда это нужно — не всегда простая задача. Hive пытается ее решать, но нам, к примеру, новые версии Hive пока не светят (потому что Hadoop ограничен 2.6, а на нем новые версии далеко не всего работают).

Привет, автор! Пишет архитектор бигдат/микросервисов повелитель. Все это тащить в среду разработки оч хорошо, но мало интересно, больше админские фичи, ну ок если sparksql синтаксис втащите, самое ценное перформанс тюнниг, план запросов и ну вы поняли, поддержку разбора и анализа графа — вот что круто, та инфа, которую неудобно смотреть в консоли, чарты по ней, и пр визуализации. А ставить идею куда в банковский прод что бы историю джобов смотреть, ну зачем. Круто если можно смотреть на то что внутри спарка, а не то что в рестапи, не и5теграшка с ярном или керберосом, разработка крч, а не админство.

> ну ок если sparksql синтаксис втащите, самое ценное перформанс тюнниг, план запросов и ну вы поняли, поддержку разбора и анализа графа — вот что круто
Будем думать. Уже есть мысли.
Имею Apache Zeppelin Version 0.7.3, плагин к нему не коннектится…
Так-же попробовал более новый, непонятно какой версии, в About пусто, но так-же плагин пишет — Zeppelin Unreachable

Действительно. Пока работает только начиная с 0.8.x. Вот тикет: https://youtrack.jetbrains.com/issue/BDIDE-375
Планируем в ближайшем апдейте починить

второй, вроде, как из 0.8.x… там уже точку надо оставлять в конце строки, чтобы цепочку вызовов по строкам разносить
Зарегистрируйтесь на Хабре, чтобы оставить комментарий