Spark Tutorial for Beginners | Apache Spark Architecture | Spark Components | Intellipaat

안녕하세요 Apache Spark Architecture 세션에 오신 것을 환영합니다

우리가 보자 오늘의 의제 이 세션에서 우리는 진짜를 가지고 시작합니다 스파크가 직면 한 문제를 해결하는 데 사용 된 시간 산업 유스 케이스 야후 그런 다음 스파크가 무엇인지 이해하고 그 중 일부에 약간의 빛을 비 춥니 다 풍모 그 후 우리는 다른 구성 요소를 볼 수 있습니다 스파크 아키텍처를 자세하게 다루고 마지막으로 스파크 응용 프로그램을 만드는 방법을 배웁니다

문제를 이해하도록하겠습니다 야후는 스파크에 직면하고있다 야후의 자산은 관련성을 극대화하십시오 즉, 개인화를 제공하기 위해 사용하는 알고리즘 광고를 타겟으로하고 개인화 된 콘텐츠는 정교하고 관련성 모델을 자주 업데이트해야했습니다 뉴스 피드와 뉴스는 시간이 지남에 따라 계속 바뀌었고 Yahoo도 150 개가 넘었습니다 35,000 노드 하둡 클러스터에 저장된 페타 바이트 단위의 데이터 데이터 이동으로 인한 대기 시간을 피하기 위해 효율적으로 액세스 또한 비용 효율적인 방식으로 데이터로부터 통찰력을 얻습니다

야후는 SPARK를 통해 반복 모델의 성능을 향상시켰다 훈련 뉴스에 사용 된 기계 학습 알고리즘 약 15,000 줄의 C ++ 코드가 필요한 개인화 spark로 구현 된 머신 러닝 알고리즘은 120 개에 불과했습니다 스칼라 프로그래밍 코드 라인과 알고리즘은 프로덕션 환경에서 사용 가능 1 억 개의 레코드가있는 데이터 세트에 대한 단 30 분의 교육으로 지금 그다지 놀랍지 않습니다 야후는 뉴스를 개인화하기 위해 아파치 스파크를 사용한다 웹 페이지 및 타겟팅 된 광고 야후는 기계 학습도 사용합니다 어떤 종류의 뉴스 사용자인지 알아 내기 위해 아파치 스파크를 실행하는 알고리즘 읽고 뉴스 기사를 분류하는 데 관심이 있습니다

어떤 종류의 사용자가 각 뉴스 카테고리를 읽는 데 관심이 있고 스파크의 도움으로 야후는 또한 모델 훈련의 대기 시간을 줄일 수 있었다 메모리 처리를 통해 이제 어떻게 야후를 이해했는지 스파크의 혜택 이제 스파크에 대해 간단히 이해하겠습니다 그래서 그것은 실시간 처리를위한 클러스터 컴퓨팅 프레임 워크 실제로 2009 년 UC Berkeley R & D 연구소에서 Hadoop 하위 프로젝트 도입 2010 년에 오픈 소스가되었고 2013 년에 Apache Software에 기증되었습니다

기초 따라서 모든 클러스터를 프로그래밍하기위한 인터페이스를 제공합니다 암시 적 데이터 병렬 및 내결함성 이제 우리 중 일부를 보자 스파크의 흥미로운 특징 스파크는 실시간 계산과 낮은 대기 시간을 제공합니다 메모리 내 계산으로 인해 스파크가 대규모 데이터 처리 및 SPARK도 폴리 글롯이므로 SPARK를 작성할 수 있습니다

Java, Scala, Python 또는 SQL과 같은 여러 언어로 된 응용 프로그램 불꽃 강력한 캐싱 기능을 제공하므로 강력한 캐싱 및 디스크 지속성 기능과 SPARK는 여러 배치 모드를 통해 메조, 헤 도프 경사, 또는 자체 클러스터 관리자를 시작하십시오 이제 스파크 충격도 거의 모든 단일 회사가 포춘 500 대 기업에 소규모 창업 규모를 구축하고 빅 데이터 애플리케이션을 혁신하기위한 Apache Spark 산업 미디어, 건강 관리, 금융, 전자 상거래 및 여행과 같이 거의 모두 스파크를 사용하고 있습니다 집중적으로

이제 rdd 's의 개념을 이해해 봅시다 따라서 여러 작업에서 데이터를 처리 할 때는 재사용하고 인 메모리 데이터 공유를 통해 얻을 수있는 데이터 공유 실제로 네트워크 및 디스크 공유보다 빠릅니다 이것이 바로 메모리 내 데이터 공유를 돕기 위해 rdd가 제공되는 곳입니다 그래서 rdd는 탄력적 인 분산 데이터 세트를 나타내며 기본 데이터입니다 탄력적으로 아파치 스파크의 구조는 다음과 같이 내결함성을 의미합니다 노드 장애 발생시 누락되거나 필요한 파티션을 다시 계산할 수 있습니다

rdd 연계 그래프의 도움으로 데이터 이후에 배포되었습니다 여러 노드에 상주하며 마지막으로 데이터 세트는 데이터 레코드를 나타냅니다 당신은 함께 일합니다 사용자는 외부에서 데이터 집합을 알 수 있습니다 JSON 파일, CSV 파일, 텍스트 파일 또는 데이터베이스 그래서 rdd는 불변입니다 객체 수집 및 RDD 변경 시도로 완전히 새로운 결과 rdd

이제 이것을 이해하겠습니다 수행을 위해 rdd를 고려하십시오 지도, 필터 등의 변형 그래서 이것은 완전히 새로운 RDD를 만들지 만 아무것도 계산하지 않습니다 결과를 계산하려면 카운트와 같은 rdd에 대한 작업을 수행하고 텍스트 파일로 저장하는 등 그에 따라 결과를 표시하십시오 이제 다양한 구성 요소를 이해하겠습니다 스파크 생태계 가장 스파크 코어 구성 요소부터 시작하겠습니다 기본적인 IO 기능을 담당하는 스파크 생태계의 필수 구성 요소 스케줄링, 모니터링 등

스파크 생태계 전체가 그 위에 구축됩니다 그런 다음 다른 배포 모드가 있습니다 스파크 캔 원사, 메시 또는 스파크 자체 클러스터 관리자를 통해 hadoop을 통해 배포됩니다 그런 다음 다른 라이브러리가 있습니다 이 스파크 생태계 라이브러리는 스파크 SQL, mlib, 그래픽 및 스트리밍

Spark SQL은 우리가 수행하는 데 도움이됩니다 데이터에 대한 쿼리와 SQL과 같은 쿼리를 사용하여 데이터를 저장하면 mlib가 있습니다 이 스파크 머신 러닝 라이브러리는 배포를 쉽게하고 확장 가능한 머신 러닝 파이프 라인 개발 요약 통계, 상관 관계, 기능 추출 및 기타 여러 가지 스파크의 그래픽 구성 요소는 데이터 과학자가 그래프 작업을 돕습니다 그래프에서 유연성과 탄력성을 얻기위한 비 그래프 소스 건축과 변형 그런 다음 마침내 스파크 스트리밍이 있습니다 일괄 처리 및 데이터 스트리밍을 수행 할 수있는 구성 요소 응용 프로그램에서

프로그래밍 언어로 오는 불꽃은 Scala, R, Python 및 Java에서 구현됩니다 그러나 스칼라는 널리 사용됩니다 스파크 언어로 최종적으로 HDFS 로컬 파일 시스템을 통해 데이터를 저장할 수 있습니다 그리고 구름 또한 SQL 데이터베이스를 지원하지 않고 SQL 학습을 지원합니다 그래서 지금 당신은 Spark 구성 요소에 대한 간단한 아이디어가 있습니다

이제 SPARK에 뛰어 들자 건축물 따라서 Apache spark에는 잘 정의되어 있습니다 모든 스파크 구성 요소와 레이어가 느슨하게 결합 된 계층 구조 SPARK는 마스터 / 작업자 아키텍처와 마스터 노드에서 응용 프로그램을 구동하는 드라이버 프로그램이 있습니다 드라이버 프로그램이 무엇인지 생각하기 때문에 기본적으로 작성중인 코드 드라이버 프로그램으로 동작하거나 대화식 쉘을 사용하는 경우 쉘 드라이버 프로그램으로 작동합니다

드라이버 프로그램은 이 SPARK 컨텍스트가 작성되는 위치입니다 그래서 가정 이 SPARK 컨텍스트는 모든 SPARK 기능의 관문입니다 이제 SPARK 드라이버에는 태그 스케줄러, 작업 스케줄러와 같은 다양한 구성 요소가 포함되어 있습니다 백엔드 스케줄러 및 블록 관리자는 Spark 사용자 코드를 실제 Spark 작업으로 변환 클러스터에서 실행됩니다 스파크 드라이버와 스파크 컨텍스트는 클러스터 내 작업 실행은 이제 SPARC 컨텍스트가 클러스터와 작동합니다

관리자는 다양한 작업을 관리하고 클러스터 관리자는 Spark 클러스터에서 리소스를 획득하여 Spark 작업에 할당 이 작업은 작업자에게 배포되는 여러 작업에 존재합니다 노드는 언제든지 RDD 연도 및 스파크 컨텍스트를 배포 할 수 있습니다 다양한 메모를 통해 현금으로 교환 할 수 있습니다 실제로 기본적으로 작업을 수행하는 슬레이브 노드 인 노드 작업자 노드 내부에서 스파크 컨텍스트로 결과를 다시 반환 우리는 유언 집행 인이 있으므로 유언 집행 인은 작업 실행 및 모든 Spark 응용 프로그램에는 자체 실행 프로그램 프로세스가 있습니다 따라서 실행자는 일반적으로 스파크 응용 프로그램의 전체 수명 동안 실행됩니다 스파크 컨텍스트는 작업이 작업에서 작업을 중단하고 배포합니다 작업자 노드는 이러한 작업을 파티션 RDD에서 수행하여 작업을 수행합니다

결과를 수집하고 기본 스파크 컨텍스트로 돌아가고 증가하면 작업자 수는 작업을 더 많은 파티션으로 나눌 수 있으며 병렬 I / O를 실행하십시오 여러 시스템이 훨씬 빠르며 작업자 메모리 크기의 증가 또한 증가하고 당신은 작업을 더 빠르게 실행하기 위해 캐시 할 수 있으므로 이제 Spark 런타임을 이해하겠습니다 클라이언트가 스파크 사용자 애플리케이션 코드를 드라이버에 제출할 때의 아키텍처 변환 및 조치가 포함 된 코드를 암시 적으로 드라이버 프로그램 단계에서 논리 지향 비순환 그래프 또는 태그 변환을 계획하는 등의 특정 최적화를 수행 한 다음 논리적 데이터를 이후 단계로 설정할 물리적 실행 계획으로 변환 실제 실행 계획을 작성하면 작은 실제 실행 단위가 작성됩니다 각 단계에서 작업이라고하며 작업이 번들로 전송되어 스파크 클러스터는 이제 드라이버 프로그램을 클러스터 관리자 및 클러스터 관리자 자원 협상 이 시점에서 드라이버를 대신하여 작업자 노드에서 실행자를 시작합니다 드라이버는 데이터 배치를 기반으로 클러스터 관리자에 대한 작업 감지 실행자가 실행을 시작하기 전에 드라이버에 등록합니다 드라이버가 모든 실행 프로그램을 전체적으로 볼 수 있도록 프로그램 실행자가 드라이버에 의해 지정된 다양한 작업을 실행하기 시작했습니다

프로그램 및 Spark 응용 프로그램이 실행될 때 드라이버 프로그램은 실행되고 마지막으로 실행되는 일련의 실행 프로그램을 모니터링합니다 드라이버 프로그램 기본 메소드가 종료되거나 중지 메소드를 호출 할 때 스파크 컨텍스트 모든 실행 프로그램을 종료하고 리소스를 해제합니다 이 불꽃 실행 런타임 아키텍처는 이제 클러스터 관리자를 통해 시스템이 현재 지원하는 바를 배치 할 수있는 다양한 수수료 이 클러스터 관리자는 간단한 독립형 스파크 독립형 클러스터를 갖습니다 스파크에 포함 된 클러스터 관리자를 통해 클러스터를 쉽게 설정할 수 있습니다 바 굴뚝 소스를 가지고 있는데 Hadoop MapReduce를 실행하고 Hadoop 이온을 사용하는 애플리케이션을 서비스합니다

마지막으로 오픈 소스 인 누적 위치에 배포 할 수도 있습니다 컨테이너화 된 자동 배포 확장 및 관리 시스템 SPARC 아키텍처에 관한 모든 것이므로 이제 작은 그들은 불꽃 응용 프로그램을 만드는 방법으로 이동하여 폴더를 만들었습니다 소스 코드로 구성된 환영 세계라는 이름으로 스파크 응용 프로그램 이므로이 폴더 안에 들어가서 CD를 좋아합니다 환영합니다 이제이 구성 요소가 무엇인지 보여 드리겠습니다

폴더는 두 가지 구성 요소가 있습니다 하나는 SBT 파일에 빌드 한 다음 이 청구서 SBT 파일은 기본적으로 모든 스파 응용 프로그램 jar 파일을 빌드하기위한 종속성이므로 보여 드리겠습니다 여러분은 모든 의존성을 가지고 있으므로 VI를 입력하고 이름을 얻습니다 SBT가 아닌 빌드 될 파일이므로 종속성입니다 먼저 우리는 응용 프로그램의 이름을 가지고 다음 버전의 응용 프로그램을 만든 다음 여기에 Scala 버전이 있습니다

이 SRC 폴더에 존재하는 소스 코드를 보여주세요 ced를 입력 한 다음 폴더 SRC와이 SRC 폴더의 이름을 지정합니다 이 CD 메인으로 들어갈 수있는 다른 폴더로 구성되어 있습니다 다시이 메인 폴더는 다른 폴더로 구성되어 있습니다 나도 이것 안에 들어가서 CD 스칼라를 입력 할 것입니다

Scala 폴더 안에 LS를 다시 입력하겠습니다 Scala 폴더 안에 존재하는 Scala 파일은 소스로 구성됩니다 코드를 입력하겠습니다 VI를 입력 한 다음 소스 이름을 입력 할 소스 코드를 보여 드리겠습니다 반점 스칼라를 환영하는이 클래스 이 소스 코드이므로 Falcom이라는 이름의 클래스가 있습니다 그런 다음 이름 기능 내에서 우리는 시원하게 인쇄 했으므로 인쇄 할 것입니다

환영 나무 이것은 불꽃에 대한 세션이므로 환영의 집으로 돌아갑니다 폴더 및 jar 파일 작성 바로 환영 폴더로 돌아가서 여기에 있습니다 SPD와 SRC에서 빌드하므로 jar 파일을 빌드하려면 이것을 사용해야합니다 SBT package 명령을 실행하면 jar 파일이 작성됩니다 바로 jar 파일이 성공적으로 빌드되었음을 알 수 있습니다 jar 파일 홈 교육 환영 세계의 경로와 여기에 우리는 여기에 jar 파일이 있으므로 이것은 jar 파일의 이름입니다

환영합니다 Boyd 그리고 이것은 그것의 버전이므로 이제 LS를 입력하겠습니다 처음에는 SRC 폴더와 Bell dot SBT 파일이 jar 파일을 빌드하면 프로젝트라는 두 폴더가 있습니다 대상 과이 jar 파일 이이 대상 폴더에 있으므로 이 대상 폴더 안에 CD 대상을 입력하겠습니다 이 두 폴더로 다시 구성된 Stargate 폴더는 Scala 211 폴더 안에 들어가서 CD Scala 211을 입력하고 이 안에는 jar 파일이있어서 모두 환영합니다

버전이며 이것은 jar 파일이므로 지금 jar 파일을 준비했습니다 계속해서 작업을 제출하여 응용 프로그램을 작성하십시오 그에 대한 명령은 명령이 촉발 보충 내가 죽을거야-그리고 나일 강의 수업 후 나는 연설을 할 것이다 그런 다음 파일 이름을 지정하여 파일 이름을 환영합니다 앞서 스칼라에 오신 것을 환영합니다 바로 환영받은 같은 클래스의 그리고 다시 연설을하겠습니다 type–그리고 여기에 master를 입력하겠습니다 9는 배포 모드를 지정하여 배포 모드를 지정합니다

변이가 여기에 실을 좋아하고 항아리의 일부를 가져옵니다 파일 우리는 스파크를 성공적으로 만들었습니다 처음부터이 환영 세계의 소스 코드를 보았습니다 Spa의 세션이므로 작업을 제출 한 후 마지막으로이를 생성했습니다 응용 프로그램 오른쪽 그래서 이것은 우리가 불꽃 응용 프로그램을 만들 수있는 방법입니다 세션을 마치고 참석해 주셔서 감사합니다