импортировать внешние данные в hdfs: является ли пограничный узел узким местом? - PullRequest
1 голос
/ 23 апреля 2019

Я новичок в больших данных.Я пытаюсь внедрить коллекцию MongoDB в hdfs, и у меня есть выбор использования Java API mongoDB + Java API HDFS против соединителя Spark MongoDB.

  1. Чем отличаются оба подхода?Я проверил исходный код соединителя Spark MongoDB, он также использует java API mongoDB для записи в mongoDB, но использует sparkSession для чтения из mongoDB.

  2. Поскольку кластер MongoDB и HDFS различны в нашем случаеявляется ли краевой узел промежуточной областью между MongoDB и кластером HDFS?Если это так, если коллекция mongoDB слишком большая, будет ли узкое место краевой узел?Если обобщить этот вопрос, то при входе внешних источников данных (RDBM, NoSQL и т. Д.) В HDFS всегда ли промежуточный узел находится в промежуточной области?

  3. Продолжение после Q2.Есть ли способ подключить узел данных HDFS напрямую к серверу mongoDB, пропустив пограничный узел?Например, от разделительного раздела mongoDB до раздела HDFS.

Оцените ваш ответ!

1 Ответ

1 голос
/ 24 апреля 2019

Итак, высокоуровневый ответ на

Java API mongoDB + Java API HDFS, против соединителя Spark MongoDB

Что вы хотите понять, так это то, что Sparkне размещает данные только на краевом узле.Он работает параллельно.Параллельная загрузка данных при условии, что коллекция Mongo позволяет это сделать.

По сравнению с прямым API Java (или даже с дампом коллекции), плюс загрузка, а затем да, краевой узел или где-то еще узкое место (и единственная точка отказа)

Возможно, лучшая архитектура предполагает использование Debezium для потоковой передачи событий Mongo в виде отдельных записей в тему Kafka, затем вы можете обрабатывать события в режиме реального времени по мере их поступления в Kafka, при желании очищать их, а затем отправлять их в Hadoop, графическую базу данных., поисковая система и т. д. (и Spark здесь не требуется)

...