Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

教程:启动具有 MapR M7 的 Amazon EMR 集群

本教程将指导您完成启动采用 MapR Hadoop 发行版 M7 版次的 Amazon EMR 集群这一过程。MapR Hadoop 发布版是一个完整的 Hadoop 发布版,它提供了许多独特的功能,例如行业标准 NFS 和 ODBC 接口、端到端管理、高可靠性和自动压缩功能。您可以通过基于 Web 的 MapR 控制系统、命令行或 REST API 管理 MapR 集群。M7 提供企业级的功能,例如高可用性、快照镜像卷以及 MapR-FS 上的本机 MapR 表功能,进而实现 HBase 式响应型扁平表数据库与快照和镜像兼容。它提供了单一平台来存储和处理结构化和非结构化数据,与现有基础设施、应用程序和工具集成。

注意

要使用本教程中的命令,请下载和安装 AWS CLI。有关更多信息,请参阅 AWS Command Line Interface User Guide 中的安装 AWS CLI

  1. 要启动运行 MapR (m7 版本) 的集群,请键入以下命令并将 myKey 替换为您的 EC2 密钥对的名称。

    • Linux、UNIX 和 Mac OS X 用户:

      aws emr create-cluster --name "MapR cluster" --applications Name=Hive Name=Pig \ Name=MapR,Args=--edition,m7,--version,4.0.2 --ami-version 3.3.2 \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type m4.large --instance-count 3
    • Windows 用户:

      aws emr create-cluster --name "MapR cluster" --applications Name=Hive Name=Pig Name=MapR,Args=--edition,m7,--version,3.1.1 --ami-version 2.4 --use-default-roles --ec2-attributes KeyName=myKey --instance-type m4.large --instance-count 3

    注意

    Amazon EMR 中可用的 MapR 版本当前不支持 Hadoop 2.x。指定 --ami-version 时,请使用 Hadoop 1.x AMI。

    如果不使用 --instance-groups 参数指定实例计数,则将启动单个主节点,其余实例将作为核心节点启动。所有节点都使用该命令中指定的实例类型。

    注意

    如果您之前未创建默认 EMR 服务角色和 EC2 实例配置文件,请先键入 aws emr create-default-roles 创建它们,然后再键入 create-cluster 子命令。

    运行命令后,集群需要五到十分钟才开始启动。aws emr list-clusters 命令显示集群进入 WAITING 状态前处于 STARTING 和 BOOTSTRAPPING 状态。

    有关如何在 AWS CLI 中使用 Amazon EMR 命令的更多信息,请参阅 http://docs.amazonaws.cn/cli/latest/reference/emr

  2. 检索集群 ID,然后使用 SSH 连接到集群。在以下命令中,将 j-2AL4XXXXXX5T9 替换为您的集群 ID,并将 ~/mykeypair.key 替换为密钥对私有密钥文件的路径和文件名。

    aws emr list-clusters aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key

    注意

    有关使用 SSH 访问集群的更多信息,请参阅使用 SSH 连接主节点

  3. MAPR 提供了,并将其作为组织数据和管理集群性能的一种方式。卷是一种逻辑单元,通过它可向一组文件、目录和子卷应用策略。您可以使用卷来强制实施磁盘用量限制,设置复制级别,确立所有权和责任,并衡量不同的项目或部门产生的成本。创建用于各用户、部门或项目的卷。您可以在其他卷下装载卷,以构建反映您组织需求的结构。卷结构定义如何向集群中的节点分配数据。

    通过 SSH 连接到集群后运行以下命令来创建卷:

    $ maprcli volume create -name tables -replicationtype low_latency -path /tables
  4. MapR Hadoop 发布版的 M7 Edition 可让您以很多在标准 UNIX 文件系统中创建和操作文件的方式创建和操作表。在 M7 Edition 中,表与文件享有同样的命名空间,并使用完整路径名称进行指定。

    1. 使用以下命令创建表:

      $ echo "create '/tables/user_table', 'family' " | hbase shell
    2. 使用以下命令列出表:

      $ hadoop fs -ls /tables Found 1 items trwxr-xr-x 3 root root 2 2013-04-16 22:49 /tables/user_table $ ls /mapr/MapR_EMR.amazonaws.com/tables user_table
    3. 使用以下命令移动或重命名表:

      hadoop fs -mv /tables/user_table /tables/usertable
  5. 快照是卷在特定时间点的只读映像。任何时候您需要回滚到特定时间点的已知良好数据集,快照都非常有用。

    1. 从 HBase 外壳环境向新创建的表中添加行:

      $ hbase shell hbase(main):001:0> put '/tables/usertable', 'row_1' , 'family:child', 'username' output: 0 row(s) in 0.0920 seconds
    2. 创建快照:

      $ maprcli volume snapshot create -volume tables -snapshotname mysnap
    3. 更改表:

      hbase(main):002:0> put '/tables/usertable', 'row_1' , 'family:location', 'San Jose'
    4. 快照存储在 .snapshot 目录下。扫描快照中的表和当前表,查看有何不同:

      hbase shell > scan '/tables/usertable' ROW COLUMN+CELL row_1 column=family:child, timestamp=1366154016042, value=username row_1 column=family:home, timestamp=1366154055043, value=San Jose 1 row(s) in 0.2910 seconds scan ‘/tables/.snapshot/mysnap/usertable’ ROW COLUMN+CELL row_1 column=family:child, timestamp=1366154016042, value=username 1 row(s) in 0.2320 seconds
  6. 测试高可用性:

    1. 列出系统上的当前区域。

      $ maprcli table region list -path /tables/usertable secondarynodes scans primarynode puts startkey gets lastheartbeat endkey ip-10-191-5-21.ec2.internal, ip-10-68-37-140.ec2.internal ... ip-10-4-74-175.ec2.internal ... -INFINITY ... 0 INFINITY
    2. 针对其中一个区域重启主节点。确保主节点不是集群的接入点。重启接入点将导致集群访问丢失,并终止您的 YCSB 客户端。

      通过 SSH 连接集群,并使用以下命令重启节点:

      $ ssh -i /Users/username/downloads/MyKey_Context.pem hadoop@ec2-23-20-100-174.compute-1.amazonaws.com $ sudo /sbin/reboot

      注意

      完成重启需要 15 到 30 秒。

    3. 重启完成后,列出您的新区域,这时您会发现前一个主节点现在列为辅助节点。

      $ maprcli table region list -path /tables/usertable secondarynodes scans primarynode puts startkey gets lastheartbeat endkey ip-10-191-5-21.ec2.internal, ip-10-68-37-140.ec2.internal ... ip-10-4-74-175.ec2.internal ... -INFINITY ... 0 INFINITY
  7. 要打开 MapR 控制系统,请导航到地址 https://hostname.compute-1.amazonaws.com:8453。默认安装的用户名和密码的都是 hadoop。您首次通过 SSH 登录到该节点显示的当日消息中会显示您主机名的 URL。

    “节点”视图按机架显示集群中的节点。“Nodes (节点)”视图包含两个窗格:“Topology (拓扑)”窗格和“Nodes (节点)”窗格。“拓扑”窗格显示集群中的机架。选择机架即会在右侧的“节点”窗格中显示该机架的节点。选择 Cluster (集群) 即会显示该集群中的所有节点。单击任意列名称,该列即会按升序或降序对数据进行排序。如果 YCSB 任务仍在运行,则您可以看到 PUT 串流继续来自“节点”视图。