项目背景
使用structured streaming消费kafka某个topic数据并写入hdfs上。本地运行没有错误,部署在yarn上报错。
问题排查
根据报错提示,是test用户没有权限操作hdfs的根目录,hdfs用户有权限。则使用hdfs用户进行部署,运行正常。发现在hdfs根目录下生成文件
/yarn/nm/usercache/hdfs/appcache/application_1560935858543_2777/container_e18_1560935858543_2777_01_000001/tmp/temporary-46dc51d5-226d-4b62-8f22-42eef565d138/*
发现该结构为checkpoint结构。又重新在本地运行了,仔细检查了,发现原来在本地也会生成checkpoint文件结构。文件目录是C:\Users\我的账号\AppData\Local\Temp\temporary-95fea160-e249-4694-b31b-6010fd42d45f/*
问题解决
df.writeStream.format("parquet").option("checkpointLocation", "path/to/checkpoint/dir") //此处需添加.option("path", "path/to/destination/dir").start()