spark 의 2: 원리 소개

7831 단어 spark빅 데이터
spark 의 2: 원리 소개
@ (블 로그 글) [spark | 빅 데이터]
1. spark 는 메모리 계산 을 바탕 으로 하 는 오픈 소스 의 클 러 스 터 컴 퓨 팅 시스템 으로 데이터 분석 을 더욱 빠르게 하 는 데 목적 을 둔다.따라서 spark 를 실행 하 는 기 계 는 96G 이상 의 큰 메모리 가 있어 야 한다.2. spark 의 모든 조작 은 RDD 를 바탕 으로 하고 조작 은 주로 2 가지 유형 으로 나 뉜 다. transformation 과 action.3. spark 는 셸 과 유사 한 상호작용 처리 인 터 페 이 스 를 제공 합 니 다.4. spark 는 교체 작업 부 하 를 최적화 할 수 있 습 니 다. 중간 데 이 터 는 모두 메모리 에 저장 되 어 있 기 때 문 입 니 다.5. spark 는 Scala 언어 에서 이 루어 진 것 으로 scala, python 을 사용 하여 상호작용 을 할 수 있 고 scala, python, 자바 로 프로 그래 밍 을 할 수 있 습 니 다.6. spark 는 mesos 를 통 해 hdfs 에서 실행 할 수 있 지만 hadoop 2. x 는 YARN 을 제공 하여 spark 가 hdfs 에서 실행 하 는 데 더욱 편리 하고 YARN 은 메모리, CPU 의 클 러 스 터 관리 기능 도 제공 합 니 다.7. Spark 가 제공 하 는 데이터 세트 작업 유형 은 여러 가지 가 있 는데 Hadoop 이 Map 과 Reduce 두 가지 조작 만 제공 하 는 것 이 아 닙 니 다.예 를 들 어 map, filter, flatMap, sample, groupbyKey, reduceByKey, union, join, cogroup, mapValues, sort, partionBy 등 여러 가지 조작 유형 을 Transformations 라 고 부른다.Count, collect, reduce, lookup, save 등 다양한 actions 도 제공한다.이런 다양한 데이터 세트 조작 유형 은 상부 응용 자 에 게 편 의 를 제공 했다.각 처리 노드 간 의 통신 모델 은 더 이상 Hadoop 처럼 유일한 Data Shuffle 모델 이 아니다.사용 자 는 이름, 물 화, 중간 결과 의 파 티 션 등 을 제어 할 수 있 습 니 다.프로 그래 밍 모델 이 Hadoop 보다 더 유연 하 다 고 할 수 있 습 니 다.
==========================================================
다음 내용 은 다음 과 같다.http://www.itpub.net/thread-1864721-3-1.html
1. Spark VSHadoop 은 어떤 공통점 이 있 습 니까?
   Hadoop:分布式批处理计算,强调批处理,常用于数据挖掘、分析

   Spark:是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速, Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 는 스칼라 언어 에서 이 루어 졌 으 며 스칼라 를 응용 프로그램 프레임 워 크 로 사용 합 니 다.Hadoop 과 달리 Spark 와 Scala 는 긴밀 하 게 통합 할 수 있 으 며, 이 중 Scala 는 로 컬 집합 대상 을 조작 하 는 것 처럼 분포 식 데이터 세트 를 쉽게 조작 할 수 있다.
Spark 를 만 드 는 것 은 분포 식 데이터 세트 의 교체 작업 을 지원 하기 위해 서 이지 만 사실은 Hadoop 에 대한 보충 으로 Hadoop 파일 시스템 에서 병행 할 수 있 습 니 다.Mesos 라 는 제3자 클 러 스 터 프레임 워 크 를 통 해 이 행 위 를 지원 할 수 있 습 니 다.스파크 는 캘 리 포 니 아 대 버클 리 캠퍼스 AMP 랩 (Algorithms, Machines, and People Lab) 이 개발 해 대형, 저 지연 데이터 분석 애플 리 케 이 션 을 구축 할 수 있다.
Spark 는 Hadoop 과 비슷 한 점 이 있 지만 유용 한 차 이 를 가 진 새로운 클 러 스 터 컴 퓨 팅 프레임 워 크 를 제공 합 니 다.우선, Spark 는 클 러 스 터 컴 퓨 팅 의 특정한 유형의 작업 부하 에 대한 디자인 이다. 즉, 병렬 작업 사이 에 작업 데이터 세트 (예 를 들 어 기계 학습 알고리즘) 를 다시 사용 하 는 작업 부하 이다.이러한 유형의 작업 부 하 를 최적화 하기 위해 Spark 는 메모리 클 러 스 터 컴 퓨 팅 개념 을 도입 하여 메모리 클 러 스 터 컴 퓨 팅 에서 데이터 집합 캐 시 를 메모리 에 저장 하여 접근 지연 을 줄 일 수 있 습 니 다.
빅 데이터 처리 에 있어 hadop 에 대해 잘 알 고 있 을 것 이 라 고 믿 습 니 다. Google Map/Reduce 를 바탕 으로 이 루어 진 Hadoop 은 개발 자 에 게 map, reduce 원 어 를 제공 하여 병렬 일괄 처리 프로그램 을 매우 간단 하고 아름 답 게 만 들 었 습 니 다.Spark 가 제공 하 는 데이터 세트 작업 유형 은 Hadoop 처럼 Map 과 Reduce 두 가지 조작 만 제공 하 는 것 이 아니 라 여러 가지 가 있 습 니 다.예 를 들 어 map, filter, flatMap, sample, groupbyKey, reduceByKey, union, join, cogroup, mapValues, sort, partionBy 등 여러 가지 조작 유형 을 Transformations 라 고 부른다.Count, collect, reduce, lookup, save 등 다양한 actions 도 제공한다.이런 다양한 데이터 세트 조작 유형 은 상부 응용 자 에 게 편 의 를 제공 했다.각 처리 노드 간 의 통신 모델 은 더 이상 Hadoop 처럼 유일한 Data Shuffle 모델 이 아니다.사용 자 는 이름, 물 화, 중간 결과 의 파 티 션 등 을 제어 할 수 있 습 니 다.프로 그래 밍 모델 이 Hadoop 보다 더 유연 하 다 고 할 수 있 습 니 다.
2、Spark在容错性方面是否比其他工具更有优越性?

   从Spark的论文《Resilient Distributed Datasets: AFault-TolerantAbstraction for In-Memory Cluster Computing》中没看出容错性做的有多好。倒是提到了分布式数据集计算,做checkpoint的两种方式,一个是checkpoint data,一个是loggingthe updates。貌似Spark采用了后者。但是文中后来又提到,虽然后者看似节省存储空间。但是由于数据处理模型是类似DAG的操作过程,由于图中的某 个节点出错,由于lineage chains的依赖复杂性,可能会引起全部计算节点的重新计算,这样成本也不低。他们后来说,是存数据,还是存更新日志,做checkpoint还是由用 户说了算吧。相当于什么都没说,又把这个皮球踢给了用户。所以我看就是由用户根据业务类型,衡量是存储数据IO和磁盘空间的代价和重新计算的代价,选择代 价较小的一种策略。取代给中间结果进行持久化或建立检查点,Spark会记住产生某些数据集的操作序列。因此,当一个节点出现故障时,Spark会根据存 储信息重新构造数据集。他们认为这样也不错,因为其他节点将会帮助重建。

3. Spark 는 데이터 처리 능력 과 효율 에 대해 어떤 특색 이 있 습 니까?
Spark提供了高的性能和大数据处理能力,使得用户可以快速得到反馈体验更好。另一类应用是做数据挖掘,因为Spark充分利用内存进行缓存,利用 DAG消除不必要的步骤,所以比较合适做迭代式的运算。而有相当一部分机器学习算法是通过多次迭代收敛的算法,所以适合用Spark来实现。我们把一些常 用的算法并行化用Spark实现,可以从R语言中方便地调用,降低了用户进行数据挖掘的学习成本。

Spark 는 트 위 터 의 Storm 프레임 워 크 에 비해 재 미 있 고 독특한 방법 을 사용 했다.Storm 은 기본적으로 독립 된 사 무 를 넣 는 파이프 처럼 그 중에서 사 무 는 분포 식 으로 처 리 됩 니 다.반면 Spark 는 하나의 모델 로 사 무 를 수집 한 다음 에 짧 은 시간 안에 (우 리 는 5 초 라 고 가정 합 니 다) 일괄 처리 방식 으로 사건 을 처리 합 니 다.수 집 된 데 이 터 는 RDD 가 되 어 Spark 응용 프로그램 에서 자주 사용 하 는 그룹 으로 처리 합 니 다.저 자 는 이런 모델 은 느 린 노드 와 고장 상황 에서 더욱 안정 적 이 고 5 초의 시간 간격 은 보통 대부분의 응용 에 충분히 빠르다 고 주장 한다.이런 방법 도 흐름 식 처리 와 비 흐름 식 처리 부분 을 잘 통일 시 켰 다.
빅 데이터 관련 기술 과 산업 이 성숙 해 지면 서 한 조직 에서 다양한 유형의 빅 데이터 분석 작업 을 동시에 해 야 한다. 전통 적 인 Hadoop MapReduce 가 가장 잘 하 는 대량 계산, 각종 기계 학습 알고리즘 을 대표 하 는 교체 형 계산, 흐름 식 계산, 소 셜 네트워크 에서 자주 사용 하 는 그림 계산, SQL 관계 조회, 상호작용 즉석 조회 등 이다.스파크 가 나타 나 기 전에 한 조직 에서 상기 몇 가지 빅 데이터 분석 임 무 를 동시에 완성 하려 면 여러 개의 독립 된 시스템 과 접촉 해 야 한다. 한편 으로 는 만만 치 않 은 운영 복잡성 을 도입 하고 다른 한편 으로 는 여러 시스템 간 에 대가 가 높 은 데이터 덤 프 를 자주 해 야 한다.
스파크 는 미국 캘 리 포 니 아 대 버클 리 캠퍼스 AMPLAB 에서 발원 한 클 러 스 터 컴 퓨 팅 플랫폼 으로, 메모리 컴 퓨 팅 에 입각 해 성능 이 Hadoop 의 100 배 를 넘 는 멀 티 플 렉 스 일괄 처리 에서 출발 해 데이터 창고, 스 트림 처리, 그래 픽 컴 퓨 팅 등 다양한 컴 퓨 팅 패 러 다 임 을 겸 하고 있어 이례 적 인 만능 선수 다.스파크 는 현재 아파 치 재단 의 톱 오픈 소스 프로젝트 가 되 었 고 커 다란 지역 사회 지원 (활발 한 개발 자 수가 Hadoop MapReduce 를 초과 했다) 을 가지 고 기술 도 점점 성숙 해 지고 있다.
1. spark 는 메모리 분포 데이터 세트 를 사용 하기 때문에 분포 식 메모리 기술 을 충분히 이용 하여 연산 효율 을 hadop 에서 최소 화 합 니 다.스칼라 언어 로 작성 하기;또 하 둡 2.0 이 발표 되면 서 스파크 는 YARN 에서 도 직접 작 동 할 수 있 게 됐다.2. 잘못 사용 하 는 특성: Spark 는 탄성 분포 식 데이터 세트 (RDD) 를 도입 합 니 다.RDD 는 한 노드 에 분포 되 어 있 는 읽 기 전용 대상 집합 이다.집합 은 탄력 적 이 며 데이터 세트 의 일부분 을 잃 어 버 리 면 재 구축 할 수 있다.일부 데이터 세트 를 재 구축 하 는 과정 은 잘못 사용 하 는 체제 에 의존 되 고 이 체 제 는 '혈통' 을 유지 할 수 있다 (즉, 데이터 파생 과정 을 바탕 으로 일부 데이터 세트 를 재 구축 하 는 정 보 를 허용 한다).3. 메모리 로 계산 하 는 효율 이 대량의 디스크 IO 조작 을 가 진 Hadoop 4, 미니 책 보다 훨씬 높 고 가장 짧 은 시간 안에 가능 한 한 많은 내용 을 파악 할 수 있어 서 너무 힘 들 어 보이 지 않 습 니 다.
저희 회사 의 현재 데이터 처 리 는 주로 hadop 에 있 지만 10 대의 spark 클 러 스 터 hadop 을 만 들 었 습 니 다.사용 하 는 spark 는 몇 가지 장점 이 있다 고 생각 합 니 다. 첫째, spark 는 메모리 계산 을 바탕 으로 속도 가 매우 뚜렷 합 니 다.10 대의 SPARK 의 클 러 스 터 속 도 는 우리 hadop 클 러 스 터 의 50 대 와 차이 가 많 지 않 지만 hadop 의 클 러 스 터 메모리 크기 가 8G 가 있 는 16G 가 있 는 두 번 째 spark 는 Scala 를 바탕 으로 하 는 것 과 비교 할 수 있 습 니 다. hadop 은 자바 spark 를 바탕 으로 데이터 발굴 에 더욱 적합 합 니 다. scala 는 기술 기계 가 발굴 한 세 번 째 hadop 프로 그래 밍 모델 로 데 이 터 를 처리 하 는 것 이 매우 죽 었 습 니 다. map 와 reduce 만 있 고 spark 프로 그래 밍 모델 입더 유연 해 요. 넷 째, spark 알고리즘 이 hadop 알고리즘 보다 더 강하 다 고 합 니 다.
1、Spark VS Hadoop有哪些异同点?
Spark是基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更 好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。   
2、Spark在容错性方面是否比其他工具更有优越性?
现有的数据流系统对两种应用的处理并不高效:一是迭代式算法,这在图应用和机器学习领域很常见;二是交互式数据挖掘工具。这两种情况下,将数据保存在内存 中能够极大地提高性能。为了有效地实现容错,RDD提供了一种高度受限的共享内存,即RDD是只读的,并且只能通过其他RDD上的批量操作来创建。尽管如 此,RDD仍然足以表示很多类型的计算,包括MapReduce和专用的迭代编程模型(如Pregel)等。Spark实现的RDD在迭代计算方面比 Hadoop快二十多倍,同时还可以在5-7秒的延时内交互式地查询1TB的数据集。
3、Spark对于数据处理能力和效率有哪些特色?
与Hadoop进行对比,结果如下:

(1) 교체 식 기계 학습 응용 에 대해 Spark 는 Hadoop 보다 20 배 이상 빠르다.이러한 가속 비 는 데이터 가 메모리 에 저장 되 는 동시에 자바 대상 캐 시 는 역 직렬 화 작업 (deserialization) 을 피 했 기 때문이다.(2) 사용자 가 작성 한 프로그램의 실행 결과 가 좋 습 니 다.예 를 들 어 스파크 분석 보고 서 는 하 둡 보다 40 배 이상 빠르다.(3) 노드 가 효력 을 잃 으 면 잃 어 버 린 RDD 파 티 션 을 재 구축 함으로써 Spark 는 빠 른 회복 을 실현 할 수 있 습 니 다.(4) 스파크 는 5s 지연 범위 내 에서 1TB 크기 의 데이터 세트 를 상호작용 적 으로 조회 할 수 있다.
1. Spark VS Hadoop 은 어떤 공통점 이 있 습 니까?유 니 버 설 병렬 처리 프레임 워 크 로 서 Spark 는 Hadoop 과 유사 한 장점 을 가지 고 있 으 며 Spark 는 더 좋 은 메모리 관 리 를 사용 하여 교체 계산 에 있어 Hadoop 보다 높 은 효율 을 가진다. Spark 는 더욱 광범 위 한 데이터 세트 작업 유형 을 제공 하여 사용자 의 출발 을 편리 하 게 한다. checkpoint 의 응용 으로 인해 Spark 는 강 한 용 착 력 을 가진다.수많은 우수한 성능 과 Hadoop 보다 광범 위 한 적용 면 이 스파크 의 진일보 한 발전 을 기대 할 만하 다.
2. Spark 는 잘못 사용 하 는 데 있어 다른 도구 보다 우수 합 니까?분포 식 데이터 세트 를 계산 할 때 checkpoint 를 통 해 용 오 를 실현 합 니 다. checkpoint 는 두 가지 방식 이 있 습 니 다. 하 나 는 checkpoint data 이 고 하 나 는 logging the updates 입 니 다.사용 자 는 어떤 방식 으로 잘못 사용 하 는 지 제어 할 수 있다.
3. Spark 는 데이터 처리 능력 과 효율 에 대해 어떤 특색 이 있 습 니까?Spark 처리 데 이 터 는 메모 리 를 이용 하기 때문에 속도 가 매우 빠 릅 니 다. Spark Streaming: Spark 흐름 처리 능력 과 안정성 을 크게 향상 시 켜 사용자 가 같은 코드 로 빅 데이터 흐름 처리 와 대량 처 리 를 할 수 있 도록 합 니 다.

좋은 웹페이지 즐겨찾기