Spark ve Hadoop arasında herhangi bir bağımlılık var mı?
Eğer değilse, çalıştırdığınızda ben özleyeceğim herhangi özellikler vardır Spark olmadan Hadoop'un ?
Yanıtlar:
Spark, Hadoop olmadan çalışabilir, ancak bazı işlevleri Hadoop'un koduna dayanır (örneğin, Parquet dosyalarının işlenmesi). Biz kurmak için biraz zor oldu ama gerçekten iyi bir kez (eğer düzgün ayarlamak için gerekli bir özetini okuyabilir yapılır çalıştığı Mesos ve S3 üzerinde Spark azalıyor burada ).
(Düzenle) Not: 2.3.0 Spark sürümünden bu yana Kubernetes için yerel destek de ekledi
Spark , bellek içi dağıtılmış bir bilgi işlem motorudur.
Hadoop'un dağıtılmış depolama (bir çerçevedir HDF'ler ) ve dağıtılmış işlem ( İPLİK ).
Spark, Hadoop bileşenleri (HDFS / YARN) ile veya bunlar olmadan çalışabilir
Yana Kıvılcım kendi dağıtılan depolama sistemi yok, bu dağıtılmış bilgi işlem için bu depolama sistemlerinden birine bağlı zorundadır.
S3 - Acil olmayan toplu işler. S3, veri yerelliğinin kritik olmadığı çok özel kullanım durumlarına uyar.
Cassandra - Veri analizi akışı için mükemmel ve toplu işler için fazlalık.
HDFS - Veri yerelliğinden ödün vermeden toplu işler için mükemmel uyum.
Spark'ı üç farklı modda çalıştırabilirsiniz: Bağımsız, YARN ve Mesos
Hem dağıtılmış depolama hem de dağıtılmış işleme hakkında ayrıntılı bir açıklama için aşağıdaki SE sorusuna bakın.
Varsayılan olarak, Spark'ın depolama mekanizması yoktur.
Verileri depolamak için hızlı ve ölçeklenebilir dosya sistemine ihtiyaç duyar. S3 veya HDFS veya başka herhangi bir dosya sistemini kullanabilirsiniz. Hadoop, düşük maliyeti nedeniyle ekonomik bir seçenektir.
Ek olarak, Takyon kullanırsanız, Hadoop ile performansı artıracaktır. Apache kıvılcım işleme için kesinlikle Hadoop önerilir .
Evet, kıvılcım hado olmadan koşabilir. Tüm temel kıvılcım özellikleri çalışmaya devam edecek, ancak tüm dosyalarınızı (kodun yanı sıra veriler) kümedeki tüm düğümlere hdfs vb. Aracılığıyla kolayca dağıtmak gibi şeyleri kaçıracaksınız.
Spark belgelerine göre, Spark Hadoop olmadan çalışabilir.
Herhangi bir kaynak yöneticisi olmadan Bağımsız mod olarak çalıştırabilirsiniz.
Ancak çok düğümlü kurulumda çalıştırmak istiyorsanız , YARN veya Mesos gibi bir kaynak yöneticisine ve HDFS, S3 vb. Gibi dağıtılmış bir dosya sistemine ihtiyacınız vardır.
Evet, Spark'ı Hadoop olmadan kurabilirsiniz. Bu biraz yanıltıcı olur S3'te veri depolama olarak yapılandırmak için parke kullanmak için arnon link'e başvurabilirsiniz. http://arnon.me/2015/08/spark-parquet-s3/
Spark yalnızca işlem yapar ve görevi gerçekleştirmek için dinamik bellek kullanır, ancak verileri depolamak için bazı veri depolama sistemine ihtiyacınız vardır. Burada hadoop, Spark ile birlikte rol alır, Spark için depolama sağlar. Hadoop'u Spark ile kullanmanın bir başka nedeni de açık kaynak olmaları ve her ikisinin de diğer veri depolama sistemlerine kıyasla birbirleriyle kolayca entegre olabilmesidir. S3 gibi diğer depolama için, yukarıdaki bağlantıda bahsedildiği gibi yapılandırmak zor olmalısınız.
Ancak Hadoop'un ayrıca Mapreduce adlı bir işleme birimi var.
İkisindeki farkı bilmek ister misiniz?
Bu makaleye göz atın: https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83
Sanırım bu makale anlamanıza yardımcı olacak
ne kullanmalı
ne zaman kullanılmalı ve
nasıl kullanılır !!!
Evet, Spark Hadoop kurulumu ile veya bu kurulum olmadan çalışabilir, daha fazla ayrıntı için ziyaret edebilirsiniz - https://spark.apache.org/docs/latest/
Evet, kıvılcım Hadoop olmadan koşabilir. Hadoop olmadan yerel makinenize kıvılcım takabilirsiniz. Ancak Spark lib, Haddop öncesi kitaplıklarla birlikte gelir, yani yerel makinenize kurulum sırasında kullanılır.
Hayır. Çalışmaya başlamak için tam gelişmiş Hadoop kurulumu gerektirir - 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