翻译自:https://github.com/ICT-BDA/EasyML/blob/master/QuickStart.md
快速入门
在使用 EasyML Studio 之前, 你必须配置 开发环境和运行时服务环境, 成功运行Run Docker 容器 并且启动服务 只需三步.
开发环境
第一步: 导入项目到 IDEA 或者 Eclipse
- Git 仓库获取源码 https://github.com/ICT-BDA/EasyML
- 通过 maven 项目将代码导入到IDE
- 目前只支持 java 1.7
第二步: 设置 GWT Lib 路径
- 确保您的IDE 已经安装 Maven
- 使用 Maven 下载依赖包
- 确保在项目列表中可以看到所有的外部依赖库
- IDE 中安装GWT插件(此步骤可以跳过)
第三步: 创建并运行 EML web 应用
在安装好所有的依赖后, 采用以下步骤构建 EasyML Studio web 应用:
- 编辑运行配置
- 通过左上角的 “+” 添加 GWT web 应用, 如果列表中未看到
GWT Configuration
, 你可能在配置GWT Lib 路径时出错了. 返回到最后一步, 解决此问题.
使用 Super Dev 模式 可以在浏览器中调试你的web应用
. 这可以高效的调试程序,记住选中这个模式.- 当你完成了以上步骤, 你可以点击绿色运行按钮来运行和调试 EasyML. 过一会儿, 你可以在Chrome中访问 EasyML .
虚拟服务器集群准备
我们的服务器集群基于 Docker, 因此你可以在你的电脑上构建运行时环境. 这样即使没有远程连接你也可以便捷的开发项目. 然而, 你的第一步访问是安装 Docker.
第一步: 安装 Docker
- 按照 官方指南 安装 Docker.
- 通过命令
Docker info
和Docker version 确保docker服务正确运行
- 不管你的计算机是什么系统,务必关闭防火墙
- 如果你使用 centos 7, 也请务必关闭 selinux, 这样可以避免运行 Docker 容器出错.
- 执行:
sudo docker run helloworld
检查docker是否安装成功.
第二步: 从docker hub获取 mysql服务器镜像
-
docker pull nkxujun/mysql_eml
第三步: 从docker hub获取ubuntu_eml镜像
第四步: 下载并安装相关依赖包
集群中的每个服务器都是有一个docker 镜像创建的, and this image can be built via a Dockerfile which has defined by us and includes all utilities we need such as hadoop. 因此我们需要从 google drive disk 或 Baidu Cloud.下载 Dockerfile ,依赖文件和配置文件.
第五步: 构建 Eml 服务器镜像
运行 docker 虚拟服务器集群
为docker虚拟服务器集群创建网络
运行所有的容器
-
执行命令运行所有的服务器:
sh run_containers.sh
-
如果你成功运行了4个服务器: mysql, hadoop-master, hadoop-slave1,hadoop-slave2, 执行
docker ps
检查是否正确运行
检查容器之间的连通性
因为 hadoop 集群的网络连接依赖于ssh, 我们需要确认 三个服务器都能够进行ssh 免密码登录.
-
执行命令:
docker exec -it hadoop-master /bin/bash
可以登录到 Hadoop-master -
在 Hadoop-master中,执行命令:
ssh hadoop-slave1
和ssh hadoop-slave2
测试ssh免密码登录,测试完后记得退出: -
如果ssh无法正常运行, 登录到每个容器同事执行:
/etc/init.d/ssh start
启动集群中的所有服务
配置 local hosts
初始化 Mysql 数据库
- 执行命令:
sh init_mysql.sh
为Oozie 和EasyML Studio 初始化数据库
启动 HDFS,spark 和 Yarn 服务
- 执行:
docker exec -it hadoop-master /bin/bash
登录到hadoop-master 容器(登录到每个容器的重要命令) - 执行:
sh /root/start-hadoop.sh
启动 hadoop 和 spark 服务
- 执行:
sh /root/run_wordcount.sh
测试 hadoop 服务
- 在浏览器中访问 http://hadoop-master:50070/ 检查 namenode 和 每个datanode的状态:
启动Oozie 服务
- 登录到 hadoop-master 容器 执行命令:
docker exec -it hadoop-master /bin/bash
- 执行命令:
sh /root/start-oozie.sh
启动 Oozie 和 Tomcat 服务, 这个过程需要些时间:
- 在启动shell 我们已经启动了一个 ooize 任务实例, 浏览器中打开 http://hadoop-master:11000/oozie/ 可以查看任务的详细信息.
访问 EMLStudio 测试站点 确保所有进程的正确性
- 浏览器中访问 http://hadoop-master:18080/EMLStudio 并使用用户名: bdaict@hotmail.com 和密码:
bdaict登录
, 任务列表中将会有一个实例. - 复制实例并将其提交给服务器. 如果任务正常运行, 恭喜你配置成功.
停止和重新启动容器
- 如果你打算重置集群, 执行命令:
sh stop_containers.sh
可以停止并移除 hadoop-master, hadoop-slave1 和 hadoop-slave2 容器 , 执行:sh rm_images.sh
可以移除集群镜像. - 如果你重启了 docker 或者计算机, 容器需要重新启动, 执行:
sh restart_service.sh
重新启动所有的容器. 在执行完sh restart_service.sh
, 你需要登录到 hadoop-master 容器, 同时执行:sh restart.sh
来重启hadoop, spark 和 oozie 服务.