Dr.Elephant FAQ 常见问题

转载自:http://blog.csdn.net/qsc0624/article/details/51353611

-------------

这篇文章列举了一些常见的问题,以及一些建议来帮助我们解决实际遇到的问题。

1. Dr.Elephant部署在哪里?

Dr.Elephant需要部署在一个有Hadoop平台环境的机器上。Er.Elephant会在集群上运行“hadoop classpath”命令来获得classpaht中所有的配置和jar包。通过这些配置,可以获得对资源管理器和历史任务服务器的连接。Dr.Elephant还会运行“hadoop version”命令来验证hadoop的版本信息以及hadoop包含了Java的library path。

如果想在非Hadoop集群机器上安装Dr.Elephant,然后通过远程连接的方式连接到Hadoop也是可行的。请按照以下步骤来安装:

  1. 拷贝Hadoop集群的所有配置和jar包到要部署的机器上
  2. 拷贝Hadoop集群上的$HADOOP_HOME/lib/native包中的内容到要部署的机器上
  3. 编辑elephant.conf文件,为参数jvm_args添加属性-Djava.library.path=$HADOOP_HOME/lib/native
  4. 编辑start.sh脚本,添加以下内容
  5. 删除131到143行,特别是包含了命令“hadoop version”的行
  6. 删除145行的OPTS中的-Djava.library.path=$JAVA_LIB_PATH
  7. 当用unzip命令解压了需要分发的包之后,按下面的方式修改bin目录中dr-elephant可执行文件
  8. 从app_classpath删除“hadoop classpath”,然后替换成我们在1,2步中将那些配置文件和jar包拷贝到的目录

2. Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]

出现这个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,这样就可以支持较大索引了。

3. [ERROR] - from play in main

出现这个问题,可能是因为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中出现了问题。请尝试以下步骤:

  1. 停止Dr.Elephant。 确保已经杀死Dr.Elephant进程。ps aux | grep elephant
  2. 删除原来的数据库,并删除所有表
  3. 重新创建数据库
  4. 如果evolution设置为禁止使用,请激活,然后启动Dr.Elephant

$> vim ./app-conf/elephant.conf

jvm_props=" -Devolutionplugin=enabled -DapplyEvolutions.default=true"


作者简介:屈世超,专注于大数据。现担任EverString数据平台组高级开发工程师。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值