将数据从 mongodb 迁移到 hdfs
Migrate data from mongodb to hdfs
我是数据工程的新手。我正在尝试为大数据项目设置环境。截至目前,我已经安装了 hadoop、mongodb、hive 和 spark。现在我想尝试模拟以查看 mongodb 和 hadoop 之间的交互。我的 mongodb 中已有数据。所以我想将数据迁移到 hadoop hdfs 中。可能吗?我读了很多关于它的解释,但不明白迁移的想法。任何人都可以用简单的方式解释如何做吗?因为我是这个领域的新手。
如果您已经在 Mongo 中有数据,我建议使用 SparkSQL with 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();
然后您可以使用 df.write.save
, which defaults to parquet output format, or df.write.saveAsTable
(for Spark Hive tables) or df.sql("INSERT INTO TABLE ...)
(raw Hive tables). Ref - SparkSQL Hive docs
将数据写入 HDFS 或 Hive
注意:这是一次性加载...如果您想将所有插入和更改从 Mongo 流式传输到 Hadoop,您可以使用 Debezium w/ Kafka,例如,然后使用Debezium 集群还 运行 HDFS Kafka Connect Sink(具有 Hive 集成)
我是数据工程的新手。我正在尝试为大数据项目设置环境。截至目前,我已经安装了 hadoop、mongodb、hive 和 spark。现在我想尝试模拟以查看 mongodb 和 hadoop 之间的交互。我的 mongodb 中已有数据。所以我想将数据迁移到 hadoop hdfs 中。可能吗?我读了很多关于它的解释,但不明白迁移的想法。任何人都可以用简单的方式解释如何做吗?因为我是这个领域的新手。
如果您已经在 Mongo 中有数据,我建议使用 SparkSQL with 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();
然后您可以使用 df.write.save
, which defaults to parquet output format, or df.write.saveAsTable
(for Spark Hive tables) or df.sql("INSERT INTO TABLE ...)
(raw Hive tables). Ref - SparkSQL Hive docs
注意:这是一次性加载...如果您想将所有插入和更改从 Mongo 流式传输到 Hadoop,您可以使用 Debezium w/ Kafka,例如,然后使用Debezium 集群还 运行 HDFS Kafka Connect Sink(具有 Hive 集成)