java - 如何在服务器上运行 sparkjob 时修复“用户 root(用户 id 0)已被拒绝访问以创建 application_1558587698997_88549”错误?
问题描述
我有一个 spark 工作,我从多个 hadoop 文件中读取数据并将其写入 cassandra 表。触发 spark 作业时出现以下错误:
org.apache.hadoop.security.AccessControlException:用户 root(用户 id 0)已被拒绝访问在 com.mapr.fs.MapRFileSystem.makeDir(MapRFileSystem.java:1142)在 com.mapr.fs.MapRFileSystem 创建 application_1558587698997_88549。 mkdirs(MapRFileSystem.java:1162) 在 org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:1913) 在 org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:634) 在 org.apache .spark.deploy.yarn.Client.prepareLocalResources(Client.scala:409) at org.apache.spark.deploy.yarn.Client.createContainerLaunchContext(Client.scala:814) at org.apache.spark.deploy.yarn.Client .submitApplication(Client.scala:169) at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:56) at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:173) at org.apache.spark.SparkContext.(SparkContext.scala:509) at org.apache.spark.api.java.JavaSparkContext.(JavaSparkContext.scala:58) at com.walmart.labs.back.to .school.TeachersListETLForList.(TeachersListETLForList.java:99) 在 com.walmart.labs.back.to.school.TeachersListETLForList.main(TeachersListETLForList.java:605) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun。 reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.spark .deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:759) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) at org.apache.spark.deploy.SparkSubmit.main( SparkSubmit.scala)
当我将主服务器设置为本地时,它可以工作,但是由于文件的大小很大,我得到了内存不足的异常。我也尝试将其设置如下,但无法修复。
sparkConf.setMaster("local[4]");
这是我当前的配置设置:
sparkConf.setMaster(jobConfig.getString("spark.context-settings.master"));
我想用相同的配置运行它,但不知道如何解决这个问题。
解决方案
推荐阅读
- php - 将 SQL 转换为 Doctrine 查询
- asp.net - 对 vb.net 的 AJAX 发布请求 - 如何读取发布数据?
- haskell - 尝试在 Windows 上安装 Haskell 平台时出现未知错误消息
- python - 属性错误:模块“张量流”没有属性“输入”
- javascript - Leaflet.js tileSize 命令导致地图的下半部分不渲染
- javascript - 循环一个switch语句Javascript
- c# - 如何将缩放图像从图片框传输到第二个图片框?.NET 框架 4.7
- javascript - 无法在for循环中显示通过Json捕获的数据
- javascript - 第 29 行出现意外令牌
- python - 如何在 plotly-dash 中超链接图像?