mongodb - 将数据从mongodb迁移到hdfs

标签 mongodb apache-spark hadoop hive 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 将数据写入 HDFS 或 Hive ,或df.write.saveAsTable (对于 Spark Hive 表)或 df.sql("INSERT INTO TABLE ...) (原始 Hive 表)。引用-SparkSQL Hive docs


注意:这是一次性加载...如果您想将 Mongo 中的所有插入和更改流式传输到 Hadoop,您可以使用 Debezium w/Kafka,例如,然后使用 Debezium 集群来运行HDFS Kafka Connect Sink(具有 Hive 集成)

关于mongodb - 将数据从mongodb迁移到hdfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53334570/

相关文章:

hadoop - hbase 真的可以线性扩展吗?

hadoop - 从s3导入压缩(gzip)数据到配置单元

java - Spring数据MongoDB : How do I represent $eq in project aggregation query?

java - 在jmeter中测试带有 header 的HTTPs post请求并将测试结果保存在mongodb中并在grafana中显示

java - 使用spark检索elasticsearch数据时出现错误

apache-spark - 将相同的函数应用于 Spark 数据帧行的所有字段

javascript - meteor :如何按关注最多的用户排序?

mongodb - 未检测到设置的主节点 [Mongo shell]

apache-spark - Spark 是否受益于持久表中的 `sortBy`?

hadoop - 配置多个节点后,hdfs dfs ls无法正常工作