Skip to content

工程常见问题

MaBiao edited this page Jan 16, 2018 · 4 revisions

1. 如何查看Master,Worker和PS的日志

在任务提交后,客户端日志会打印出Angel 任务的URL:

客户端日志

复制该URL,在浏览器中打开就可以看到任务的运行信息。 点击页面的log链接就可以打开Master日志页面了:

Master日志链接

如果任务还在运行中,查看Worker和PS日志比较简单,直接点击页面的Worker和PS的连接就可以了:

Worker和PS运行状态

如果任务已经运行完成,查看Worker和PS日志会稍微麻烦一些。 首先需要找到运行Worker和PS的节点地址和container id,查找方式是打开Master日志,以Worker和PS id为关键字搜索:

查找PS 地址和container id

然后,组装日志链接,就可以在页面上看到具体的Worker和PS日志了:

PS日志

2. 如果发现有些jar包找不到怎么办?

Angel目前在提交任务时只会上传自己编译出来的jar包和一些依赖的但是hadoop环境中没有的jar包。这样做是为了尽量减少需要上传的包大小,加快任务提交速度。但是由于hadoop版本原因可能会出现一些类找不到的问题。出现这个问题时首先找到这些类属于哪些jar包,然后在Angel的lib目录下找到它,通过angel.job.libjars参数上传。如果你需要上传的包是系统相关的,建议修改Angel系统配置文件的angel.job.libjars参数(conf目录下的angel-site.xml); 如果是任务相关的,建议直接在命令行使用angel.app.user.resource.files

3. 如果我的Hadoop集群使用的JDK版本是1.7,我应该怎么在上面运行Angel

Angel目前使用了一些Java 8的特性,所以编译和运行使用的JDK版本只能是JDK1.8。 但是如果我的Hadoop集群上只有JDK1.7时,可以通过下述方法运行Angel:

  • 上传JDK1.8到Hadoop计算节点
  • 使用Angel环境变量参数指定JAVA_HOME环境变量
--angel.am.env "JAVA_HOME=/data/jdk1.8.0_101"
--angel.worker.env "JAVA_HOME=/data/jdk1.8.0_101"
--angel.ps.env "JAVA_HOME=/data/jdk1.8.0_101"

4. 为什么要使用2.5.0版本的protobuf,我想使用更新的版本该怎么办?

这个主要是为了和Hadoop环境兼容。目前官方的Hadoop和Spark包都包含有probobuf相关jar包,且版本为2.5.0,如果Angel使用其他版本的会导致Angel Master启动时需要加载两个版本的probobuf,这会导致一些兼容性问题。如果想使用更新的版本,请先升级Hadoop环境的probobuf包,Angel和它保持一致即可。