Amazon EMR을 사용하여 바이너리 빌드
Amazon EMR을 빌드 환경으로 사용하여 클러스터에서 사용할 수 있도록 프로그램을 컴파일할 수 있습니다. Amazon EMR에서 사용하는 프로그램은 Amazon EMR에 사용되는 것과 동일한 Linux 버전을 실행하는 시스템에서 컴파일해야 합니다. 32비트 버전의 경우 32비트 시스템에서 컴파일하거나 32비트 교차 컴파일 옵션이 활성화된 상태로 컴파일해야 합니다. 64비트 버전의 경우 64비트 시스템에서 컴파일하거나 64비트 교차 컴파일 옵션이 활성화된 상태로 컴파일해야 합니다. EC2 인스턴스 버전에 대한 자세한 내용은 Amazon EMR 관리 안내서에서 EC2 인스턴스 계획 및 구성을 참조하세요. 지원되는 프로그래밍 언어로는 C++, Python 및 C#이 있습니다.
다음 테이블에는 Amazon EMR을 사용한 애플리케이션 빌드 및 테스트 관련 단계가 요약되어 있습니다.
1 | 클러스터의 마스터 노드에 연결합니다. |
2 | 소스 파일을 마스터 노드로 복사합니다. |
3 | 필요한 최적화를 사용하여 바이너리를 빌드합니다. |
4 | 프라이머리 노드에서 Amazon S3으로 바이너리를 복사합니다. |
이러한 각각의 단계에 대한 자세한 내용은 다음 단원에서 설명합니다.
클러스터의 마스터 노드에 연결하려면
-
Amazon EMR 관리 안내서에서 SSH를 사용하여 프라이머리 노드에 연결의 지침을 따릅니다.
소스 파일을 마스터 노드로 복사하려면
-
Amazon S3 버킷에 소스 파일을 배치합니다. 버킷을 생성하는 방법과 Amazon S3로 데이터를 이동하는 방법을 알아보려면 Amazon Simple Storage Service 사용 설명서를 참조하세요.
-
다음과 비슷한 명령을 입력하여 하둡 클러스터에 소스 파일용 폴더를 생성합니다.
mkdir
SourceFiles
-
다음과 비슷한 명령을 입력하여 Amazon S3에서 프라이머리 노드로 소스 파일을 복사합니다.
hadoop fs -get
s3://amzn-s3-demo-bucket/SourceFiles
SourceFiles
필요한 최적화를 사용하여 바이너리 빌드
바이너리 빌드 방식은 여러 요인에 따라 달라집니다. 특정 빌드 도구에 대한 지침에 따라 환경을 설정하고 구성합니다. 빌드 환경을 설치하는 방법을 알아보기 위해 하둡 시스템 사양 명령을 사용하여 클러스터 정보를 가져올 수 있습니다.
시스템 사양을 식별하려면
-
다음 명령을 사용하여 바이너리를 빌드하는 데 사용하려는 아키텍처를 확인합니다.
-
Debian 버전을 보려면 다음 명령을 입력합니다.
master$ cat /etc/issue
출력 결과는 다음과 비슷합니다.
Debian GNU/Linux 5.0
-
퍼블릭 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
-
프로세서 속도를 보려면 다음 명령을 입력합니다.
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