Spark 와 Hadoop 간에 종속성이 있습니까?
그렇지 않다면 Hadoop 없이 Spark 를 실행할 때 놓칠 기능이 있습니까?
답변:
Spark 는 인 메모리 분산 컴퓨팅 엔진입니다.
Hadoop 은 분산 스토리지 ( HDFS ) 및 분산 처리 ( YARN )를 위한 프레임 워크입니다. )를 .
Spark는 Hadoop 구성 요소 (HDFS / YARN)를 사용하거나 사용하지 않고 실행할 수 있습니다.
때문에 스파크가 자신의 분산 스토리지 시스템이없는, 그것은 분산 컴퓨팅에 대한 이러한 스토리지 시스템 중 하나에 의존한다.
S3 – 긴급하지 않은 배치 작업. S3는 데이터 지역성이 중요하지 않은 매우 구체적인 사용 사례에 적합합니다.
Cassandra – 스트리밍 데이터 분석에 적합하며 일괄 작업에 대한 과잉입니다.
HDFS – 데이터 지역성을 손상시키지 않으면 서 배치 작업에 적합합니다.
Spark는 Standalone, YARN 및 Mesos의 세 가지 모드로 실행할 수 있습니다.
분산 스토리지 및 분산 처리에 대한 자세한 설명은 아래 SE 질문을 참조하십시오.
기본적으로 Spark에는 저장 메커니즘이 없습니다.
데이터를 저장하려면 빠르고 확장 가능한 파일 시스템이 필요합니다. S3 또는 HDFS 또는 다른 파일 시스템을 사용할 수 있습니다. Hadoop은 저렴한 비용으로 경제적 인 옵션입니다.
또한 Tachyon을 사용하면 Hadoop으로 성능이 향상됩니다. Apache Spark 처리를 위해 강력히 권장되는 Hadoop입니다 .
예, 스파크는 hadoop없이 실행할 수 있습니다. 모든 핵심 스파크 기능은 계속 작동하지만 hdfs 등을 통해 클러스터의 모든 노드에 모든 파일 (코드 및 데이터)을 쉽게 배포하는 것과 같은 것들을 놓칠 것입니다.
Spark 설명서에 따라 Spark는 Hadoop없이 실행할 수 있습니다.
리소스 관리자없이 독립형 모드로 실행할 수 있습니다.
그러나 다중 노드 설정에서 실행하려면 YARN 또는 Mesos와 같은 리소스 관리자 와 HDFS, S3 등과 같은 분산 파일 시스템 이 필요합니다 .
예, 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
이 기사가 이해하는 데 도움이 될 것이라고 생각합니다.
무엇을 사용해야하는지,
언제 사용 하고
사용하는 방법 !!!
예, Spark는 Hadoop 설치 여부에 관계없이 실행할 수 있습니다. 자세한 내용은 https://spark.apache.org/docs/latest/를 참조하십시오.
아니,이 작업을 시작 만발한 하둡 설치해야합니다 - https://issues.apache.org/jira/browse/SPARK-10944
$ ./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