用Spark测试YARN的资源池,测试过程中发现很多时候爆资源不够;
于是添加机器,专门用于跑spark;首先是ssh不通,原来错把71的id_psa.put文件拷贝到64上面;后来ssh通了,ambaria安装成功了,但是在安装HDP的时候发现一个有一个组件找不到,rpclib-devel找不到,尽管hortonwork官网上面告诉可以在centos7的base景象中能够找到,但是其实没有,可能我本地的镜像不是那个最大的镜像?反正需要自己安装,还好之前已经备好了。拿来用就可以了。
安装了spark,但是发现nodemanager总是死,翻看日志:
Cannot load filesystem: java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.hdfs.web.WebHdfsFileSystem could not be instantiated
java.lang.NoClassDefFoundError: Could not initialize class sun.util.calendar.ZoneInfoFile
Cannot
load filesystem: java.util.ServiceConfigurationError:
org.apache.hadoop.fs.FileSystem: Provider
org.apache.hadoop.hdfs.web.SWebHdfsFileSystem could not be instantiated
... ...
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.jackson.map.SerializationConfig
貌似一个Hdfs的的问题?大神坑有一个,从log日志看不到问题,上面这个问题,google都没有解得。后来在敲hadoop fs -ls /的时候,发现了另外一个错误:
java.lang.Error: java.io.FileNotFoundException: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre/lib/tzdb.dat (No such file or directory),tzdb.dat是一个jre链接文件,如下:
lrwxrwxrwx 1 root root 30 Aug 30 13:35 tzdb.dat -> /usr/share/javazi-1.8/tzdb.dat
因为这个jdk是从73机器上面直接考过来的,但是链接文件的链接地址并没有考,所以会爆这个异常,然后把tzdb(从命名来看这是一个和时区相关的文件,tz,timezone之意)拷贝到64的机器之后,问题解决。这个说明了最好是同意安装一下jdk,不要用系统默认的Open JDK,因为可能因为路径,版本不同导致一系列问题。
YARN的Capacity Scheduler的权限总是没有配置上,于是我参考了一下Cloudera的Fair Schedule(Resource Pool),发现他的权限控制其实是需要打开的,就是点击Resouce Pool里面的“Everyone access”, 里面提示默认yarn.admin.acl是*,只有指定具体用户才能够配置其下属的节点,这意味如果root用户是*,那么的leaf节点配啥都没有用;而且在google的时候顺藤摸瓜的查找到了打开权限其实还是需要 yarn.acl.enabled设置为true(在Resource Manager相关配置中)。
简单总结一下,配置YARN的权限:
1. yarn.acl.enabled需要设置为true;
2. 必须配置root队列权限,可以配置一个空格" ",代表拒绝所有的用户;只有这样,下属队列权限才有意义;
另外,想要测试权限是否可用,只要看spark在提交阶段是否能够check住即可,不需要太往后执行,只要看到那一大长串,一定就是权限通过:
YarnClientImpl: Submitted application application_1519697915722_0002
18/02/27 10:20:44 INFO SchedulerExtensionServices: Starting Yarn ...
18/02/27 10:20:45 INFO Client: Application report for application_1519697915722_0002 (state: ACCEPTED)
18/02/27 10:20:45 INFO Client:
client token: N/A
diagnostics: AM container is launched, waiting for AM container to Register with RM
ApplicationMaster host: N/A
ApplicationMaster RPC port: -1
queue: default
start time: 1519698044501
final status: UNDEFINED
tracking URL: http://hdp3:8088/proxy/application_1519697915722_0002/
user: hdfs
通过界面对Scheduler Capacity进行修改以及重启配,修改的文件以及调用的指令如下:
1 $ vi $HADOOP_CONF_DIR/capacity-scheduler.xml 2 $ $HADOOP_YARN_HOME/bin/yarn rmadmin -refreshQueues