Apache spark ทำงานโดยไม่ใช้ hadoop ได้หรือไม่?


คำตอบ:


53

Spark สามารถทำงานได้โดยไม่ต้อง Hadoop แต่ฟังก์ชันบางอย่างต้องอาศัยรหัสของ Hadoop (เช่นการจัดการไฟล์ Parquet) เรากำลังใช้งาน Spark บน Mesos และ S3 ซึ่งค่อนข้างยุ่งยากในการตั้งค่า แต่ใช้งานได้ดีจริง ๆ เมื่อทำเสร็จแล้ว (คุณสามารถอ่านสรุปสิ่งที่จำเป็นในการตั้งค่าอย่างถูกต้องได้ที่นี่ )

(แก้ไข) หมายเหตุ: ตั้งแต่เวอร์ชัน 2.3.0 Spark ยังเพิ่มการรองรับเนทีฟสำหรับ Kubernetes


97

Sparkเป็นเอนจินการประมวลผลแบบกระจายในหน่วยความจำ

Hadoopเป็นเฟรมเวิร์กสำหรับพื้นที่จัดเก็บแบบกระจาย ( HDFS ) และการประมวลผลแบบกระจาย ( YARN )

Spark สามารถทำงานโดยมีหรือไม่มีส่วนประกอบ Hadoop (HDFS / YARN)


พื้นที่จัดเก็บแบบกระจาย:

เนื่องจากSparkไม่มีระบบจัดเก็บข้อมูลแบบกระจายของตัวเองจึงต้องพึ่งพาระบบจัดเก็บข้อมูลเหล่านี้สำหรับการประมวลผลแบบกระจาย

S3 - งานแบทช์ที่ไม่เร่งด่วน S3 เหมาะกับกรณีการใช้งานที่เฉพาะเจาะจงมากเมื่อพื้นที่ข้อมูลไม่สำคัญ

Cassandra - เหมาะสำหรับการวิเคราะห์ข้อมูลแบบสตรีมมิ่งและการใช้งานมากเกินไปสำหรับงานแบทช์

HDFS - เหมาะอย่างยิ่งสำหรับงานแบทช์โดยไม่กระทบกับพื้นที่ข้อมูล


การประมวลผลแบบกระจาย:

คุณสามารถเรียกใช้ Spark ในสามโหมดที่แตกต่างกัน: แบบสแตนด์อโลน, YARN และ Mesos

ดูคำถาม SE ด้านล่างสำหรับคำอธิบายโดยละเอียดเกี่ยวกับทั้งพื้นที่จัดเก็บแบบกระจายและการประมวลผลแบบกระจาย

ฉันควรเลือกคลัสเตอร์ประเภทใดสำหรับ Spark


23

โดยค่าเริ่มต้น Spark ไม่มีกลไกการจัดเก็บ

ในการจัดเก็บข้อมูลจำเป็นต้องมีระบบไฟล์ที่รวดเร็วและปรับขนาดได้ คุณสามารถใช้ S3 หรือ HDFS หรือระบบไฟล์อื่น ๆ Hadoop เป็นตัวเลือกที่ประหยัดเนื่องจากต้นทุนต่ำ

นอกจากนี้หากคุณใช้ Tachyon จะช่วยเพิ่มประสิทธิภาพด้วย Hadoop ขอแนะนำ Hadoop สำหรับการประมวลผล apache sparkป้อนคำอธิบายภาพที่นี่


6

ใช่ประกายไฟสามารถทำงานได้โดยไม่ต้องมีฮารูป ฟีเจอร์จุดประกายหลักทั้งหมดจะยังคงทำงานต่อไป แต่คุณจะพลาดสิ่งต่างๆเช่นการแจกจ่ายไฟล์ทั้งหมดของคุณอย่างง่ายดาย (รหัสและข้อมูล) ไปยังโหนดทั้งหมดในคลัสเตอร์ผ่าน hdfs เป็นต้น


6

ตามเอกสารของ Spark Spark สามารถทำงานได้โดยไม่ต้องมี Hadoop

คุณสามารถเรียกใช้เป็นโหมดสแตนด์อโลนโดยไม่ต้องมีตัวจัดการทรัพยากรใด ๆ

แต่ถ้าคุณต้องการเรียกใช้ในการตั้งค่าแบบหลายโหนดคุณต้องมีตัวจัดการทรัพยากรเช่น YARNหรือ Mesos และระบบไฟล์แบบกระจายเช่น HDFS, S3 เป็นต้น


3

ได้คุณสามารถติดตั้ง Spark ได้โดยไม่ต้องใช้ Hadoop นั่นจะยุ่งยากเล็กน้อยคุณสามารถอ้างถึงลิงก์ arnon เพื่อใช้ไม้ปาร์เก้เพื่อกำหนดค่าบน S3 เป็นที่จัดเก็บข้อมูล http://arnon.me/2015/08/spark-parquet-s3/

Spark เป็นเพียงการประมวลผลและใช้หน่วยความจำแบบไดนามิกในการทำงาน แต่ในการจัดเก็บข้อมูลคุณต้องมีระบบจัดเก็บข้อมูล ที่นี่ hadoop เข้ามามีบทบาทกับ Spark ซึ่งให้ที่เก็บข้อมูลสำหรับ Spark อีกเหตุผลหนึ่งในการใช้ Hadoop กับ Spark ก็คือพวกเขาเป็นโอเพ่นซอร์สและทั้งสองสามารถรวมเข้าด้วยกันได้ง่ายเมื่อเปรียบเทียบกับระบบจัดเก็บข้อมูลอื่น ๆ สำหรับพื้นที่เก็บข้อมูลอื่น ๆ เช่น S3 คุณควรกำหนดค่าให้ยุ่งยากเช่นการกล่าวถึงในลิงค์ด้านบน

แต่ Hadoop ยังมีหน่วยประมวลผลที่เรียกว่า Mapreduce

ต้องการทราบความแตกต่างของทั้งสองหรือไม่?

ตรวจสอบบทความนี้: https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

ฉันคิดว่าบทความนี้จะช่วยให้คุณเข้าใจ

  • จะใช้อะไร

  • เมื่อใดควรใช้และ

  • วิธีใช้ !!!


1

ใช่แน่นอน Spark เป็นกรอบการคำนวณอิสระ Hadoop เป็นระบบจัดเก็บข้อมูลแบบกระจาย (HDFS) ที่มีกรอบการคำนวณ MapReduce Spark สามารถรับข้อมูลจาก HDFS เช่นเดียวกับแหล่งข้อมูลอื่น ๆ เช่นฐานข้อมูลดั้งเดิม (JDBC) คาฟคาหรือแม้แต่โลคัลดิสก์



0

ใช่ประกายไฟสามารถทำงานได้โดยไม่ต้องมี Hadoop คุณสามารถติดตั้ง spark ในเครื่องของคุณได้โดยไม่ต้องใช้ Hadoop แต่ Spark lib มาพร้อมกับไลบรารี Haddop ก่อนเช่นใช้ในขณะติดตั้งบนเครื่องของคุณ


-5

ไม่จำเป็นต้องติดตั้ง Hadoop แบบเต็มเพื่อเริ่มทำงาน - https://issues.apache.org/jira/browse/SPARK-10944


1
สิ่งนี้ไม่ถูกต้องใช้งานได้ดีหากไม่มี Hadoop ในเวอร์ชันปัจจุบัน
Chris Chambers

1
@ChrisChambers คุณสนใจที่จะอธิบาย? ความคิดเห็นเกี่ยวกับปัญหานั้นระบุว่า "ในความเป็นจริง Spark ต้องการคลาส Hadoop ไม่ว่าจะเป็นอะไรก็ตาม" และในหน้าดาวน์โหลดจะมีเพียงตัวเลือกที่สร้างไว้ล่วงหน้าสำหรับ Hadoop เวอร์ชันเฉพาะหรือรุ่นที่มี Hadoop ที่ผู้ใช้จัดหาให้ และเอกสารบอกว่า "Spark ใช้ไลบรารีไคลเอ็นต์ Hadoop สำหรับ HDFS และ YARN" และการพึ่งพานี้ดูเหมือนจะไม่ใช่ทางเลือก
NikoNyrh

1
@NikoNyrh ถูกต้อง. ฉันเพิ่งลองเรียกใช้สิ่งประดิษฐ์การดาวน์โหลด 'ผู้ใช้ให้ Hadoop' และรับการติดตามสแต็กทันที ฉันยังต้องการให้คลาสพา ธ ของ Spark แยกออกจากคลาส Hadoop หลัก แต่เพื่อวัตถุประสงค์ในการสร้างต้นแบบและการทดสอบฉันไม่มีปัญหาอื่นใดนอกจากขนาดของการดาวน์โหลด (120 MB) ทั้งหมด โอ้ดี. ไชโย!
Jesús Zazueta

Stack trace ในคำถาม:$ ./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
Jesús Zazueta
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.