Перенос данных из mongodb в hdfs - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок в разработке данных.Я пытаюсь настроить среду для проекта больших данных.На данный момент я установил hadoop, mongodb, hive и spark.Сейчас я хочу попробовать симуляцию, чтобы увидеть взаимодействие между mongodb и hadoop.У меня уже есть данные в моем mongodb.Поэтому я хочу перенести данные в Hadoop Hadoop.Является ли это возможным?Я прочитал много объяснений по этому поводу, но не понял идею миграции.Может кто-нибудь, пожалуйста, объясните простым способом, как это сделать?потому что я абсолютный новичок в этой области.

1 Ответ

0 голосов
/ 16 ноября 2018

Если у вас уже есть данные в Mongo, я бы предложил использовать SparkSQL с Mongo для загрузки в объект DataFrame вашей коллекции, назовем его df.

, например

SparkSession spark = SparkSession.builder()
  .master("local")
  .appName("MongoSparkConnectorIntro")
  .config("spark.mongodb.input.uri", "mongodb://127.0.0.1/test.myCollection")
  .config("spark.mongodb.output.uri", "mongodb://127.0.0.1/test.myCollection")
  .getOrCreate();

// Create a JavaSparkContext using the SparkSession's SparkContext object
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());

// Load data and infer schema, disregard toDF() name as it returns Dataset
Dataset<Row> df = MongoSpark.load(jsc).toDF();

Затем вы можете записать данные либо в HDFS, либо в Hive, используя df.write.save, который по умолчанию соответствует формату вывода паркета , или df.write.saveAsTable (для таблиц Spark Hive) или df.sql("INSERT INTO TABLE ...) (необработанный Hive таблицы). Ссылка - Документация по SparkSQL Hive


Примечание: это однократная загрузка ... Если вы хотите транслировать все вставки и изменения из Mongo в Hadoop, вы можете использовать, например, Debezium w / Kafka, а затем использовать кластер Debezium для запуска HDFS Kafka Connect Sink (с интеграцией Hive)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...