Comments 17
И вот смотрю я на этот зооопарк, и думаю — а нафига бы мне пригодился такой вот инструмент? И прихожу к выводу, что ни для чего он мне не нужен. Нашим DataScience коллегам — возможно и подошел бы, но они а) пишут на PySpark, то есть на сегодня в пролете, и б) у них Jupiter, а не Цеппелин. Базовая интеграция со Spark на Hedoop… ну хм. И что, отладку на кластере напишете? Авторизацию в Kerberos (IPA), в количестве N штук, несколько кластеров одновременно. Интеграция с и.т.д (например, Hive, но HBase и кафка тоже напрашивается) нужна позарез. Причем со всем и.т.д. одновременно.
зепелин что бы поставить надо админов привлекать, ставить stb, открывать порты. сложно…
и локально че-то не работает, зепелин коверкает похоже логи и даже не понять что у него не так
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, т.е. драйвер программа где-то там на кластере жить будет.
Позже, мы планируем также добавить поддержку мониторинга 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 и начать предлагать полезные фичи – есть и, уверен, мы займемся этим в ближайшее время.
Так или иначе, скажите, если у вас будет как-нибудь время созвониться на полчасика. Я бы с удовольствием подробнее по-расспросил, про потребности. С нас не заржавеет. ;-)
В любом случае, спасибо огромное за обратную связь.
Да, само собой. Я говорил исключительно про текущие планы, которые уж так сложилось, слегка не про нас. Что в целом такое может пригодится — тут сомнения может и есть, но они исключительно в том, что задачи эти довольно сложные. Ну например отладка в ярн — это такое себе развлечение, когда вы не знаете ни числа процессов, ни хосты, где они запустились, и вообще ничего. И все обычные методы отладки дефакто не работают.
Думаю поддержка Avro стоит на очереди. CSV и JSON вроде как уже более или менее поддерживаются.
В принципе, еще одна интересная тема — это поддержка разных форматов схем. Ну то есть, упрощенно — у авро своя схема, у паркета своя, а у Hive своя. И преобразование между ними, когда это нужно — не всегда простая задача. Hive пытается ее решать, но нам, к примеру, новые версии Hive пока не светят (потому что Hadoop ограничен 2.6, а на нем новые версии далеко не всего работают).
Привет, автор! Пишет архитектор бигдат/микросервисов повелитель. Все это тащить в среду разработки оч хорошо, но мало интересно, больше админские фичи, ну ок если sparksql синтаксис втащите, самое ценное перформанс тюнниг, план запросов и ну вы поняли, поддержку разбора и анализа графа — вот что круто, та инфа, которую неудобно смотреть в консоли, чарты по ней, и пр визуализации. А ставить идею куда в банковский прод что бы историю джобов смотреть, ну зачем. Круто если можно смотреть на то что внутри спарка, а не то что в рестапи, не и5теграшка с ярном или керберосом, разработка крч, а не админство.
Так-же попробовал более новый, непонятно какой версии, в About пусто, но так-же плагин пишет — Zeppelin Unreachable
Действительно. Пока работает только начиная с 0.8.x. Вот тикет: https://youtrack.jetbrains.com/issue/BDIDE-375
Планируем в ближайшем апдейте починить
Встречайте Big Data Tools: поддержка Spark и Zeppelin-ноутбуков в IntelliJ IDEA