gdp*_*phy 2 hadoop hive mongodb hdfs apache-spark
我是数据工程的新手。我正在尝试为大数据项目设置环境。到目前为止,我已经安装了 hadoop、mongodb、hive 和 spark。现在我想尝试模拟以查看 mongodb 和 hadoop 之间的交互。我的 mongodb 中已经有数据了。所以我想将数据迁移到 hadoop hdfs。是否可以?我阅读了很多关于它的解释,但不明白迁移的想法。谁能以简单的方式解释如何做到这一点?因为我是这个领域的初学者。
如果您已经在 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();
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用 将数据写入 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接收器(具有 Hive 集成)