Установка стороннего интерпретатора

Zeppelin работает не только с community-интерпретаторами, но также позволяет установить сторонние интерпретаторы из Maven-репозиториев. В данной статье представлен пример установки интерпретатора для Apache Solr. Убедитесь, что сервис Solr доступен в вашем ADH-кластере прежде чем выполнять шаги, описанные ниже.

ПРИМЕЧАНИЕ
Больше информации об установке интерпретаторов вы можете найти в документации Zeppelin.

Шаг 1. Загрузка библиотек интерпретатора

  1. Установите соединение с Zeppelin Server (например, по SSH).

  2. Выполните следующую команду, чтобы загрузить библиотеки для нового интерпретатора solr:

    $ sudo ZEPPELIN_INTERPRETER_DEP_MVNREPO=https://repo1.maven.org/maven2 /usr/lib/zeppelin/bin/install-interpreter.sh --name solr --artifact com.lucidworks.zeppelin:zeppelin-solr:0.1.6

    Результат выполнения имеет следующий вид:

    OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/usr/lib/zeppelin/lib/interpreter/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/usr/lib/zeppelin/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    Can't find interpreter list /etc/zeppelin/conf/interpreter-list
    Install solr(com.lucidworks.zeppelin:zeppelin-solr:0.1.6) to /usr/lib/zeppelin/interpreter/solr ...
    Interpreter solr installed under /usr/lib/zeppelin/interpreter/solr.
    
    1. Restart Zeppelin
    2. Create interpreter setting in 'Interpreter' menu on Zeppelin GUI
    3. Then you can bind the interpreter on your note
    РЕКОМЕНДАЦИЯ
    Переменная окружения ZEPPELIN_INTERPRETER_DEP_MVNREPO позволяет избежать ошибок с разрешением зависимостей, которые могут встречаться в Zepplin 0.9.0 и более ранних версиях. Вы можете присвоить переменной ZEPPELIN_INTERPRETER_DEP_MVNREPO значение https://repo1.maven.org/maven2 в конфигурационном файле /etc/zeppelin/conf/zeppelin-env.sh, а затем перезапустить Zeppelin Server.
  3. Убедитесь, что директория, соответствующая новому интерпретатору solr, добавлена:

    $ ls -la /usr/lib/zeppelin/interpreter/solr
    Пример вывода
    total 39440
    drwxr-xr-x.  2 root root     4096 Dec 10 09:12 .
    drwxr-xr-x. 31 root root     4096 Dec 10 09:12 ..
    -rw-r--r--.  1 root root    89616 Dec  6 15:58 aether-api-1.12.jar
    -rw-r--r--.  1 root root    24449 Dec  6 15:58 aether-connector-file-1.12.jar
    -rw-r--r--.  1 root root    29646 Dec  6 15:58 aether-connector-wagon-1.12.jar
    -rw-r--r--.  1 root root   129254 Dec  6 15:58 aether-impl-1.12.jar
    -rw-r--r--.  1 root root    15430 Dec  6 15:58 aether-spi-1.12.jar
    -rw-r--r--.  1 root root   126629 Dec  6 15:58 aether-util-1.12.jar
    -rw-r--r--.  1 root root   622849 Dec  6 15:58 bcpkix-jdk15on-1.52.jar
    -rw-r--r--.  1 root root  2902942 Dec  6 15:58 bcprov-jdk15on-1.52.jar
    -rw-r--r--.  1 root root    30085 Dec  6 15:58 commons-codec-1.2.jar
    -rw-r--r--.  1 root root   358048 Dec  6 15:58 commons-configuration-1.9.jar
    -rw-r--r--.  1 root root    54423 Dec  6 15:58 commons-exec-1.3.jar
    -rw-r--r--.  1 root root   305001 Dec  6 15:58 commons-httpclient-3.1.jar
    -rw-r--r--.  1 root root   208700 Dec  6 15:58 commons-io-2.5.jar
    -rw-r--r--.  1 root root   279193 Dec  6 15:58 commons-lang-2.5.jar
    -rw-r--r--.  1 root root    60686 Dec  6 15:58 commons-logging-1.1.1.jar
    -rw-r--r--.  1 root root  2213560 Dec  6 15:58 commons-math3-3.6.1.jar
    -rw-r--r--.  1 root root   109568 Dec  6 15:58 commons-pool2-2.3.jar
    -rw-r--r--.  1 root root   258075 Dec  6 15:58 gson-2.8.9.jar
    -rw-r--r--.  1 root root    26742 Dec  6 15:58 gson-extras-0.2.1.jar
    -rw-r--r--.  1 root root  2172168 Dec  6 15:58 guava-15.0.jar
    -rw-r--r--.  1 root root   747794 Dec  6 15:58 httpclient-4.5.3.jar
    -rw-r--r--.  1 root root   323824 Dec  6 15:58 httpcore-4.4.6.jar
    -rw-r--r--.  1 root root    41029 Dec  6 15:58 httpmime-4.5.3.jar
    -rw-r--r--.  1 root root    16516 Dec  6 15:58 jcl-over-slf4j-1.7.24.jar
    -rw-r--r--.  1 root root   213911 Dec  6 15:58 jline-2.12.1.jar
    -rw-r--r--.  1 root root   281579 Dec  6 15:58 jsoup-1.6.1.jar
    -rw-r--r--.  1 root root   227712 Dec  6 15:58 libthrift-0.9.2.jar
    -rw-r--r--.  1 root root   489884 Dec  6 15:58 log4j-1.2.17.jar
    -rw-r--r--.  1 root root    55639 Dec  6 15:58 maven-aether-provider-3.0.3.jar
    -rw-r--r--.  1 root root    51908 Dec  6 15:58 maven-artifact-3.0.jar
    -rw-r--r--.  1 root root   163439 Dec  6 15:58 maven-model-3.0.3.jar
    -rw-r--r--.  1 root root   149093 Dec  6 15:58 maven-model-builder-3.0.3.jar
    -rw-r--r--.  1 root root    48920 Dec  6 15:58 maven-plugin-api-3.0.jar
    -rw-r--r--.  1 root root    30088 Dec  6 15:58 maven-repository-metadata-3.0.3.jar
    -rw-r--r--.  1 root root    27948 Dec  6 15:58 noggit-0.8.jar
    -rw-r--r--.  1 root root    47058 Dec  6 15:58 plexus-classworlds-2.4.jar
    -rw-r--r--.  1 root root     4211 Dec  6 15:58 plexus-component-annotations-1.5.5.jar
    -rw-r--r--.  1 root root    61072 Dec  6 15:58 plexus-interpolation-1.14.jar
    -rw-r--r--.  1 root root   223943 Dec  6 15:58 plexus-utils-2.0.7.jar
    -rw-r--r--.  1 root root 15612191 Dec  6 15:58 scala-compiler-2.11.12.jar
    -rw-r--r--.  1 root root  5749423 Dec  6 15:58 scala-library-2.11.12.jar
    -rw-r--r--.  1 root root   423753 Dec  6 15:58 scala-parser-combinators_2.11-1.0.4.jar
    -rw-r--r--.  1 root root   671138 Dec  6 15:58 scala-xml_2.11-1.0.5.jar
    -rw-r--r--.  1 root root   489453 Dec  6 15:58 sisu-guice-3.0.2-no_aop.jar
    -rw-r--r--.  1 root root   247361 Dec  6 15:58 sisu-inject-bean-2.2.2.jar
    -rw-r--r--.  1 root root   203536 Dec  6 15:58 sisu-inject-plexus-2.2.2.jar
    -rw-r--r--.  1 root root    32119 Dec  6 15:58 slf4j-api-1.7.10.jar
    -rw-r--r--.  1 root root     8866 Dec  6 15:58 slf4j-log4j12-1.7.10.jar
    -rw-r--r--.  1 root root  1870892 Dec  6 15:58 solr-solrj-7.5.0.jar
    -rw-r--r--.  1 root root   161867 Dec  6 15:58 stax2-api-3.1.4.jar
    -rw-r--r--.  1 root root    10494 Dec  6 15:58 wagon-http-1.0.jar
    -rw-r--r--.  1 root root    14945 Dec  6 15:58 wagon-http-lightweight-1.0.jar
    -rw-r--r--.  1 root root    24599 Dec  6 15:58 wagon-http-shared-1.0.jar
    -rw-r--r--.  1 root root    53186 Dec  6 15:58 wagon-provider-api-1.0.jar
    -rw-r--r--.  1 root root   486013 Dec  6 15:58 woodstox-core-asl-4.4.1.jar
    -rw-r--r--.  1 root root   100679 Dec  6 15:58 zeppelin-solr-0.1.6.jar
    -rw-r--r--.  1 root root   887738 Dec  6 15:58 zookeeper-3.4.11.jar
  4. Перезапустите Zeppelin Server. Вы можете сделать это, используя ADCM:

    • Откройте страницу Clusters.

    • Выберите ваш кластер из списка.

    • Перейдите на вкладку Services.

    • Кликните Restart в выпадающем списке сервиса Zeppelin.

      Перезапуск сервиса Zepplin через ADCM
      Перезапуск сервиса Zepplin через ADCM

Шаг 2. Добавление интерпретатора через веб-интерфейс

  1. Выберите Interpreter в меню аккаунта, расположенном в правом верхнем углу домашней страницы Zeppelin.

    Список интерпретаторов
    Список интерпретаторов
    Список интерпретаторов
    Список интерпретаторов
  2. Кликните Create.

    Создание нового интерпретатора
    Создание нового интерпретатора
    Создание нового интерпретатора
    Создание нового интерпретатора
  3. В поле Interpreter Name введите solr; выберите solr в поле Interpreter group.

    Заполнение имени и группы
    Заполнение имени и группы
    Заполнение имени и группы
    Заполнение имени и группы
  4. Установите в поле solr.baseUrl значение, равное http://<IP>:8983/solr, где <IP> — это IP-адрес вашего Solr-сервиса. Если значение поля не редактируется, удалите данное поле и создайте новое с таким же именем.

  5. Кликните Save. Новый интерпретатор готов.

    Заполнение полей и сохранение интерпретатора
    Заполнение полей и сохранение интерпретатора
    Заполнение полей и сохранение интерпретатора
    Заполнение полей и сохранение интерпретатора
ПРИМЕЧАНИЕ
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней