这篇文章列举了一些常见的问题,以及一些建议来帮助我们解决实际遇到的问题。
Dr.Elephant需要部署在一个有Hadoop平台环境的机器上。Er.Elephant会在集群上运行“hadoop classpath”命令来获得classpaht中所有的配置和jar包。通过这些配置,可以获得对资源管理器和历史任务服务器的连接。Dr.Elephant还会运行“hadoop version”命令来验证hadoop的版本信息以及hadoop包含了java的library path。
如果想在非Hadoop集群机器上安装Dr.Elephant,然后通过远程连接的方式连接到Hadoop也是可行的。请按照以下步骤来安装:
出现这个ERROR的原因是,1.sql文件中的部分DDL语句有一些问题。超过了默认的索引长度限制。强烈建议修改1.sql文件中的以下内容:
将49-51行替换,原始内容是:
create index yarn_app_result_i4 on yarn_app_result (flow_exec_id);
create index yarn_app_result_i5 on yarn_app_result (job_def_id);
create index yarn_app_result_i6 on yarn_app_result (flow_def_id);
替换后的内容是:
create index yarn_app_result_i4 on yarn_app_result (flow_exec_id(100));
create index yarn_app_result_i5 on yarn_app_result (job_def_id(100));
create index yarn_app_result_i6 on yarn_app_result (flow_def_id(100));
以上的内容不会更新到代码中,因为h2 内存db不支持以上的语法,会导致所有的测试失败。所以以上的改动需要我们手动来完成,首先需要编译源代码,生成需要分发的zip包,解压缩,将上面的修改更新到1.sql文件中。
另一个解决办法是:修改MySQL服务器的my.cnf配置文件,添加innodb_large_prefix=1,然后重启MySQL,这样就可以支持较大索引了。
出现这个问题,可能是因为mysql安装有一些问题。为了能更好的debug问题,请把start.sh脚本中的第151行做一个修改。将:
nohup ./bin/dr-elephant ${OPTS} > 2>&1 &
替换为:
nohup ./bin/dr-elephant ${OPTS} > $project_root/dr.log 2>&1 &
4. Database ‘default’ is in an inconsistent state!
出现这个问题,一般是在play的evolution中出现了问题。请尝试以下步骤:
$> vim ./app-conf/elephant.conf
jvm_props=" -Devolutionplugin=enabled -DapplyEvolutions.default=true"