Spark성능튜닝이란무엇입니까?

火花성능튜닝은시스템이사용하는메모리,코어와인스턴스를대상으로기록할설정을조정하는프로세스를가리킵니다。이프로세스를거치면火花에서흠잡을데없는성능을보장할수있으며,火花에서리소스병목현상을예방하는효과도있습니다。Spark성능튜닝

데이터직렬화란무엇입니까?

메모리사용량을줄이기위해火花抽样를직렬화형식으로저장해야할수도있습니다。데이터직렬화는또한네트워크성능이우수한지결정하는입니다。Spark성능면에서좋은결과를얻으려면다음과같이하면됩니다。

  • 오래실행되는작업을종료합니다。
  • 작업이정확한실행엔진에서실행되도록보장합니다。
  • 모든리소스를효율적으로이용합니다。
  • 시스템성능시간강화

Spark가지원하는직렬화라이브러리는다음의두가지입니다。

  • Java직렬화
  • Kryo직렬화

메모리튜닝이란무엇입니까?

메모리사용량을튜닝할때눈에띄는세가지측면이있습니다。

  • 数据集전체가메모리에들어가야하므로,개체가사용하는메모리를반드시고려해야합니다。
  • 개체회전율을높이면가비지수집오버헤드가꼭필해집니다。
  • 그러한개체에액세스할때드는비용을고려해야합니다。

데이터구조튜닝이란무엇입니까?

메모리사용량을줄이는한가지방법으로오버헤드를발생시킬수있는java기능을피하는것이있습니다。이렇게하기위한몇가지방법을소개하면다음과같습니다。

  • RAM크기가32 gb보다작은경우,JVM플래그를- xx: + UseCompressedOops로설정해야합니다。이연산으로8바이트가아니라4바이트포터를구축합니다。
  • 포터외에작은개체를여러개사용해도중첩된구조를피할수있습니다。
  • 키에문자열을사용하지말고숫자id와열거된개체를사용합니다。

가비지컬렉션튜닝이란무엇입니까?

java는프로그램이이전에저장한RDD와관련한대량의”변동(客户端)을피하기위해오래된개체를버리고새개체를저장할공간을만듭니다。하지만개체가적은데이터구조를사용하면비용이대폭절감됩니다。링크된목록대신int어레이를사용하는것이대적예입니다。아니면개체를직렬화된형식으로사용하여각抽样파티션마다개체가하나씩만포함되도록하는방법도있습니다。

메모리관리란무엇입니까?

우수한성능을확보하려면효율적메모리사용이필수적입니다。Spark는메모리를주로스토리지와실행용도로사용합니다。스토리지메모리는나중에다시사용할데이터를캐시하는데쓰입니다。반면실행메모리는섞기(shuffle)정렬,조인(加入)과집계연산에쓰입니다。메모리경합으로tmp해Apache Spark에는다음과같은세가지문제점이생깁니다。

  • 실행과스토리지사이에서메모리를중재하려면어떻게해야합니까?
  • 동시에실행되는여러작업에걸쳐메모리를중재하려면어떻게해야합니까?
  • 같은작업내에서실행되는여러연산자에걸쳐메모리를중재하려면어떻게해야합니까?

정적으로미리메모리를예약하는방식으로경합을방지하는것이아니라,경합이발생했을때멤버들이강제로메모리를버리도록(泄漏)하는방식으로문제를해결할수있습니다。

额外的资源

回到术语表