0
Hadoop Cluster Tuning Test
SK 주식회사 C&C
최상연
1
1
Test 개요 - (1)
- 다양한 용도로 구성된 hadoop Cluster에 대한 적절한 튜닝이 되고 있는
가?
- 가상화 / cloud / on-premise 등 다양한환경에 대해 적절한 대응이 가
능한가?
- 사업에 적용할 수 있는 표준 Architect를 보유하고 있는가?
for Batch Process
for real-time Process
for analysis Process
2
1
Test 개요 - (2)
- 적절한 설정값은 무엇일까?
- Hadoop cluster 구성을 위해서는 너무 많은 고려사항
- On-site에 맞는 설정을 하는 것이 현실  Project Locality
: 다양한 환경에 공통적인 기준으로 활용할 수 있는
hadoop Eco / JVM / OS Tuning value을 찾아내는 것이 중요한
요소
3
2
Test 환경
(1) Test senario
- 사내 Cloud로 구성
- Public 및 Private 망으로 분리 구성
- HDP 2.5.0 & Ambari 2.5
Node OS CPU Mem Disk
5대 CentOs 6.8 2P 24Core 64GB 2T x 4
Test Server ( Summary)
4
2
Test 환경
(2) Test senario
- TPC Query 활용 ( www.tpc.org )
TPC
 트랜잭션 처리 성능평가 위원회(Transaction Processing performance Council)에서 발표한 벤치마크 모델
5
3
Benchmark Test
(1) JVM ( 1.8_111 vs 1.7_121 vs 1.7_79 )
- Data : TPC-DS 100GB
- Hive 1.2
Result
• 전체적으로는 JVM 1.8의 경우가 5~8% 정도 성능 향상을 보임
• JRE 1.7.79 vs 1.7.121 의 차이는 어느정도 존재하지만 결과로 신빙성이 느껴지지 않음
• 기존 JVM에 대한 version 상승으로도 어느 정도 성능향상에 기여 할 것으로 기대
6
3
Benchmark Test
(2) OS tuning
- CentOs 6.8 기준
- disk / Memory / network 등의 Tunging
Point
7
3
Benchmark Test
(2) OS tuning
- Data : TPC-DS 1.5 TB
- Hive 1.2
Result
• OS tuning전과 대비 30~40%정도 개선된 효과를 보임
• TPC-DS 쿼리 대부분이 JOIN-SELECT이기 때문에 Disk Write 부분이 별도로 필요해 보임
• OS Property중에서도 Disk관련 Property에 영향을 많이 받지 않았나 생각함
• 30초이내의 쿼리는 별 차이가 없었음
--> 즉 Disk I/O가 많은 대용량 작업에 영향을 줌
8
3
Benchmark Test
(3) hive vs Spark 1.6.2 vs Spark 2.0.0
- Data : TPC-DS 1.5 TB
- OS Tuned
Result
• Spark 1.6.2의 경우 쿼리 지원 수준이 떨어져 수행되지 않는 쿼리가 많음
• 대부분 Spark SQL 2.0.0의 성능이 안정적이며 개선된 부분을 보여줌
• 상용 Query 지원 수준 / Data validation / Join 안정성은 검증이 필요
• DW 쿼리 검증 필요  TPC-H
9
3
Benchmark Test
(4) hive vs Spark 1.6.2 vs Spark 2.0.0
- Data : TPC-H 700 GB
- OS Tuned
Result
• spark 1.6.2의 경우 불안정한 성능
 spark shuffle 관련하여 MapOutputTrackerMaster에서의 bottle neck 현상이 보임
• Spark SQL 2.0.0 에서 안정적인 성능
10
4
Summary
OS tuning + Spark 2.0.0 도입
- Data : TPC-DS 1.5TB
Result
• OS tuning만으로도 상당한 효과를 보임
• Spark 2.0은 DataSet으로 쿼리 지원 및 성능상에 많은 이점을 보여줌
 TPC-DS ( OLTP ) 및 TPC-H ( DW ) 모두 안정적인 성능을 보여줌
• OS + Spark 2.0도입으로 Total 수행 시간 기준, 50%이상의 Performance 향상을 보여줌
11
4
Summary
추가 고려요소
(1) Streaming Performance
: DW성 데이터 처리로 이루어진 테스트와 더불어 Streaming Test도 병행되어야 할 듯
(2) HDFS Trouble Shooting
: Hbase나 Spark Streaming과 같은 서비스를 활용할 시, HDFS 구성에 따라 성능 및 에러를 보이는 경우가 많음
: Disk 성능을 높이기 위한 Tuning요소와 맞물려 Side effect를 발생시킬 수 도 있다.
(3) Network Topology
: Bonding / Rack Awareness등 추가 물리적인 구성을 고려할 필요가 있음
: 테스트는 Cloud환경에서 진행된 것이라 on-premises환경과 비교가 좀 더 필요함
(4) yarn 활용
: hive 및 Spark SQL은 Architecture활용성을 고려하여 Yarn-client로 수행함
: spark활용에 있어 yarn 구성 및 기타 다른 구성을 고려하여 운영성 표준을 재고할 필요가 있음
12
Backup (1)
Spark SQL 2.0
 Query 지원 강화
 TPC-DS 전 쿼리 지원
http://spark.apache.org/releases/spark-release-2-0-0.html
13
Backup (2)
Spark dataset
 성능이나 활용측면에서 강화
 Spark 1.6에 소개 2.0에 강화, 기존 코디방식에서 변경이 필요함
https://databricks.com/blog/2016/01/04/introducing-apache-spark-datasets.html
14
EOF

Hadoop cluster os_tuning_v1.0_20170106_mobile

  • 1.
    0 Hadoop Cluster TuningTest SK 주식회사 C&C 최상연
  • 2.
    1 1 Test 개요 -(1) - 다양한 용도로 구성된 hadoop Cluster에 대한 적절한 튜닝이 되고 있는 가? - 가상화 / cloud / on-premise 등 다양한환경에 대해 적절한 대응이 가 능한가? - 사업에 적용할 수 있는 표준 Architect를 보유하고 있는가? for Batch Process for real-time Process for analysis Process
  • 3.
    2 1 Test 개요 -(2) - 적절한 설정값은 무엇일까? - Hadoop cluster 구성을 위해서는 너무 많은 고려사항 - On-site에 맞는 설정을 하는 것이 현실  Project Locality : 다양한 환경에 공통적인 기준으로 활용할 수 있는 hadoop Eco / JVM / OS Tuning value을 찾아내는 것이 중요한 요소
  • 4.
    3 2 Test 환경 (1) Testsenario - 사내 Cloud로 구성 - Public 및 Private 망으로 분리 구성 - HDP 2.5.0 & Ambari 2.5 Node OS CPU Mem Disk 5대 CentOs 6.8 2P 24Core 64GB 2T x 4 Test Server ( Summary)
  • 5.
    4 2 Test 환경 (2) Testsenario - TPC Query 활용 ( www.tpc.org ) TPC  트랜잭션 처리 성능평가 위원회(Transaction Processing performance Council)에서 발표한 벤치마크 모델
  • 6.
    5 3 Benchmark Test (1) JVM( 1.8_111 vs 1.7_121 vs 1.7_79 ) - Data : TPC-DS 100GB - Hive 1.2 Result • 전체적으로는 JVM 1.8의 경우가 5~8% 정도 성능 향상을 보임 • JRE 1.7.79 vs 1.7.121 의 차이는 어느정도 존재하지만 결과로 신빙성이 느껴지지 않음 • 기존 JVM에 대한 version 상승으로도 어느 정도 성능향상에 기여 할 것으로 기대
  • 7.
    6 3 Benchmark Test (2) OStuning - CentOs 6.8 기준 - disk / Memory / network 등의 Tunging Point
  • 8.
    7 3 Benchmark Test (2) OStuning - Data : TPC-DS 1.5 TB - Hive 1.2 Result • OS tuning전과 대비 30~40%정도 개선된 효과를 보임 • TPC-DS 쿼리 대부분이 JOIN-SELECT이기 때문에 Disk Write 부분이 별도로 필요해 보임 • OS Property중에서도 Disk관련 Property에 영향을 많이 받지 않았나 생각함 • 30초이내의 쿼리는 별 차이가 없었음 --> 즉 Disk I/O가 많은 대용량 작업에 영향을 줌
  • 9.
    8 3 Benchmark Test (3) hivevs Spark 1.6.2 vs Spark 2.0.0 - Data : TPC-DS 1.5 TB - OS Tuned Result • Spark 1.6.2의 경우 쿼리 지원 수준이 떨어져 수행되지 않는 쿼리가 많음 • 대부분 Spark SQL 2.0.0의 성능이 안정적이며 개선된 부분을 보여줌 • 상용 Query 지원 수준 / Data validation / Join 안정성은 검증이 필요 • DW 쿼리 검증 필요  TPC-H
  • 10.
    9 3 Benchmark Test (4) hivevs Spark 1.6.2 vs Spark 2.0.0 - Data : TPC-H 700 GB - OS Tuned Result • spark 1.6.2의 경우 불안정한 성능  spark shuffle 관련하여 MapOutputTrackerMaster에서의 bottle neck 현상이 보임 • Spark SQL 2.0.0 에서 안정적인 성능
  • 11.
    10 4 Summary OS tuning +Spark 2.0.0 도입 - Data : TPC-DS 1.5TB Result • OS tuning만으로도 상당한 효과를 보임 • Spark 2.0은 DataSet으로 쿼리 지원 및 성능상에 많은 이점을 보여줌  TPC-DS ( OLTP ) 및 TPC-H ( DW ) 모두 안정적인 성능을 보여줌 • OS + Spark 2.0도입으로 Total 수행 시간 기준, 50%이상의 Performance 향상을 보여줌
  • 12.
    11 4 Summary 추가 고려요소 (1) StreamingPerformance : DW성 데이터 처리로 이루어진 테스트와 더불어 Streaming Test도 병행되어야 할 듯 (2) HDFS Trouble Shooting : Hbase나 Spark Streaming과 같은 서비스를 활용할 시, HDFS 구성에 따라 성능 및 에러를 보이는 경우가 많음 : Disk 성능을 높이기 위한 Tuning요소와 맞물려 Side effect를 발생시킬 수 도 있다. (3) Network Topology : Bonding / Rack Awareness등 추가 물리적인 구성을 고려할 필요가 있음 : 테스트는 Cloud환경에서 진행된 것이라 on-premises환경과 비교가 좀 더 필요함 (4) yarn 활용 : hive 및 Spark SQL은 Architecture활용성을 고려하여 Yarn-client로 수행함 : spark활용에 있어 yarn 구성 및 기타 다른 구성을 고려하여 운영성 표준을 재고할 필요가 있음
  • 13.
    12 Backup (1) Spark SQL2.0  Query 지원 강화  TPC-DS 전 쿼리 지원 http://spark.apache.org/releases/spark-release-2-0-0.html
  • 14.
    13 Backup (2) Spark dataset 성능이나 활용측면에서 강화  Spark 1.6에 소개 2.0에 강화, 기존 코디방식에서 변경이 필요함 https://databricks.com/blog/2016/01/04/introducing-apache-spark-datasets.html
  • 15.