Step 1: 在 GitHub 上注册一个账号,并 fork 一份Dr. Elephant
项目代码。
Step 2: 检出代码。
$> git clone https://github.com/<username>/dr-elephant
$> cd dr-elephant*
Step 3: 先决条件:
play
或者activator
命令行。下载activator
zip 包https://downloads.typesafe.com/typesafe-activator/1.3.12/typesafe-activator-1.3.12.zip ,解压并添加activator
命令到你自己的环境变量$PATH
。对于老版的play
,你需要添加paly
命令并替换activator
。export ACTIVATOR_HOME=/path/to/unzipped/activator
export PATH=$ACTIVATOR_HOME/bin:$PATH
Dr.Elephant
将分析数据结果存储在 MySQL 数据中。如果你还没装,请先安装好 MySQL。(推荐 5.5 以上版本)Dr. Elephant
UI 界面,需要安装npm
及其依赖sudo yum install npm
sudo npm install -g bower
cd web; bower install; cd ..
Step 4:(可选,Beta 阶段)如果你想尝试自动优化的新功能,请按照以下步骤来操作。(更多详情:https://github.com/linkedin/dr-elephant/wiki/Auto-Tuning)
app-conf/AutoTuningConf.xml
中autotuning.enabled
的选项为true
来启用自动优化功能app-conf/AutoTuningConf.xml
配置文件中的python.path
选项。PYTHON_PATH
设置为所需要的 python 版本的可执行文件路径即可:inspyred
包:
sudo pip install inspyred
Step 5: 编译Dr. Elephant
代码并打包生产zip
包。Compile.sh
脚本可以带一个配置文件路径参数,其中包含要编译的 Hadoop 和 Spark 的版本信息。具体信息请参阅开发者指南。
$> ./compile.sh [./compile.conf]
编译完成后,打包文件在dist
目录下。
$> ls dist
dr-elephant*.zip
Step 6: 复制打包后的程序到你打算安装Dr. Elephant
的服务器上。
Step 7: 在你安装Dr. Elephant
的服务器上,确认以下环境变量配置好了。
$> export HADOOP_HOME=/path/to/hadoop/home
$> export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
$> export SPARK_HOME=/path/to/spark/home
$> export SPARK_CONF_DIR=/path/to/conf
Step 8: 你同样需要一个存储数据的后端数据库。在elephant.conf
配置文件中配置 MySQL 数据库的相关连接信息。
# Database configuration
db_url=localhost
db_name=drelephant
db_user=root
db_password=""
Step 9: 如果你的群集是kerberised
,则更新keytab
用户和elephant.conf
文件中的keytab
文件位置。
Step 10: 如果你是第一次运行Dr. Elephant
,你需要打开evolutions
功能,为此,请在elephant.conf
配置文件中添加(或取消注释),-Devolutionplugin=enabled
和 -DapplyEvolutions.default=true
。这将会让Dr. Elephant
自动创建相关的 MySQL 表,下次重启程序时记得关闭这个选项。
$> vim ./app-conf/elephant.conf
jvm_props=" -Devolutionplugin=enabled -DapplyEvolutions.default=true"
Step 11: 要启动Dr. Elephant
,需要在运行启动脚本时指定配置文件目录。
$> /bin/start.sh /path/to/app-conf/directory
要验证Dr. Elephant
是否启动成功,请检查dr.log
文件。
$> less $DR_RELEASE/dr.log
...
play - database [default] connected at jdbc:mysql://localhost/drelephant?characterEncoding=UTF-8
application - Starting Application...
play - Application started (Prod)
play - Listening for HTTP on /0:0:0:0:0:0:0:0:8080
要分析Dr. Elephant
是否正确的分析作业,请检查dr.log
文件。
$> less $DR_RELEASE/../logs/elephant/dr_elephant.log
Step 12: 一旦应用启动,你可以打开 ip:port (localhost:8080),查看 UI 界面。
Step 13: 要停止应用,只需执行
$> bin/stop.sh