EasyML 快速入门

来源:互联网 发布:淘宝买家达到钻号 编辑:程序博客网 时间:2024/06/11 22:15

翻译自: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
import project to IDEA
  • 目前只支持 java  1.7
configure JDK path

第二步: 设置 GWT Lib 路径

  • 确保您的IDE 已经安装 Maven
  • 使用 Maven 下载依赖包
configure maven
  • 确保在项目列表中可以看到所有的外部依赖库
External libraries
  • IDE 中安装GWT插件(此步骤可以跳过)

第三步: 创建并运行 EML web 应用

在安装好所有的依赖后, 采用以下步骤构建 EasyML Studio web 应用:

  • 编辑运行配置
Edit configuration
  • 通过左上角的 “+” 添加 GWT web 应用, 如果列表中未看到 GWT Configuration , 你可能在配置GWT Lib 路径时出错了. 返回到最后一步, 解决此问题.
Edit Easy ML
  • 使用 Super Dev 模式 可以在浏览器中调试你的web应用. 这可以高效的调试程序,记住选中这个模式.
  • 当你完成了以上步骤, 你可以点击绿色运行按钮来运行和调试 EasyML. 过一会儿, 你可以在Chrome中访问 EasyML .
Easy ML home page

虚拟服务器集群准备

我们的服务器集群基于 Docker, 因此你可以在你的电脑上构建运行时环境. 这样即使没有远程连接你也可以便捷的开发项目. 然而, 你的第一步访问是安装 Docker.

第一步: 安装 Docker

  • 按照 官方指南 安装 Docker.
  • 通过命令 Docker infoDocker version 确保docker服务正确运行
  • 不管你的计算机是什么系统,务必关闭防火墙
  • 如果你使用 centos 7, 也请务必关闭 selinux, 这样可以避免运行 Docker 容器出错.
  • 执行: sudo docker run helloworld  检查docker是否安装成功.

第二步: 从docker hub获取 mysql服务器镜像

  • 从 docker hub获取mysql服务器镜像:

    docker pull nkxujun/mysql_eml

第三步: 从docker hub获取ubuntu_eml镜像

  • Eml 服务器镜像基于 ubuntu, 因此首先要获取它:

    docker pull nkxujun/ubuntu_eml

  • 你可以使用: docker images 检查是否成功获取两个镜像:

    eml_images

第四步: 下载并安装相关依赖包

集群中的每个服务器都是有一个docker 镜像创建的, and this image can be built via aDockerfile which has defined by us and includes all utilities we need such as hadoop. 因此我们需要从google drive disk 或 Baidu Cloud.下载 Dockerfile ,依赖文件和配置文件.

第五步: 构建 Eml 服务器镜像

  • 定位到上步你下载文件的文件夹

  • 执行 build.sh 构建镜像, 这个过程将会持续几分钟
    sh build.sh

  • 执行: docker images 检查是否构建成功:

    Origin_images

运行 docker 虚拟服务器集群

为docker虚拟服务器集群创建网络

  • 执行: sh build_network.sh 创建一个叫做 shadownet 的网络:

    networks

运行所有的容器

  • 执行命令运行所有的服务器: sh run_containers.sh

    net works
  • 如果你成功运行了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-slave1ssh hadoop-slave2  测试ssh免密码登录,测试完后记得退出:

    test ssh
  • 如果ssh无法正常运行, 登录到每个容器同事执行:/etc/init.d/ssh start

启动集群中的所有服务

配置 local hosts

  • hadoop-mastermysql及其对应的IP 添加到 hosts 文件中, 例如:

    Hosts

初始化 Mysql 数据库

  • 执行命令: sh init_mysql.sh  为OozieEasyML 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的状态:
namenode_web

启动Oozie 服务

  • 登录到 hadoop-master 容器 执行命令: docker exec -it hadoop-master /bin/bash
  • 执行命令: sh /root/start-oozie.sh 启动 Oozie 和 Tomcat 服务, 这个过程需要些时间:
start oozie
  • 在启动shell 我们已经启动了一个 ooize 任务实例, 浏览器中打开 http://hadoop-master:11000/oozie/  可以查看任务的详细信息.
browse_oozie

访问 EMLStudio 测试站点 确保所有进程的正确性

  • 浏览器中访问 http://hadoop-master:18080/EMLStudio 并使用用户名:bdaict@hotmail.com 和密码:bdaict登录, 任务列表中将会有一个实例.
  • 复制实例并将其提交给服务器. 如果任务正常运行, 恭喜你配置成功.
Eml_example

停止和重新启动容器

  • 如果你打算重置集群, 执行命令: 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 服务.
原创粉丝点击