Inhaltsverzeichnis
What is Apache Spark?
Apache Spark at eBay
The Future of Spark at eBay
Heim Datenbank MySQL-Tutorial Using Spark to Ignite Data Analytics

Using Spark to Ignite Data Analytics

Jun 07, 2016 pm 04:34 PM
data ignite spark using

At eBay we want our customers to have the best experience possible. We use data analytics to improve user experiences, provide relevant offers, optimize performance, and create many, many other kinds of value. One way eBay supports this va

At eBay we want our customers to have the best experience possible. We use data analytics to improve user experiences, provide relevant offers, optimize performance, and create many, many other kinds of value. One way eBay supports this value creation is by utilizing data processing frameworks that enable, accelerate, or simplify data analytics. One such framework is Apache Spark. This post describes how Apache Spark fits into eBay’s Analytic Data Infrastructure.

spark_logo

What is Apache Spark?

The Apache Spark web site?describes Spark as “a fast and general engine for large-scale data processing.” Spark is a framework that enables parallel, distributed data processing. It offers a simple programming abstraction that provides powerful cache and persistence capabilities. The Spark framework can be deployed through Apache Mesos, Apache Hadoop via Yarn, or Spark’s own cluster manager. Developers can use the Spark framework via several programming languages including Java, Scala, and Python. Spark also serves as a foundation for additional data processing frameworks such as Shark, which provides SQL functionality for Hadoop.

Spark is an excellent tool for iterative processing of large datasets. One way Spark is suited for this type of processing is through its Resilient Distributed Dataset (RDD). In the paper titled Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing, RDDs are described as “…fault-tolerant, parallel data structures that let users explicitly persist intermediate results in memory, control their partitioning to optimize data placement, and manipulate them using a rich set of operators.” By using RDDs, ?programmers can pin their large data sets to memory, thereby supporting high-performance, iterative processing. Compared to reading a large data set from disk for every processing iteration, the in-memory solution is obviously much faster.

The diagram below shows a simple example of using Spark to read input data from HDFS, perform a series of iterative operations against that data using RDDs, and write the subsequent output back to HDFS.

spark_example_diagram

In the case of the first map operation into RDD(1), not all of the data could fit within the memory space allowed for RDDs. In such a case, the programmer is able to specify what should happen to the data that doesn’t fit. The options include spilling the computed data to disk and recreating it upon read. We can see in this example how each processing iteration is able to leverage memory for the reading and writing of its data. This method of leveraging memory is likely to be 100X faster than other methods that rely purely on disk storage for intermittent results.

Apache Spark at eBay

Today Spark is most commonly leveraged at eBay through Hadoop via Yarn. Yarn manages the Hadoop cluster’s resources and allows Hadoop to extend beyond traditional map and reduce jobs by employing Yarn containers to run generic tasks. Through the Hadoop Yarn framework, eBay’s Spark users are able to leverage clusters approaching the range of 2000 nodes, 100TB of RAM, and 20,000 cores.

The following example illustrates Spark on Hadoop via Yarn.

spark_hadoop_diagram

The user submits the Spark job to Hadoop. The Spark application master starts within a single Yarn container, then begins working with the Yarn resource manager to spawn Spark executors – as many as the user requested. These Spark executors will run the Spark application using the specified amount of memory and number of CPU cores. In this case, the Spark application is able to read and write to the cluster’s data residing in HDFS. This model of running Spark on Hadoop illustrates Hadoop’s growing ability to provide a singular, foundational platform for data processing over shared data.

The eBay analyst community includes a strong contingent of Scala users. Accordingly, many of eBay’s Spark users are writing their jobs in Scala. These jobs are supporting discovery through interrogation of complex data, data modelling, and data scoring, among other use cases. Below is a code snippet from a Spark Scala application. This application uses Spark’s machine learning library, MLlib, to cluster eBay’s sellers via KMeans. The seller attribute data is stored in HDFS.

/**
 * read input files and turn into usable records
 */
 var table = new SellerMetric()
 val model_data = sc.sequenceFile[Text,Text](
   input_path
  ,classOf[Text]
  ,classOf[Text]
  ,num_tasks.toInt
 ).map(
   v => parseRecord(v._2,table)
 ).filter(
   v => v != null
 ).cache
....
/**
 * build training data set from sample and summary data
 */
 val train_data = sample_data.map( v =>
   Array.tabulate[Double](field_cnt)(
     i => zscore(v._2(i),sample_mean(i),sample_stddev(i))
   )
 ).cache
/**
 * train the model
 */ 
 val model = KMeans.train(train_data,CLUSTERS,ITERATIONS)
/**
 * score the data
 */
 val results = grouped_model_data.map( 
   v => (
     v._1
    ,model.predict(
       Array.tabulate[Double](field_cnt)(
         i => zscore(v._2(i),sample_mean(i),sample_stddev(i))
       )
     )
   )
 ) 
 results.saveAsTextFile(output_path)
Nach dem Login kopieren

In addition to ?Spark Scala users, several folks at eBay have begun using Spark with Shark to accelerate their Hadoop SQL performance. Many of these Shark queries are easily running 5X faster than their Hive counterparts. While Spark at eBay is still in its early stages, usage is in the midst of expanding from experimental to everyday as the number of Spark users at eBay continues to accelerate.

The Future of Spark at eBay

Spark is helping eBay create value from its data, and so the future is bright for Spark at eBay. Our Hadoop platform team has started gearing up to formally support Spark on Hadoop. Additionally, we’re keeping our eyes on how Hadoop continues to evolve in its support for frameworks like Spark, how the community is able to use Spark to create value from data, and how companies like Hortonworks and Cloudera are incorporating Spark into their portfolios. Some groups within eBay are looking at spinning up their own Spark clusters outside of Hadoop. These clusters would either leverage more specialized hardware or be application-specific. Other folks are working on incorporating eBay’s already strong data platform language extensions into the Spark model to make it even easier to leverage eBay’s data within Spark. In the meantime, we will continue to see adoption of Spark increase at eBay. This adoption will be driven by chats in the hall, newsletter blurbs, product announcements, industry chatter, and Spark’s own strengths and capabilities.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Zehn häufig verwendete Bibliotheken für KI-Algorithmen in der Java-Version Zehn häufig verwendete Bibliotheken für KI-Algorithmen in der Java-Version Jun 13, 2023 pm 04:33 PM

ChatGPT ist dieses Jahr seit mehr als einem halben Jahr beliebt und seine Popularität ist überhaupt nicht zurückgegangen. Auch Deep Learning und NLP sind wieder in aller Munde. Einige Freunde im Unternehmen fragen mich als Java-Entwickler, wie ich mit künstlicher Intelligenz beginnen kann. Es ist an der Zeit, die versteckte Java-Bibliothek zum Erlernen von KI herauszuholen und sie allen vorzustellen. Diese Bibliotheken und Frameworks bieten eine breite Palette von Tools und Algorithmen für maschinelles Lernen, Deep Learning, Verarbeitung natürlicher Sprache und mehr. Abhängig von den spezifischen Anforderungen Ihres KI-Projekts können Sie die am besten geeignete Bibliothek oder das am besten geeignete Framework auswählen und mit verschiedenen Algorithmen experimentieren, um Ihre KI-Lösung zu erstellen. 1.Deeplearning4j Es handelt sich um eine verteilte Open-Source-Deep-Learning-Bibliothek für Java und Scala. Deeplearning

Verwenden Sie Spark in der Go-Sprache, um eine effiziente Datenverarbeitung zu erreichen Verwenden Sie Spark in der Go-Sprache, um eine effiziente Datenverarbeitung zu erreichen Jun 16, 2023 am 08:30 AM

Mit dem Aufkommen des Big-Data-Zeitalters hat die Datenverarbeitung immer mehr an Bedeutung gewonnen. Für verschiedene Datenverarbeitungsaufgaben haben sich unterschiedliche Technologien herausgebildet. Unter ihnen ist Spark als Technologie, die für die Datenverarbeitung in großem Maßstab geeignet ist, in verschiedenen Bereichen weit verbreitet. Darüber hinaus hat die Go-Sprache als effiziente Programmiersprache in den letzten Jahren immer mehr Aufmerksamkeit erhalten. In diesem Artikel untersuchen wir, wie man Spark in der Go-Sprache verwendet, um eine effiziente Datenverarbeitung zu erreichen. Wir werden zunächst einige grundlegende Konzepte und Prinzipien von Spark vorstellen

Entdecken Sie die Anwendung von Java im Bereich Big Data: Verständnis von Hadoop, Spark, Kafka und anderen Technologie-Stacks Entdecken Sie die Anwendung von Java im Bereich Big Data: Verständnis von Hadoop, Spark, Kafka und anderen Technologie-Stacks Dec 26, 2023 pm 02:57 PM

Java-Big-Data-Technologie-Stack: Verstehen Sie die Anwendung von Java im Bereich Big Data wie Hadoop, Spark, Kafka usw. Da die Datenmenge weiter zunimmt, ist die Big-Data-Technologie im heutigen Internetzeitalter zu einem heißen Thema geworden. Im Bereich Big Data hören wir oft die Namen Hadoop, Spark, Kafka und andere Technologien. Diese Technologien spielen eine entscheidende Rolle, und Java spielt als weit verbreitete Programmiersprache auch im Bereich Big Data eine große Rolle. Dieser Artikel konzentriert sich auf die Anwendung von Java im Großen und Ganzen

Erste Schritte mit PHP: PHP und Spark Erste Schritte mit PHP: PHP und Spark May 20, 2023 am 08:41 AM

PHP ist eine sehr beliebte serverseitige Programmiersprache, da sie leicht zu erlernen, Open Source und plattformübergreifend ist. Derzeit verwenden viele große Unternehmen die PHP-Sprache, um Anwendungen zu erstellen, beispielsweise Facebook und WordPress. Spark ist ein schnelles und leichtes Entwicklungsframework zum Erstellen von Webanwendungen. Es basiert auf der Java Virtual Machine (JVM) und arbeitet mit PHP. In diesem Artikel wird erläutert, wie Sie Webanwendungen mit PHP und Spark erstellen. Was ist PHP? PH

Welche Daten befinden sich im Datenordner? Welche Daten befinden sich im Datenordner? May 05, 2023 pm 04:30 PM

Der Datenordner enthält System- und Programmdaten, wie z. B. Softwareeinstellungen und Installationspakete. Jeder Ordner im Datenordner stellt einen anderen Typ von Datenspeicherordner dar, unabhängig davon, ob sich die Datendatei auf den Dateinamen „Data“ oder die Dateierweiterung „Benannte Daten“ bezieht Es handelt sich bei allen um vom System oder Programm angepasste Datendateien. Daten sind eine Sicherungsdatei zur Datenspeicherung, die im Allgemeinen mit Meidaplayer, Notepad oder Word geöffnet werden kann.

Was tun, wenn die MySQL-Ladedaten verstümmelt sind? Was tun, wenn die MySQL-Ladedaten verstümmelt sind? Feb 16, 2023 am 10:37 AM

Die Lösung für die verstümmelten MySQL-Ladedaten: 1. Suchen Sie die SQL-Anweisung mit verstümmelten Zeichen. 2. Ändern Sie die Anweisung in „LOAD DATA LOCAL INFILE „employee.txt“ INTO TABLE EMPLOYEE Zeichensatz utf8;“.

Verwenden Sie PHP, um eine groß angelegte Datenverarbeitung zu erreichen: Hadoop, Spark, Flink usw. Verwenden Sie PHP, um eine groß angelegte Datenverarbeitung zu erreichen: Hadoop, Spark, Flink usw. May 11, 2023 pm 04:13 PM

Da die Datenmenge weiter zunimmt, ist die Datenverarbeitung in großem Maßstab zu einem Problem geworden, dem sich Unternehmen stellen und das sie lösen müssen. Herkömmliche relationale Datenbanken können diesen Bedarf nicht mehr decken. Für die Speicherung und Analyse großer Datenmengen sind verteilte Computerplattformen wie Hadoop, Spark und Flink die beste Wahl. Im Auswahlprozess von Datenverarbeitungstools erfreut sich PHP als einfach zu entwickelnde und zu wartende Sprache bei Entwicklern immer größerer Beliebtheit. In diesem Artikel werden wir untersuchen, wie und wie PHP für die Verarbeitung großer Datenmengen genutzt werden kann

Datenverarbeitungs-Engines in PHP (Spark, Hadoop usw.) Datenverarbeitungs-Engines in PHP (Spark, Hadoop usw.) Jun 23, 2023 am 09:43 AM

Im aktuellen Internetzeitalter ist die Verarbeitung großer Datenmengen ein Problem, mit dem sich jedes Unternehmen und jede Institution auseinandersetzen muss. Als weit verbreitete Programmiersprache muss PHP auch in der Datenverarbeitung mit der Zeit gehen. Um große Datenmengen effizienter zu verarbeiten, hat die PHP-Entwicklung einige Big-Data-Verarbeitungstools wie Spark und Hadoop eingeführt. Spark ist eine Open-Source-Datenverarbeitungs-Engine, die für die verteilte Verarbeitung großer Datenmengen verwendet werden kann. Das größte Merkmal von Spark ist seine schnelle Datenverarbeitungsgeschwindigkeit und effiziente Datenspeicherung.

See all articles