本文介绍如何在E-MapReduce上使用Oozie。

前提条件

已创建E-MapReduce的Hadoop集群,并且选择了Oozie服务。详情请参见创建集群

准备工作

本文以MAC环境为例,使用Chrome浏览器实现端口转发。

  1. 登录Master节点,详情请参见使用SSH连接主节点
    ssh root@xx.xx.xx.xx

    xx.xx.xx.xx为集群Master节点公网IP地址。

  2. 输入密码。
  3. 查看本机的id_rsa.pub
    cat ~/.ssh/id_rsa.pub
  4. 写入id_rsa.pub内容至远程Master节点的~/.ssh/authorized_keys中。
    mkdir ~/.ssh/
    vim ~/.ssh/authorized_keys
  5. 拷贝步骤 3的返回信息,使用ssh root@xx.xx.xx.xx免密登录Master节点。
  6. 在本机进行端口转发。
    ssh -i ~/.ssh/id_rsa -ND 8157 root@xx.xx.xx.xx
  7. 在本地重新打开Terminal,启动Chrome。
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp

访问Oozie UI页面

在进行端口转发的Chrome浏览器中,输入如下地址,访问Oozie UI页面:
  • 公网IP地址:11000/oozie
  • localhost:11000/oozie
  • 内网IP地址:11000/oozie

提交Workflow作业

因为E-MapReduce集群中,默认安装了sharelib,所以您使用Oozie用户提交Workflow作业时,不需要再安装sharelib

  1. job.properties文件中指定不同的NameNode和JobTracker (ResourceManager)。
    • 非HA集群
      nameNode=hdfs://emr-header-1:9000
      jobTracker=emr-header-1:8032
    • HA集群
      nameNode=hdfs://emr-cluster
      jobTracker=rm1,rm2
  2. 提交Workflow作业。
    • 在非HA集群上提交Workflow作业
      1. 登录集群的主Master节点,详情请参见使用SSH连接主节点
        ssh root@主Master公网IP地址
      2. 下载示例代码。
        [root@emr-header-1 ~]# su oozie
        [oozie@emr-header-1 root]$ cd /tmp
        [oozie@emr-header-1 tmp]$ wget http://emr-sample-projects.oss-cn-hangzhou.aliyuncs.com/oozie-examples/oozie-examples.zip
        [oozie@emr-header-1 tmp]$ unzip oozie-examples.zip
      3. 同步Oozie Workflow代码至HDFS。
        [oozie@emr-header-1 tmp]$ hadoop fs -copyFromLocal examples/ /user/oozie/examples
      4. 提交Oozie Workflow样例作业。
        [oozie@emr-header-1 tmp]$ $OOZIE_HOME/bin/oozie job -config examples/apps/map-reduce/job.properties -run
        执行成功之后,返回如下信息。
        job: 0000000-160627195651086-oozie-oozi-W
      5. 访问Oozie UI页面

        您可以看查看提交的Oozie Workflow Job。

    • 在HA集群上提交Workflow作业
      1. 登录集群的主Master节点,详情请参见使用SSH连接主节点
        ssh root@主Master公网IP地址
      2. 下载HA集群的示例代码。
        [root@emr-header-1 ~]# su oozie
        [oozie@emr-header-1 root]$ cd /tmp
        [oozie@emr-header-1 tmp]$ wget http://emr-sample-projects.oss-cn-hangzhou.aliyuncs.com/oozie-examples/oozie-examples-ha.zip
        [oozie@emr-header-1 tmp]$ unzip oozie-examples-ha.zip
      3. 同步Oozie Workflow代码至HDFS。
        [oozie@emr-header-1 tmp]$ hadoop fs -copyFromLocal examples/ /user/oozie/examples
      4. 提交Oozie Workflow样例作业。
        [oozie@emr-header-1 tmp]$ $OOZIE_HOME/bin/oozie job -config examples/apps/map-reduce/job.properties -run
        执行成功之后,返回如下信息。
        job: 0000000-160627195651086-oozie-oozi-W
      5. 访问Oozie UI页面

        您可以看查看提交的Oozie Workflow Job。