Dr.Elephant在CDH上的部署

来源:互联网 发布:java流媒体服务器 编辑:程序博客网 时间:2024/05/01 06:01

续Dr.Elephant的安装及使用 。


Dr.Elephant在CDH上的部署

将之前编译好的文件部署到CDH集群上,步骤如下,

  1. 传输包
    在Cloudera Manager界面查看JobHistory Server所在的主机,比如为lyhadoop4.com。
    将之前编译好的文件传输到该主机上(不确定安装到其余主机能不能正常运行)。
  2. 安装mysql
    参见 linux下安装及启动mysql 。进入mysql并新建数据库drelephant。

    mysql -u root -pcreate database drelephant
  3. 修改配置
    进入dr-elephant安装目录, 修改conf/app-conf/elephant.conf中关于数据库连接的配置。

  4. 启动及查看

    1. 设置start.sh中的配置文件路径
      export ELEPHANT_CONF_DIR=your-appconf-path
    2. 启动:bin/start.sh。注意查看启动日志(安装目录下的dr.log),看是否报错。
    3. 查看:打开http://lyhadoop4.com:8080,看是否有作业被监控

问题记录

问题1–关于mysql版本过低带来的问题

dr.elephant启动报错@70apedfca: Database 'default' is in an inconsistent state!

原来官方要求Mysql的版本5.5+,见Developer Guide。参照CentOS下安装Mysql记录 解决。

问题2–关于不能监控不到Spark作业

查看运行日志(位于”~/logs/elephant/dr_elephant.log”,与启动日志位置不同,且一直累积,并且每天聚合一次)。查看发现报错如下

06-07-2016 19:12:12 INFO  com.linkedin.drelephant.ElephantRunner : Executor thread 2 analyzing SPARK application_1464744642271_010706-07-2016 19:12:12 ERROR com.linkedin.drelephant.ElephantRunner : 06-07-2016 19:12:12 ERROR com.linkedin.drelephant.ElephantRunner : java.security.PrivilegedActionException: java.io.FileNotFoundException: File does not exist: /user/spark/applicationHistory/application_1464744642271_0107_1.snappy    at java.security.AccessController.doPrivileged(Native Method)    at javax.security.auth.Subject.doAs(Subject.java:356)    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1651)    ....

参见Spark jobs are not showing in Dr. Elephant UI,问题原因为Dr.Elephant只能解析压缩格式的Spark的日志,故需对Spark添加相应设置,修改spark-defaults.conf,添加spark.eventLog.compress=true即可。

上述设置能生成格式为application_1462220075414_0017.snappy的作业历史文件,但Dr.Elephant要求的格式为application_1462220075414_0017_1.snappy,还需参照上述链接继续修改。

上述问题的讨论见Dr.Elephant analysis spark log。已经有人提了Pull Request,以满足Dr.Elephant同时支持压缩和非压缩日志文件,见Spark history file without codec。

1 0