我正在运行Spark Cluster(Master和3个Workers),并从我在本地机顶盒上运行的本地应用程序连接到它。
在我的应用程序中,我创建了一个数据集
List<String> points = Arrays.asList("UK", "US", "France", "Italy");
Dataset<String> dataset = spark.createDataset(points, Encoders. STRING());
运行得非常好,我可以看到数据集是通过运行创建的。
dataset.show()
然后我尝试将其写入本地驱动器的 parquet 文件
dataset.write().mode(SaveMode.Append)
.parquet(<Hadoop Path>);
并且应用程序挂起,并始终记录以下消息:
WARN org.apache.spark.scheduler.TaskSchedulerImpl - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
是否为配置问题?
1条答案
按热度按时间bvn4nwqk1#
代码本身看起来不错,就
WARN
而言,虽然有可能是来自某个配置,但是你没有显示出来,没有人能猜到。但是我建议你先扩大你的数据大小,给予一下。试一个更大的例子,不仅仅是4个元素,因为只有4个元素,当分割的时候,一些执行者可能什么都得不到。