Apache Spark 정의
아파치 스파크는 데이터 처리 프레임워크할 수 있는 신속하게 처리를 수행하는 작업에서 매우 큰 데이터 세트,그리고할 수 있습 데이터 처리 작업에 걸쳐 여러 컴퓨터,자이나 동시에 다른 분산 컴퓨팅 도구입니다. 이러한 두 개의 자질은 키를 세계의 빅 데이터와 기계 학습,필요로 하는 정렬의 대규모 파워 컴퓨팅을 위해 데이터를 저장합니다., 불꽃 또한 일부의 부담 프로그래밍의 이러한 작업을 떨어져의 어깨와 개발자를 사용하기 쉬운 API 는 초록이 매우 지루한 작업을 분산된 컴퓨팅,빅 데이터 처리합니다.
2009 년 U.C.Berkeley 의 AMPLab 에서의 겸손한 시작에서 Apache Spark 는 세계의 주요 빅 데이터 분산 처리 프레임 워크 중 하나가되었습니다. 불꽃을 배포할 수 있는 다양한 방법으로 제공한 원인에 대해 자바,스칼라,Python,R 프로그래밍 언어를 지원하고,SQL,스트리밍 데이터,기계학습,및 그래프를 처리합니다., 은행,통신 회사,게임 회사,정부 및 Apple,Facebook,IBM 및 Microsoft 와 같은 주요 기술 대기업 모두가 사용하는 것을 알 수 있습니다.
Apache Spark 건축
기본적인 수준에,아파치 Spark 응용 프로그램 두 가지 주요 구성 요소로 구성되어 있:드라이버로 변환하는 사용자의 코드로 여러 작업을 수 있습에 분산되어 작업자 노드,그리고 실행자는 해당 노드에서 실행하고 실행하여 작업을 그들에게 할당됩니다. 클러스터 관리자의 일부 형태는 둘 사이를 중재 할 필요가있다.,
상자,스파크에서 실행할 수 있는 독립 클러스터 모드는 필수 아파치 프레임워크 및 스파크는 JVM 에서 각각의 기계에서 클러스터입니다. 그러나,그것은 더 많은 가능성이 원할 것을 활용하는 보다 강력한 리소스 또는 클러스터리 관리 시스템을 관리 할당하는 노동자에 대한 수요는 당신입니다. 기업에서 이것은 일반적으로 Hadoop YARN(Cloudera 및 Hortonworks 배포판이 Spark 작업을 실행하는 방식)에서 실행되는 것을 의미하지만 Apache Spark 는 Apache Mesos,Kubernetes 및 Docker Swarm 에서도 실행될 수 있습니다.,
관리 솔루션을 찾는 경우 Apache Spark 는 Amazon EMR,Google Cloud Dataproc 및 Microsoft Azure HDInsight 의 일부로 찾을 수 있습니다. Databricks,고용하는 회사의 설립자는 아파치 스파크도 제공합 Databricks 분석 플랫폼을 통합하는 포괄적인 관리형 서비스를 제공하는 아파치 스파크,클러스터 스트리밍을 지원하는 통합 웹 기반 노트북 개발,최적화된 클라우드 I/O 성능한 표준 아파치 Spark 배포합니다.
Apache Spark 는 사용자의 데이터 처리 명령을 지시 된 비순환 그래프 또는 DAG 로 빌드합니다., Dag 는 Apache Spark 의 스케줄링 레이어이며,어떤 노드에서 어떤 순서로 어떤 작업이 실행되는지를 결정합니다.
스파크 대 하둡:왜 아파치 스파크를 사용합니까?
아파치 스파크 대 아파치 하둡은 약간의 잘못된 이름이라고 지적 할 가치가있다. 요즘 대부분의 하둡 배포판에 포함 된 스파크를 찾을 수 있습니다. 그러나 두 가지 큰 장점으로 인해 spark 는 hadoop 을 두드러지게 만든 오래된 MapReduce 패러다임을 추월하면서 빅 데이터를 처리 할 때 선택의 틀 이되었습니다.첫 번째 장점은 속도입니다., 불꽃의 데이터를 메모리는 작업을 수행할 수 있습니다 백 배 이상 빠른 MapReduce 특정 상황에서,특히 비교했을 때와 다단계를 요구하는 작업에 쓰기의 상태를 다시 디스크에 사 단계가 있습니다. 에서 본질,MapReduce 만듭 두 단계의 실행을 그래프로 구성된 데이터를 매핑하고를 줄이는 반면,아파치는 스파크의 DAG 여러 단계에 배포할 수 있는 더 효율적으로 합니다. 데이터가 메모리 내에 완전히 포함될 수없는 Apache Spark 작업조차도 MapReduce 대응보다 약 10 배 빠른 경향이 있습니다.,두 번째 장점은 개발자 친화적 인 Spark API 입니다. Spark 의 속도 향상만큼이나 중요한 것은 Spark API 의 친 화성이 더욱 중요하다고 주장 할 수 있습니다.
스파크는 핵심
에 비해 MapReduce 과 다른 아파치 Hadoop 구성 요소,아파치 Spark API 이 매우 친절하는 개발자들을 숨기고,복잡한의 분산 처리 엔진 뒤에 간단한 메소드 호출합니다., 표준 예는 어떻게 거의 50 선의 MapReduce 코드 계산하는 단어가 문서에서 감소될 수 있습니다 단 몇 줄의 아파치 스파크(여기에서 다음과 같 스칼라에서는)
을 제공하여 바인딩을 인기있는 언어를 위한 데이터 분석 Python 과 같은 R 뿐만 아니라,더 엔터프라이즈 친절한 Java 및 밀라노,아파치는 점화할 수 있습에서 모두 응용 프로그램 개발자가 데이터 과학자들을 활용하는 확장성과 속도에서 액세스할 수 있다.,
스파크 RDD
의 중심에 아파치는 불꽃 개념의 탄력 분포 데이터 집합(RDD),프로그래밍을 나타내는 추상화하는 불변의 컬렉션할 수 있는 객체에 걸쳐 분할하는 컴퓨터 클러스터입니다. 작업에 http 요청에 대한 http 응답 수신 분할할 수도 있습에서 클러스터에서 실행된 병렬로 배치 프로세스는 선도,빠르고 확장 가능한 병렬 처리합니다.
rdds 는 간단한 텍스트 파일,SQL 데이터베이스,NoSQL 저장소(예:Cassandra 및 MongoDB),Amazon S3 버킷 등에서 만들 수 있습니다., 의 스파크 코어 API 를 이 RDD 개념,활성화통 지도를 줄이는 기능을 제공원에 대한 기본 가입 데이터 세트,필터링,샘플링 및 정의합니다
스파크에서 실행되는 패션을 결합하여 드라이버 핵심 프로세스로 분할하는 불꽃 응용 프로그램 작업으로 배포하고 많은 집행 프로세스는 작업을 수행한다. 이러한 실행자는 응용 프로그램의 필요에 따라 위아래로 확장 할 수 있습니다.,
Spark SQL
원래 Shark 로 알려진 Spark SQL 은 Apache Spark 프로젝트에 점점 더 중요 해졌습니다. 응용 프로그램을 만들 때 오늘날의 개발자가 가장 일반적으로 사용하는 인터페이스 일 가능성이 큽니다. Spark SQL 은 r 및 Python(Pandas 에서)에서 빌린 데이터 프레임 접근 방식을 사용하여 구조화 된 데이터 처리에 중점을 둡니다. 그러나 이름에서 알 수 있듯이 Spark SQL 은 데이터를 쿼리하기위한 SQL2003 호환 인터페이스를 제공하여 Apache Spark 의 힘을 분석가뿐만 아니라 개발자에게 제공합니다.,
표준 SQL 지원과 함께 Spark SQL 은 json,HDFS,Apache Hive,JDBC,Apache ORC 및 Apache Parquet 을 포함한 다른 데이터 저장소에서 읽고 쓸 수있는 표준 인터페이스를 제공합니다. 다른 인기있는 상점—Apache 카산드라,MongoDB,아파치는 기본 컨테이너를 지정해야 합니다.,그리고 많은 다른 사람—해 사용될 수 있는 때에는 별도의 커넥터에서 불꽃 패키지를 생태계입니다.,
선정 중 일부에서 열을 데이터 프레임은 다음과 같이 간단합니다 라인.
citiesDF.select("name”, "pop”)
를 사용하여 SQL 인터페이스,우리는 등록 데이터 프레임으로 임시 테이블,후할 수 있는 문제에 대한 SQL 쿼리:그것
citiesDF.createOrReplaceTempView("cities”)
spark.sql("SELECT name, pop FROM cities”)
뒤에, 아파치는 스파크 쿼리를 사용하고 최적화하라고 촉매 검사하는 데이터 쿼리를 생산하기 위해서는 효율적인 쿼리 계획을 위해 지역 데이터 계산을 수행할 필요한 계산을 통해 클러스터입니다. 아파치 스파크 2 에서.,x 시대,불꽃 SQL 인터페이스의 dataframes 및 데이터(본질적으로 입력된 데이터 프레임을 확인할 수 있는 컴파일 시간에 대해 정확성과 활용의 추가 메모리 및 계산 최적화에는 실행 시간)방법을 사용하는 것이 좋습니다에 대한 개발이다. RDD 인터페이스는 계속 사용할 수 있지만 spark SQL 패러다임 내에서 요구 사항을 해결할 수없는 경우에만 권장됩니다.
스파크 2.4 소개정의 내장 높은 함수를 조작하기 위해 배열 및 기타 고 데이터 형식을 직접 있습니다.,
스파크 MLlib
Apache 불꽃은 또한 번들 라이브러리를 적용을 위한 기계 학습하고 그래프 분석 기술을 데이터에서는 규모입니다. Spark MLlib 포함되어 있는 프레임워크를 만들기 위한 기계 학습은 파이프라인할 수 있도록,대한 쉬운 구현의 기능을 추출,선택,변환 모든 구조화합니다. MLlib 와 함께 제공되의 구현한 클러스터링 및 분류 알고리즘 등 k-means clustering 및 임의의 숲을 교환 할 수 있고 사용자 정의 파이프라인으로 쉽습니다., 모델 훈련될 수 있으로 데이터 과학자로서 아파치 사용하여 Spark R 래밍 언어를 사용하여 저장 MLlib,그리고 다음으로 가져올 수 있는 Java 기반 또는 밀라노 기반 파이프라인 생산을 위해 사용.
참고 하면서 불꽃 MLlib 기본 커버 기계 학습함 분류 회귀분석,클러스터링,필터링,그것은 포함하지 않는 시설에 대한 모델링 및 교육 깊은 신경 네트워크(자세한 정보는 볼포 월드의 불꽃 MLlib 검토). 그러나 딥 러닝 파이프 라인은 작품에 있습니다.,
스파크 GraphX
스파크 GraphX 께서는 선택의 분산 처리를 위한 알고리즘이 그래프를 포함한 구조물의 구현은 구글의 PageRank. 이 알고리즘을 사용하지 않을 시에는 밀폐하여 핵의 RDD 접근하는 모델링 데이터를 GraphFrames 패키지 할 수 있는 그래프 작업에 dataframes 포함한 이용 촉매의 최적화에 대한 그래프 쿼리를 처리합니다.
스파크 스트리밍
스파크 스트리밍 초기 외에 아파치는 도움이 그것을 견인을 얻을하는 환경에서 필요한 실시간 또는 근거리 실시간 처리합니다., 이전에는 아파치 하둡(Apache Hadoop)의 세계에서 배치 및 스트림 처리가 별개의 것이 었습니다. 일괄 처리 요구에 대한 MapReduce 코드를 작성하고 실시간 스트리밍 요구 사항에 Apache Storm 과 같은 것을 사용합니다. 이것은 분명히 이르게 서로 다른 코드베이스에 보존할 필요가 있는 동기화를 위한 응용 프로그램을 도메인에도 불구하고를 기반으로 하기 때문에 완전히 다른 프레임워크를 요구하는 다양한 리소스,그리고 다른 운영에 대한 우려를 실행하는 그들.,
스파크 스트리밍을 확장 Apache Spark 개념의 일괄 처리를 스트리밍을 위반하여 스트림으로 지속적인 일련의 microbatches,할 수 있는 조작을 사용하여 아파치 Spark API 를 사용합니다. 이 방법,코드에 배치 및 스트리밍 작업을 공유할 수 있는(주)동일한 코드에서 실행,동일한 프레임워크를 줄이기 모두 개발자 및 운영자 오버헤드가 발생합니다. 모두가 이긴다.,
비판의 스파크 스트리밍 방식 microbatching,시나리오에서 대기 시간이 짧은 반응을 들어오는 데이터가 필요하지 못할 수 있습과 일치하의 성능을 다른 스트리밍이 가능한 프레임워크 같은 아파치 폭풍 flink 은 아파치,아파치 에이펙스의 사용 순수한 스트리밍 방법보다 microbatches.
구조화 된 스트리밍
구조화 된 스트리밍(Spark2 에 추가되었습니다.x)는 SPARK Sql 이 Spark Core Api 에 있었던 것을 Spark 스트리밍하는 것입니다:응용 프로그램을 작성하기위한 더 높은 수준의 API 와 더 쉬운 추상화., 구조 스트리밍의 경우 상위 레벨 API 는 본질적으로 개발자가 무한 스트리밍 데이터 프레임 및 데이터 세트를 만들 수있게합니다. 그것은 또한 해결 매우 실제적 고통에 포인트 사용자가 함께 분투에서 이전 프레임 워크에 관하여,특히 다루고 이벤트-시간을 집계하고 배송 지연의 메시지입니다. 모두에 대한 쿼리를 구조화된 스트림을 통해 이동합 촉매는 쿼리를 최적화할 수 있도에서 실행되는 대화형 방식으로 사용자를 허용,SQL 쿼리를 수행하에 대한 라이브 스트리밍 데이터입니다.,
구조화 된 스트리밍은 원래 스트리밍 데이터를 처리하는 Spark Streaming 의 microbatching 방식에 의존했습니다. 그러나 불꽃에서 2.3,아파치 Spark 팀 추가 지연이 낮은 지속적으로 처리드 모드를 구성 스트리밍할 수 있도록 핸들의 응답을 대기 시간을 만큼 낮은 1ms 는 것은 매우 인상적입니다. 스파크 2.4 현재,연속 처리는 여전히 실험적인 것으로 간주됩니다. Structured Streaming 은 Spark SQL 엔진 위에 구축되지만 Continuous Streaming 은 제한된 쿼리 집합만 지원합니다.,
구성 스트리밍이 미래의 스트리밍 어플리케이션 플랫폼으로,그래서 당신은 새로운 스트리밍 응용 프로그램을 사용해야 하는 구조화된 스트리밍입니다. 레거시 스트리밍 Api 를 지원하는지만,프로젝트는 권장 이식을 통해 구조적 스트리밍으로,새로운 방법을 만들어 쓰기고 유지하는 스트리밍 코드 더 많은 견딜 수 있습니다.
딥러닝 파이프라인
Apache Spark 는 딥러닝 파이프라인을 통한 딥러닝을 지원합니다., 를 사용하는 기존의 파이프라인 구조의 MLlib,로 호출할 수 있는 낮은 수준의 깊은 배우 라이브러리고 건설 분류에서 단 몇 줄의 코드뿐만 아니라,적용 TensorFlow 그래프 또는 Keras 모델 들어오는 데이터입니다. 이러한 그래프와 모델이 될 수 있습으로 등록된 사용자 지정 Spark SQL Udf(사용자 정의 기능)도록 깊은 학습 모델을 적용할 수 있는 데이터의 일부로서 SQL 문을 수행합니다.
Apache Spark 자습서
Apache Spark 에 뛰어 들어 배울 준비가 되셨습니까?, 우리는 매우 에반 Heitman 의 네안데르탈인의 가이드 아파치에서 불꽃 Python,뿐만 아니라 배치의 기본 아파치가 어떻게 스파크 작동에서 상대적으로 간단한 조건이지만,또한 가이드 과정을 통해 당신의 쓰는 간단하 Python 응용 프로그램을 사용합니다. 이 문서에서 작성된 데이터 과학자의 관점에서,어떤 의미가 데이터 과학으로는 세계에서는 빅 데이터와 기계 학습은 점점 더 중요합니다.,
면 당신이 찾고있는 어떤 아파치 스파크 예를 당신 감각의 플랫폼이 무엇을 할 수 있고 어떻게 그것은 그것을 확인,불꽃에 의해{예}. 의 많은 예제 코드는 여기의 수에 대한 기본적인 작업하는 빌딩 블록의 스파크 프로그래밍,그래서 당신은 당신이 볼 수있는 큰 작업을 하는 아파치 개발을 위하여 만들어졌습니다.
더 깊이 갈 필요가 있습니까? Dz one 가는 것 그것을 겸손하게 말로 완전한 아파치 스파크,컬렉션으로 구성되어의 회전 도움이 되는 튜토리얼에서 많은 아파치는 불꽃이 주제입니다. 행복한 학습!