一次解决spark history server日志不见
通过cloudera的旧版VM(centos6版本)跑spark,之后,想看一下日志研究一下job,stage以及task,压力很大的发现完全没有日志,180088页面打开后:
Event log directory: hdfs://quickstart.cloudera:8020/user/spark/applicationHistory
No completed applications found!
回过头来还是真心感到spark做得人性化,因为在页面提示中给了两个很重要的信息:一个是spark的日志路径,一个是提示可能是因为权限导致日志无法显示(这个提示没有在贴上面),否则解决这个问题可能要花费更多的时间
后来网调发现是因为我使用的是root用户执行的;生成到日志文件到此目录下hdfs://quickstart.cloudera:8020/user/spark/applicationHistory,到此目录下一看用户是root:supergroup;改成spark;再刷http://quickstart.cloudera:18088/即可看到历史任务了;原来是没有权限读入。该权限即可;
之前为什么没有这种情况,之前的集群都没有root用户(只要在/user下面添加一个root即可添加hadoop用户),所以运行的时候都报错,于是切换为hdfs用户;hdfs用户生成的文件是hdfs的;
但是为什么会有问题?调查得知supergroup一般都是和系统的hadoop组绑定;通过下面的指令查看一下hadoop里面的组员
grep 'hadoop:' /etc/group
lid -g hadoop
你会发现做为hadoop组即superuser组只包含hdfs,hive等并没有spark;但是对于applicationHistory文件夹下权限是-rwxrwx--- 1 root supergroup,也就是只有root用户,以及supergroup具有全部权限,其他没有;所以即使是hdfs创建的文件仍然无法被spark读取,因为spark既不是hdfs,也没有包含在supergroup组中;
除非把spark放入到supergroup组中。调查说是和hadoop组绑定,那我就在hadoop组中添加了spark(需要首先启用spark用户);但是没有毛用。
怎么放?Hadoop的HDFS自身是没有用户组控制,用的是操作系统的用户组,这样就意味着:supergroup和本地操作系统用户是有映射关系的,就是在hdfs的配置项中,dfs.permissions.supergroup, dfs.permissions.superusergroup(这两个其实是一个配置内容),默认是supergroup,是的,默认是supergroup,你需要做的是修改为本地一个组,比如hadoop。然后重启HDFS组件,spark服务也一并重启吧。
之后你再向hadoop组中添加spark,再刷页面,就发现日志可以看到了。
这个问题的关键在于要明白supergroup是和Linux一个组映射;向映射组中添加即可,但是要进行配置映射。
一次解决spark history server日志不见的更多相关文章
- Spark学习笔记-使用Spark History Server
在运行Spark应用程序的时候,driver会提供一个webUI给出应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口,也就是 说,Spark应用程序运行完后,将无法查看应用程序的历史记 ...
- 【转】Spark History Server 架构原理介绍
[From]https://blog.csdn.net/u013332124/article/details/88350345 Spark History Server 是spark内置的一个http ...
- Spark History Server配置使用
Spark history Server产生背景 以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEB ...
- Spark History Server产生背景
以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEBUI随着Application的完成(成功/失败) ...
- Spark集群之Spark history server额外配置
Note: driver在SparkContext使用stop()方法后才将完整的信息提交到指定的目录,如果不使用stop()方法,即使在指定目录中产生该应用程序的目录,history server ...
- Spark history Server配置实用
Spark history Server产生背景 以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEB ...
- spark history server
参考:http://blog.csdn.net/lsshlsw/article/details/44786575 为什么需要historyServer? 在运行Spark Application的时候 ...
- Spark history server 遇到的一些问题
最近学习Spark,看了一个视频,里面有提到启动spark后,一般都会启动Spark History Server.视频里把 spark.history.fs.logDirectory 设置成了Had ...
- Spark 学习笔记之 Spark history Server 搭建
在hdfs上建立文件夹/directory hadoop fs -mkdir /directory 进入conf目录 spark-env.sh 增加以下配置 export SPARK_HISTORY ...
随机推荐
- Codeforces Round #349 (Div. 2)
第一题直接算就行了为了追求手速忘了输出yes导致wa了一发... 第二题技巧题,直接sort,然后把最大的和其他的相减就是构成一条直线,为了满足条件就+1 #include<map> #i ...
- 创建mysql表
CREATE TABLE `t_play_product` ( `product_id` ) NOT NULL AUTO_INCREMENT COMMENT '主键ID,自增', `product_n ...
- wordcount程序出现map 100% reduce 0%问题的解决方法
运行wordcount程序一直停在map 100% reduce 0%, input文件夹的内容: 其中: f1.txt中的内容为:hello hadoop f2.txt中的内容为:hello had ...
- IOS-CocoaPods的详细安装与使用
1.为什么需要CocoaPods 在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson.AFNetworking.Reachability等等.使用这些库的时候通常需要: 下载开源库的 ...
- 005——数组(五)array_diff_ukey()array_diff_uassoc()array_intersect()array_intersect_assoc()array_intersect_key()array_intersect_ukey()array_intersect_uassoc()
<?php function dump($arr) { print_r($arr); } /**array_diff_ukey() 通过回调函数的方式,返回一个数组在其他数组中不存在键名的值 * ...
- java程序设计基础篇 复习笔记 第二单元
1原始数据类型(primitive data type) == 基本类型 (fundamental type)byte short int long float double char boolean ...
- lvs fullnat部署手册(一)fullnat内核编译篇
标签:kernel rpm lvs fullnat 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://shanks.blog.51c ...
- (转载) Chrome中canvas上drawImage无法画出image的解决办法
在自己写demo的过程中 碰到了这样一个问题 发现drawImage方法没有达到预期的效果 图片没办法显示 而fillRect等画图形的方法却工作良好 大概的代码如下: $(function() { ...
- linux下如何启动和关闭weblogic .
在你定义的域中可以找到如下命令: /[youHome]/domains/[yourDomain]/startWebLogic.sh /[youHome]/domains/[yourDomain]/st ...
- defer async 区别
链接 <script src="script.js"></script> 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是 ...