

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon EMR 构建二进制文件
<a name="emr-build-binaries"></a>

您可以使用 Amazon EMR 作为构建环境，以编译用于您的集群的程序。在 Amazon EMR 中使用的程序必须在运行 Linux 的系统上进行编译且 Linux 版本与 Amazon EMR 所用的相同。对于 32 位版本，您应在 32 位机器上或在打开 32 位交叉编译选项的情况下进行编译。对于 64 位版本，您需要在 64 位机器上编译或打开 64 位交叉编译选项。有关 EC2 实例版本的更多信息，请参阅《Amazon EMR 管理指南》**中的[计划和配置 EC2 实例](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-ec2-instances.html)。支持的编程语言包括 C\$1\$1、Python 和 C\$1。

下表概览了使用 Amazon EMR 构建和测试您的应用程序所涉及的步骤。


**构建模块的过程**  

|  |  | 
| --- |--- |
|  1 |  连接到集群的主节点。 | 
|  2  |  将源文件复制到主节点。 | 
|  3  |  使用任何必要的优化方法构建二进制文件。 | 
|  4 |  将二进制文件从主节点复制到 Amazon S3。 | 

每个步骤的详细信息请参阅下面的部分。

**连接到集群的主节点**
+ 按照《Amazon EMR 管理指南》**中的[使用 SSH 连接到主节点](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html)中的说明操作。

**将源文件复制到主节点。**

1. 将源文件置于 Amazon S3 存储桶中。要了解如何创建存储桶以及如何将数据移至 Amazon S3，请参阅[《Amazon Simple Storage Service 用户指南》](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)。

1. 通过输入类似于以下内容的命令，为您的源文件在 Hadoop 集群上创建文件夹：

   ```
   mkdir SourceFiles
   ```

1. 通过键入类似以下内容的命令，将您的源文件从 Amazon S3 复制到主节点：

   ```
   hadoop fs -get s3://amzn-s3-demo-bucket/SourceFiles SourceFiles
   ```

**使用任何必要的优化构建二进制文件**  
构建二进制文件的方式取决于多种因素。请按照具体构建工具的说明，设置和配置您的环境。您可以使用 Hadoop 系统规范命令获取集群信息，以确定如何安装您的构建环境。

**识别系统规范**
+ 使用以下命令验证用于构建二进制文件的架构。

  1. 要查看 Debian 版本，请输入以下命令：

     ```
     master$ cat /etc/issue
     ```

     该输出值看上去类似于以下内容。

     ```
     Debian GNU/Linux 5.0
     ```

  1. 要查看公有 DNS 名称和处理器大小，请输入以下命令：

     ```
     master$ uname -a
     ```

     该输出值看上去类似于以下内容。

     ```
     Linux domU-12-31-39-17-29-39.compute-1.internal 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:34:28 EST 2008 x86_64 GNU/Linux
     ```

  1. 要查看处理器速度，请输入以下命令：

     ```
     master$ cat /proc/cpuinfo
     ```

     该输出值看上去类似于以下内容。

     ```
     processor : 0
     vendor_id : GenuineIntel
     model name : Intel(R) Xeon(R) CPU E5430 @ 2.66GHz
     flags : fpu tsc msr pae mce cx8 apic mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr cda lahf_lm
     ...
     ```

构建了二进制文件后，您就可以将文件复制到 Amazon S3。

**将二进制文件从主节点复制到 Amazon S3**
+ 键入以下命令以将二进制文件复制到 Amazon S3 存储桶：

  ```
  hadoop fs -put BinaryFiles s3://amzn-s3-demo-bucket/BinaryDestination
  ```