Table des matières
What is Apache Spark?
Apache Spark at eBay
The Future of Spark at eBay
Maison base de données tutoriel mysql 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)
Copier après la connexion

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.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dix bibliothèques couramment utilisées pour les algorithmes d'IA version Java Dix bibliothèques couramment utilisées pour les algorithmes d'IA version Java Jun 13, 2023 pm 04:33 PM

ChatGPT est populaire depuis plus de six mois cette année et sa popularité n'a pas baissé du tout. Le Deep Learning et la PNL sont également revenus sur le devant de la scène. Certains amis de l'entreprise me demandent, en tant que développeur Java, comment démarrer avec l'intelligence artificielle. Il est temps de sortir la bibliothèque Java cachée pour apprendre l'IA et de la présenter à tout le monde. Ces bibliothèques et frameworks fournissent une large gamme d'outils et d'algorithmes pour l'apprentissage automatique, l'apprentissage profond, le traitement du langage naturel, etc. En fonction des besoins spécifiques de votre projet d'IA, vous pouvez choisir la bibliothèque ou le framework le plus approprié et commencer à expérimenter différents algorithmes pour créer votre solution d'IA. 1.Deeplearning4j Il s'agit d'une bibliothèque d'apprentissage en profondeur distribuée open source pour Java et Scala. Apprentissage profond

Utilisez le langage Spark in Go pour obtenir un traitement efficace des données Utilisez le langage Spark in Go pour obtenir un traitement efficace des données Jun 16, 2023 am 08:30 AM

Avec l’avènement de l’ère du Big Data, le traitement des données est devenu de plus en plus important. Pour diverses tâches de traitement de données, différentes technologies ont vu le jour. Parmi eux, Spark, en tant que technologie adaptée au traitement de données à grande échelle, a été largement utilisée dans divers domaines. De plus, le langage Go, en tant que langage de programmation efficace, a également reçu de plus en plus d’attention ces dernières années. Dans cet article, nous explorerons comment utiliser le langage Spark in Go pour obtenir un traitement efficace des données. Nous présenterons d'abord quelques concepts et principes de base de Spark

Explorez l'application de Java dans le domaine du big data : compréhension de Hadoop, Spark, Kafka et d'autres piles technologiques Explorez l'application de Java dans le domaine du big data : compréhension de Hadoop, Spark, Kafka et d'autres piles technologiques Dec 26, 2023 pm 02:57 PM

Pile technologique Java Big Data : Comprendre l'application de Java dans le domaine du Big Data, comme Hadoop, Spark, Kafka, etc. Alors que la quantité de données continue d'augmenter, la technologie Big Data est devenue un sujet brûlant à l'ère d'Internet d'aujourd'hui. Dans le domaine du big data, on entend souvent les noms de Hadoop, Spark, Kafka et d’autres technologies. Ces technologies jouent un rôle essentiel et Java, en tant que langage de programmation largement utilisé, joue également un rôle majeur dans le domaine du Big Data. Cet article se concentrera sur l'application de Java en général

Premiers pas avec PHP : PHP et Spark Premiers pas avec PHP : PHP et Spark May 20, 2023 am 08:41 AM

PHP est un langage de programmation côté serveur très populaire car il est facile à apprendre, open source et multiplateforme. Actuellement, de nombreuses grandes entreprises utilisent le langage PHP pour créer des applications, telles que Facebook et WordPress. Spark est un framework de développement rapide et léger pour créer des applications Web. Il est basé sur Java Virtual Machine (JVM) et fonctionne avec PHP. Cet article explique comment créer des applications Web à l'aide de PHP et Spark. Qu’est-ce que PHP ? PH

Quelles données se trouvent dans le dossier de données ? Quelles données se trouvent dans le dossier de données ? May 05, 2023 pm 04:30 PM

Le dossier de données contient des données du système et du programme, telles que les paramètres logiciels et les packages d'installation. Chaque dossier du dossier Données représente un type différent de dossier de stockage de données, que le fichier de données fasse référence au nom de fichier Données ou à l'extension Données nommées. , ce sont tous des fichiers de données personnalisés par le système ou le programme. Les données sont un fichier de sauvegarde pour le stockage des données. Généralement, elles peuvent être ouvertes avec meidaplayer, le bloc-notes ou Word.

Utiliser PHP pour réaliser des traitements de données à grande échelle : Hadoop, Spark, Flink, etc. Utiliser PHP pour réaliser des traitements de données à grande échelle : Hadoop, Spark, Flink, etc. May 11, 2023 pm 04:13 PM

Alors que la quantité de données continue d’augmenter, le traitement des données à grande échelle est devenu un problème auquel les entreprises doivent faire face et résoudre. Les bases de données relationnelles traditionnelles ne peuvent plus répondre à cette demande pour le stockage et l'analyse de données à grande échelle, les plateformes informatiques distribuées telles que Hadoop, Spark et Flink sont devenues les meilleurs choix. Dans le processus de sélection des outils de traitement de données, PHP devient de plus en plus populaire parmi les développeurs en tant que langage facile à développer et à maintenir. Dans cet article, nous explorerons comment exploiter PHP pour le traitement de données à grande échelle et comment

Que faire si les données de chargement MySQL sont tronquées ? Que faire si les données de chargement MySQL sont tronquées ? Feb 16, 2023 am 10:37 AM

Solution aux données de chargement MySQL tronquées : 1. Recherchez l'instruction SQL avec des caractères tronqués ; 2. Modifiez l'instruction en "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE jeu de caractères utf8 ;".

Moteurs de traitement de données en PHP (Spark, Hadoop, etc.) Moteurs de traitement de données en PHP (Spark, Hadoop, etc.) Jun 23, 2023 am 09:43 AM

À l’ère actuelle d’Internet, le traitement de données massives est un problème auquel chaque entreprise et institution doit faire face. En tant que langage de programmation largement utilisé, PHP doit également suivre l’évolution du traitement des données. Afin de traiter plus efficacement des données massives, le développement PHP a introduit des outils de traitement du Big Data, tels que Spark et Hadoop. Spark est un moteur de traitement de données open source qui peut être utilisé pour le traitement distribué de grands ensembles de données. La plus grande caractéristique de Spark est sa vitesse de traitement rapide des données et son stockage efficace.

See all articles