最近尝试在测试环境安装部署了Dr.Elephant,花了不少时间,碰到一些问题。借助于官方文档和LinedIn akshayrai大神的帮助,最终成功启动Dr.Elephant。鉴于国内还没有类似的文章详细介绍Dr.Elephant的部署启动的实践,现将自己的一些经验分享给大家,欢迎一起讨论。
我的首次安装是在分布式Hadoop集群上完成的,没有尝试本地安装Dr.Elephant,所以下面的安装步骤和经验也都是针对集群部署启动而言的。首先,我会对文档中要求的准备工作已经部署启动过程进行一个汇总,然后再说关于遇到问题的解决办法。
准备工作
编译代码,生成部署需要的包
1. 本地安装play框架,在环境变量PATH添加play命令路径。play对Java版本要求,版本必须是Java 8以上。
2. 修改源码中编译时用到的配置文件,app-conf/compile.conf,将hadoop_version和spark_version修改成对应的版本。(如果不修改,是否会遇到问题,我没有尝试)。
3. 运行源码中编译命令./compile.sh [./app-conf/compile.conf],请将中括号中路径修改为相应文件的路径。编译过程会下载很多需要用到的jar包和文件,请耐心等待。我前两次编译都因为部分文件下载失败而导致编译失败。如果有问题,继续尝试编译,已经下载过的文件会自动跳过,就不用再次下载了。
4. 编译完成后,会有SUCCESS的提示。这时可以看到在源码文件夹中,多了一个目录dist,进入这个目录可以看到,里面有一个zip包dr-elephant*.zip,解压缩这个zip包,生成一个文件夹dr-elephant*。记住,这个文件夹需要被分发到需要部署Dr.Elephant的机器上,下面会用到它。
5. 源码中的app-conf文件夹也会在后面分发到需要部署Dr.Elephant的机器上
编译生成可执行文件,在本地即可完成。是不需要在本地安装Hadoop平台的。
集群环境要求
1. 确保Yarn资源管理器的正常运行以及历史任务服务的正常运行,对于使用Yarn管理Hadoop平台的集群环境来说,一般这个条件都能满足
2. 部署启动一个MySQL服务,MySQL的版本必须是5.5+。对MySQL没有特殊配置,分配好对这个DB有读写权限的账号即可。在MySQL中创建一个db名称drelephant(这个名称可以是任意的,后面可以看到,和elephant.conf配置文件中db名称一致即可)
3.将准备工作中提到的需要用到的app-conf文件夹也拷贝到需要部署的机器上某个目录,假设这个目录是/a/app-conf/。修改app-conf文件夹中的文件elephant.conf文件,添加
jvm_props=" -Devolutionplugin=enabled -DapplyEvolutions.default=true"
并修改这个文件中的db_url、db_user、db_name和db_password配置参数,改为我们要使用的MySQL的连接参数。
4. 在这个机器上配置环境变量ELEPHANT_CONF_DIR,让这个环境变量指向从源码中拷贝过来的app-conf文件夹。其实这步不是必须的,后面可以看到,如果不设置这个变量ELEPHANT_CONF_DIR,在启动Dr.Elephant时,在命令行参数中第一个参数添加这个本地目录也是可以的。
部署启动
1. 在Hadoop集群中选择一台机器作为Dr.Elephant的部署机器,在这个机器上选择一个有权限访问HDFS的账号,作为Dr.Elephant的启动账号
2. 将前面步骤中提到的编译后生成的dist/dr-elephant*文件拷贝到这个机器上
3. 进入bin目录,执行./start.sh [/a/app-conf]启动。如果没有执行“集群环境要求”中的第4步,这里需要手动输入/a/app-conf这个目录作为命令行参数
4. 启动后,验证是否执行成功。如果命令行输出提示“Dr.Elephant started”并不能证明它已经成功启动。可以按照以下步骤逐步验证:(1)ps aux | grep elephant,查看是否有这个进程,如果有,那么说明启动成功;(2)查看默认的log,dr.log,在安装包的首层目录下,如果日志中没有明显的异常抛出,说明启动正常;(3)登录用到的MySQL,进入使用的db,查看是否有表play_evolutions、yarn_app_heuristic_result、yarn_app_heuristic_result_details以及yarn_app_result,如果有这些表也说明启动正常;(4)浏览器请求"host:8080"(这个host是部署Dr.Elephant的机器的host),看看是否能看到Dr.Elephant UI的首页,如果可以,说明启动成功
如果你的安装过程出现什么问题,请首先查看我的这边博客Dr.Elephant常见问题来进行问题排查。
在我的另一篇博客“Dr.Elephant启动问题汇总”中,会总结一些Dr.Elephant在部署启动过程中遇到的一些问题,如果有需要可以点击查看。
欢迎大家一起交流Dr.Elephant相关的问题~