Hadoop없이 Apache Spark를 실행할 수 있습니까?


답변:


53

Spark는 Hadoop없이 실행할 수 있지만 일부 기능은 Hadoop의 코드 (예 : Parquet 파일 처리)에 의존합니다. 우리는 Mesos와 S3에서 Spark를 실행하고 있는데, 설정하기 조금 까다 롭지 만 일단 완료되면 정말 잘 작동합니다 ( 여기 에서 올바르게 설정하는 데 필요한 요약을 읽을 수 있습니다 ).

(편집) 참고 : 버전 2.3.0부터 Spark는 Kubernetes에 대한 기본 지원도 추가했습니다.


96

Spark 는 인 메모리 분산 컴퓨팅 엔진입니다.

Hadoop 은 분산 스토리지 ( HDFS ) 및 분산 처리 ( YARN )를 위한 프레임 워크입니다. )를 .

Spark는 Hadoop 구성 요소 (HDFS / YARN)를 사용하거나 사용하지 않고 실행할 수 있습니다.


분산 스토리지 :

때문에 스파크가 자신의 분산 스토리지 시스템이없는, 그것은 분산 컴퓨팅에 대한 이러한 스토리지 시스템 중 하나에 의존한다.

S3 – 긴급하지 않은 배치 작업. S3는 데이터 지역성이 중요하지 않은 매우 구체적인 사용 사례에 적합합니다.

Cassandra – 스트리밍 데이터 분석에 적합하며 일괄 작업에 대한 과잉입니다.

HDFS – 데이터 지역성을 손상시키지 않으면 서 배치 작업에 적합합니다.


분산 처리 :

Spark는 Standalone, YARN 및 Mesos의 세 가지 모드로 실행할 수 있습니다.

분산 스토리지 및 분산 처리에 대한 자세한 설명은 아래 SE 질문을 참조하십시오.

Spark에는 어떤 클러스터 유형을 선택해야합니까?


23

기본적으로 Spark에는 저장 메커니즘이 없습니다.

데이터를 저장하려면 빠르고 확장 가능한 파일 시스템이 필요합니다. S3 또는 HDFS 또는 다른 파일 시스템을 사용할 수 있습니다. Hadoop은 저렴한 비용으로 경제적 인 옵션입니다.

또한 Tachyon을 사용하면 Hadoop으로 성능이 향상됩니다. Apache Spark 처리를 위해 강력히 권장되는 Hadoop입니다 . 여기에 이미지 설명 입력


6

예, 스파크는 hadoop없이 실행할 수 있습니다. 모든 핵심 스파크 기능은 계속 작동하지만 hdfs 등을 통해 클러스터의 모든 노드에 모든 파일 (코드 및 데이터)을 쉽게 배포하는 것과 같은 것들을 놓칠 것입니다.


6

Spark 설명서에 따라 Spark는 Hadoop없이 실행할 수 있습니다.

리소스 관리자없이 독립형 모드로 실행할 수 있습니다.

그러나 다중 노드 설정에서 실행하려면 YARN 또는 Mesos와 같은 리소스 관리자 와 HDFS, S3 등과 같은 분산 파일 시스템 이 필요합니다 .


3

예, Hadoop없이 Spark를 설치할 수 있습니다. 약간 까다로울 수 있습니다. arnon 링크를 참조하여 parquet를 사용하여 S3에서 데이터 저장소로 구성 할 수 있습니다. http://arnon.me/2015/08/spark-parquet-s3/

Spark는 처리 만 수행하고 동적 메모리를 사용하여 작업을 수행하지만 데이터를 저장하려면 데이터 저장 시스템이 필요합니다. 여기서 hadoop은 Spark와 함께 역할을하며 Spark를위한 스토리지를 제공합니다. Spark와 함께 Hadoop을 사용하는 또 다른 이유는 오픈 소스이며 다른 데이터 스토리지 시스템과 비교하여 둘 다 쉽게 통합 할 수 있기 때문입니다. S3와 같은 다른 스토리지의 경우 위 링크에서 언급 한 것처럼 구성하기가 까다로울 것입니다.

그러나 Hadoop에는 Mapreduce라는 처리 장치도 있습니다.

둘 다의 차이점을 알고 싶으십니까?

이 기사를 확인하십시오 : https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

이 기사가 이해하는 데 도움이 될 것이라고 생각합니다.

  • 무엇을 사용해야하는지,

  • 언제 사용 하고

  • 사용하는 방법 !!!


1

예, 물론입니다. Spark는 독립적 인 계산 프레임 워크입니다. Hadoop은 MapReduce 계산 프레임 워크를 사용하는 분산 스토리지 시스템 (HDFS)입니다. Spark는 HDFS뿐만 아니라 기존 데이터베이스 (JDBC), kafka 또는 로컬 디스크와 같은 다른 데이터 소스에서도 데이터를 가져올 수 있습니다.



0

예, Spark는 Hadoop없이 실행할 수 있습니다. Hadoop없이 로컬 머신에 Spark를 설치할 수 있습니다. 그러나 Spark lib에는 사전 Haddop 라이브러리가 함께 제공됩니다. 즉, 로컬 컴퓨터에 설치하는 동안 사용됩니다.


-5

아니,이 작업을 시작 만발한 하둡 설치해야합니다 - https://issues.apache.org/jira/browse/SPARK-10944


1
이것은 올바르지 않으며 현재 버전에서 Hadoop 없이도 잘 작동합니다.
Chris Chambers

1
@ChrisChambers 자세히 설명 하시겠습니까? 이 문제에 대한 의견은 "사실 Spark는 어떤 것이 든 Hadoop 클래스를 필요로합니다."라고 말하며 다운로드 페이지에는 특정 Hadoop 버전 용으로 사전 빌드 된 옵션 또는 사용자가 제공 한 Hadoop이있는 버전 중 하나에 대한 옵션 만 있습니다. 그리고 문서에 "Spark는 HDFS 및 YARN에 Hadoop 클라이언트 라이브러리를 사용합니다."라고 말합니다. 이 종속성은 선택 사항이 아닌 것 같습니다.
NikoNyrh

1
@NikoNyrh 맞습니다. 방금 '사용자 제공 Hadoop'다운로드 아티팩트를 실행 해 보았고 즉시 스택 추적을 얻었습니다. 또한 Spark의 클래스 경로가 핵심 Hadoop 클래스에서 분리되기를 바랍니다. 그러나 프로토 타이핑 및 테스트 목적으로 다운로드 크기 (120 MB) 외에는 전혀 문제가 없습니다. 오 잘. 건배!
Jesús Zazueta 2017-06-26

질문에 스택 추적 :$ ./spark-shell Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSparkProperties$1.apply(SparkSubmitArguments.scala:118) at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefault at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more
헤수스 Zazueta
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.