기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
이전 AMI 버전의 Amazon을 사용하여 클러스터 및 애플리케이션 구성 사용자 지정 EMR
Amazon EMR 릴리스 버전 4.0.0에서는 구성 분류를 사용하여 애플리케이션을 구성하는 간소화된 방법을 도입했습니다. 자세한 내용은 애플리케이션 구성 단원을 참조하십시오. AMI 버전을 사용할 때 전달하는 인수와 함께 부트스트랩 작업을 사용하여 애플리케이션을 구성합니다. 예를 들어 configure-hadoop
및 configure-daemons
부트스트랩 작업은와 같은 하둡 및 YARN특정 환경 속성을 설정합니다--namenode-heap-size
. 최신 버전에서는 이러한 사항이 hadoop-env
및 yarn-env
구성 분류를 통해 구성됩니다. 일반적인 구성을 수행하는 부트스트랩 작업은 emr-bootstrap-actions Github의 리포지토리를
다음 표는 부트스트랩 작업을 최신 Amazon EMR 릴리스 버전의 구성 분류에 매핑합니다.
영향을 받는 애플리케이션 파일 이름 | AMI 버전 부트스트랩 작업 | 구성 분류 |
---|---|---|
core-site.xml |
configure-hadoop -c
|
core-site |
log4j.properties |
configure-hadoop -l |
hadoop-log4j |
hdfs-site.xml |
configure-hadoop -s |
hdfs-site
|
해당 사항 없음 | 해당 사항 없음 | hdfs-encryption-zones |
mapred-site.xml
|
configure-hadoop -m |
mapred-site |
yarn-site.xml
|
configure-hadoop -y
|
yarn-site |
httpfs-site.xml |
configure-hadoop -t |
httpfs-site |
capacity-scheduler.xml
|
configure-hadoop -z
|
capacity-scheduler |
yarn-env.sh |
configure-daemons --resourcemanager-opts |
yarn-env |
영향을 받는 애플리케이션 파일 이름 | AMI 버전 부트스트랩 작업 | 구성 분류 |
---|---|---|
hive-env.sh |
해당 사항 없음 | hive-env |
hive-site.xml |
hive-script --install-hive-site
${MY_HIVE_SITE_FILE} |
hive-site |
hive-exec-log4j.properties |
해당 사항 없음 | hive-exec-log4j |
hive-log4j.properties |
해당 사항 없음 | hive-log4j |
영향을 받는 애플리케이션 파일 이름 | AMI 버전 부트스트랩 작업 | 구성 분류 |
---|---|---|
emrfs-site.xml |
configure-hadoop -e |
emrfs-site |
해당 사항 없음 | s3get -s s3://custom-provider.jar -d
/usr/share/aws/emr/auxlib/ |
emrfs-site (새로운 설정 fs.s3.cse.encryptionMaterialsProvider.uri 지원) |
모든 분류 목록을 보려면 애플리케이션 구성 단원을 참조하십시오.
애플리케이션 환경 변수
AMI 버전을 사용하는 경우 configure-daemons
부트스트랩 작업과 함께 hadoop-user-env.sh
스크립트를 사용하여 하둡 환경을 구성합니다. 이 스크립트에는 다음 작업이 포함되어 있습니다.
#!/bin/bash export HADOOP_USER_CLASSPATH_FIRST=true; echo "HADOOP_CLASSPATH=/path/to/my.jar" >> /home/hadoop/conf/hadoop-user-env.sh
Amazon EMR 릴리스 4.x에서는 다음 예제와 같이 hadoop-env
구성 분류를 사용하여 동일한 작업을 수행합니다.
[ { "Classification":"hadoop-env", "Properties":{ }, "Configurations":[ { "Classification":"export", "Properties":{ "HADOOP_USER_CLASSPATH_FIRST":"true", "HADOOP_CLASSPATH":"/path/to/my.jar" } } ] } ]
또 다른 예로, configure-daemons
를 사용하고 --namenode-heap-size=2048
및 --namenode-opts=-XX:GCTimeRatio=19
를 전달하는 것은 다음 구성 분류와 동일합니다.
[ { "Classification":"hadoop-env", "Properties":{ }, "Configurations":[ { "Classification":"export", "Properties":{ "HADOOP_DATANODE_HEAPSIZE": "2048", "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19" } } ] } ]
다른 애플리케이션 환경 변수는 더 이상 /home/hadoop/.bashrc
에 정의되지 않습니다. 대신 /etc/default
과 같이 구성 요소별 또는 애플리케이션별 /etc/default/hadoop
파일에서 주로 설정됩니다. 애플리케이션에서 /usr/bin/
설치한의 래퍼 스크립트RPMs는 실제 빈 스크립트를 포함하기 전에 추가 환경 변수를 설정할 수도 있습니다.
서비스 포트
AMI 버전을 사용할 때 일부 서비스는 사용자 지정 포트를 사용합니다.
설정 | AMI 버전 3.x | 오픈 소스 기본값 |
---|---|---|
fs.default.name | hdfs://emrDeterminedIP:9000 | 기본값(hdfs://emrDeterminedIP :8020) |
dfs.datanode.address | 0.0.0.0:9200 | 기본값(0.0.0.0:50010) |
dfs.datanode.http.address | 0.0.0.0:9102 | 기본값(0.0.0.0:50075) |
dfs.datanode.https.address | 0.0.0.0:9402 | 기본값(0.0.0.0:50475) |
dfs.datanode.ipc.address | 0.0.0.0:9201 | 기본값(0.0.0.0:50020) |
dfs.http.address | 0.0.0.0:9101 | 기본값(0.0.0.0:50070) |
dfs.https.address | 0.0.0.0:9202 | 기본값(0.0.0.0:50470) |
dfs.secondary.http.address | 0.0.0.0:9104 | 기본값(0.0.0.0:50090) |
yarn.nodemanager.address | 0.0.0.0:9103 | 기본값(${yarn.nodemanager.hostname}:0) |
yarn.nodemanager.localizer.address | 0.0.0.0:9033 | 기본값(${yarn.nodemanager.hostname}:8040) |
yarn.nodemanager.webapp.address | 0.0.0.0:9035 | 기본값(${yarn.nodemanager.hostname}:8042) |
yarn.resourcemanager.address | emrDeterminedIP :9022 |
기본값(${yarn.resourcemanager.hostname}:8032) |
yarn.resourcemanager.admin.address | emrDeterminedIP :9025 |
기본값(${yarn.resourcemanager.hostname}:8033) |
yarn.resourcemanager.resource-tracker.address | emrDeterminedIP :9023 |
기본값(${yarn.resourcemanager.hostname}:8031) |
yarn.resourcemanager.scheduler.address | emrDeterminedIP :9024 |
기본값(${yarn.resourcemanager.hostname}:8030) |
yarn.resourcemanager.webapp.address | 0.0.0.0:9026 | 기본값(${yarn.resourcemanager.hostname}:8088) |
yarn.web-proxy.address | emrDeterminedIP :9046 |
기본값(값 지정 안 함) |
yarn.resourcemanager.hostname | 0.0.0.0(기본값) | emrDeterminedIP |
참고
emrDeterminedIP
는 Amazon에서 생성한 IP 주소입니다EMR.
사용자
AMI 버전을 사용할 때 사용자는 모든 프로세스를 hadoop
실행하고 모든 파일을 소유합니다. Amazon EMR 릴리스 버전 4.0.0 이상에서는 사용자가 애플리케이션 및 구성 요소 수준에 있습니다.
설치 시퀀스, 설치된 아티팩트 및 로그 파일 위치
AMI 버전을 사용하는 경우 애플리케이션 아티팩트와 해당 구성 디렉터리가 /home/hadoop/
디렉터리에 설치됩니다. 예를 들어 Hive를 설치한 경우 디렉터리는 application
/home/hadoop/hive
입니다. Amazon EMR 릴리스 4.0.0 이상에서는 /usr/lib/
디렉터리에 애플리케이션 아티팩트가 설치됩니다. AMI 버전을 사용할 때 로그 파일은 다양한 위치에서 찾을 수 있습니다. 아래 표에는 위치가 나열되어 있습니다.application
대몬(daemon) 또는 애플리케이션 | 디렉터리 위치 |
---|---|
인스턴스 상태 | node/instance-id /instance-state/ |
hadoop-hdfs-namenode | 데몬/instance-id /hadoop-hadoop-namenode.log |
hadoop-hdfs-datanode | 데몬/instance-id /hadoop-hadoop-datanode.log |
hadoop-yarn(ResourceManager) | 데몬/instance-id /yarn-hadoop-resourcemanager |
하둡 yarn(프록시 서버) | 데몬/instance-id /yarn-hadoop-proxyserver |
mapred-historyserver | 데몬/instance-id / |
httpfs | 데몬/instance-id /httpfs.log |
hive-server | node/instance-id /hive-server/hive-server.log |
hive-metastore | node/instance-id /apps/hive.log |
Hive CLI | node/instance-id /apps/hive.log |
YARN 애플리케이션 사용자 로그 및 컨테이너 로그 | task-attempts/ |
Mahout | N/A |
Pig | N/A |
spark-historyserver | 해당 사항 없음 |
mapreduce 작업 기록 파일 | jobs/ |
Command Runner
AMI 버전을 사용하는 경우와 같은 많은 스크립트 또는 프로그램이 쉘 로그인 경로 환경에 배치/home/hadoop/contrib/streaming/hadoop-streaming.jar
되지 않으므로 command-runner.jar 또는 script-runner.jar와 같은 jar 파일을 사용하여 스크립트를 실행할 때 전체 경로를 지정해야 합니다. command-runner.jar
는에 AMI 있으므로의 경우와 URI 마찬가지로 전체를 알 필요가 없습니다script-runner.jar
.
복제 인수
복제 인수를 사용하면 하둡을 시작할 시기를 구성할 수 있습니다JVM. 모든 태스크에 JVM 대해 새 하둡을 시작하여 태스크 격리를 개선하거나 태스크 JVMs 간에 공유하여 프레임워크 오버헤드를 줄일 수 있습니다. 많은 작은 파일을 처리하는 경우 JVM 여러 번 재사용하여 시작 비용을 분할 상환하는 것이 좋습니다. 그러나 각 작업이 오래 걸리거나 대량의 데이터를 처리하는 경우를 재사용하지 않도록 선택하여 모든 메모리가 후속 작업에 사용 중지되도록 JVM할 수 있습니다. AMI 버전을 사용할 때 configure-hadoop
부트스트랩 작업을 사용하여 복제 인수를 사용자 지정하여 mapred.job.reuse.jvm.num.tasks
속성을 설정할 수 있습니다.
다음 예제에서는 무한 JVM 재사용을 위한 JVM 재사용 계수를 설정하는 방법을 보여줍니다.
참고
가독성을 위해 Linux 줄 연속 문자(\)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.
aws emr create-cluster --name "
Test cluster
" --ami-version3.11.0
\ --applications Name=Hue
Name=Hive
Name=Pig
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-groups InstanceGroupType=MASTER
,InstanceCount=1
,InstanceType=m3.xlarge
\ InstanceGroupType=CORE
,InstanceCount=2
,InstanceType=m3.xlarge
\ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop
,\ Name="Configuring infinite JVM reuse"
,Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"
]