Ошибка Apache Zeppelin `` Не удалось запустить узел Ignite '' при интеграции с Ignite

Я открываю для себя Apache Ignite и создаю простое приложение, похожее на их пример подсчета слов. Он передает слова из нескольких файлов .txt в кеш. И я могу запросить эти слова с помощью класса SqlFieldsQuery в приложении Java.

public class NodeStartup {

    public static void main(String[] args) throws IgniteException {
        // Start Server Node
        Ignition.start("config/example-ignite.xml");
    }
}

public class StreamWordsToCache {
        public static void main(String[] args) throws Exception {
            // Mark the cluster member as a Client
        Ignition.setClientMode(true);

        // Start a Client Node
        try (Ignite ignite = Ignition.start("config/example-ignite.xml")) {
            // Checks if Server nodes not found
            if (!ExamplesUtils.hasServerNodes(ignite))
                return;

            // If cache doesn't exist, create it within the cluster, otherwise use the existing one
            IgniteCache<AffinityUuid, String> theCache = ignite.getOrCreateCache(CacheConfig.wordsCache());

            // Create Streamers for the cache
            try (IgniteDataStreamer<AffinityUuid, String> theStreamer = ignite.dataStreamer(theCache.getName())) {

                //Stream words from articles
                while (true) {
                    File directory = new File("src/main/resources/");
                    if (directory.listFiles() != null) {
                        List<File> filesInDir = new ArrayList<>(Arrays.asList(directory.listFiles()));
                        for (File file : filesInDir) {
                            System.out.println("Start reading file : " + file.getName());
                            try (LineNumberReader lineNumberReader = new LineNumberReader(new FileReader(file))) {
                                for (String line = lineNumberReader.readLine(); line != null; line = lineNumberReader.readLine()) {
                                    for (String word : line.split(" "))
                                        if (!word.isEmpty() && word.matches("(?!(?:that|with|from))\\b(?<!\\b[-.])[^\\d\\W]{4,}+\\b(?![-.]\\b)"))
                                            // Stream words into Ignite
                                            // Unique key (AffinityUuid) is created for each word
                                            // AffinityUuid ensures that identical words are processed on the same cluster node
                                            // in order to process them faster
                                            theStreamer.addData(new AffinityUuid(word), word);
                                }}}}}}}}

Теперь я решил использовать Apache Zeppelin для извлечения этих слов из кеша Ignite. Но по какой-то причине мои попытки интегрировать Zeppelin и Ignite терпят неудачу. Я следую этому руководству https://apacheignite-tools.readme.io/docs/apache-zeppelin и настроил Ignite Interpreter аналогично их рекомендациям.

введите здесь описание изображения Сначала я запускаю узел Ignite и узел клиента, который непрерывно передает слова в кэш "слов". Затем я пытаюсь выполнить SQL-запрос в заметке Zeppelin и продолжаю получать Failed to start Ignite node ошибку. введите здесь описание изображения  введите описание изображения здесь

В чем может быть причина такого поведения? Версия Ignite, используемая в моем проекте, - 2.1.0, а двоичные файлы Zeppelin - 0.7.2, может ли это вызвать проблему? Или, может быть, что-то не так со значением свойства ignite.jdbc.url? jdbc:ignite://localhost:11211/words


person samba    schedule 21.09.2017    source источник
comment
Просто заработало! Проблема была в версии Ignite. Я изменил его на 1.9.0 в своем проекте, и это устранило проблему. Эта ссылка была действительно полезной zeppelin.apache.org/supported_interpreters.html   -  person samba    schedule 21.09.2017


Ответы (1)


Ваша версия Zeppelin (0.7.2) сертифицирована для Apache Ignite 1.9.0 Итак, я думаю, что основная причина вашей проблемы - это другая версия Ignite.

Похоже, что последняя версия кода Zeppelin поддерживает Apache Ignite 2.1 https://github.com/apache/zeppelin/pull/2549.

Итак, вы можете попробовать собрать Zeppelin из исходного кода Ignite Interpreter для Apache Zeppelin

person sk0x50    schedule 21.09.2017
comment
Я также только что обнаружил, что это была причина проблемы) Не видел вашего ответа, но он полезен.Спасибо! - person samba; 21.09.2017