Using Spark to Ignite Data Analytics
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.
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.
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.
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) Salin selepas log masuk |
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.
原文地址:Using Spark to Ignite Data Analytics, 感谢原作者分享。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



ChatGPT telah popular selama lebih daripada setengah tahun tahun ini, dan popularitinya tidak jatuh sama sekali. Pembelajaran mendalam dan NLP juga telah kembali kepada perhatian semua orang. Beberapa rakan dalam syarikat bertanya kepada saya, sebagai pembangun Java, bagaimana untuk bermula dengan kecerdasan buatan Sudah tiba masanya untuk mengeluarkan perpustakaan Java tersembunyi untuk mempelajari AI dan memperkenalkannya kepada semua orang. Pustaka dan rangka kerja ini menyediakan pelbagai alat dan algoritma untuk pembelajaran mesin, pembelajaran mendalam, pemprosesan bahasa semula jadi dan banyak lagi. Bergantung pada keperluan khusus projek AI anda, anda boleh memilih perpustakaan atau rangka kerja yang paling sesuai dan mula bereksperimen dengan algoritma yang berbeza untuk membina penyelesaian AI anda. 1.Deeplearning4j Ia adalah perpustakaan pembelajaran mendalam teragih sumber terbuka untuk Java dan Scala. Pembelajaran mendalam

Dengan kemunculan era data besar, pemprosesan data menjadi semakin penting. Untuk pelbagai tugas pemprosesan data, teknologi yang berbeza telah muncul. Antaranya, Spark, sebagai teknologi yang sesuai untuk pemprosesan data berskala besar, telah digunakan secara meluas dalam pelbagai bidang. Di samping itu, bahasa Go, sebagai bahasa pengaturcaraan yang cekap, juga telah mendapat lebih banyak perhatian dalam beberapa tahun kebelakangan ini. Dalam artikel ini, kami akan meneroka cara menggunakan bahasa Spark dalam Go untuk mencapai pemprosesan data yang cekap. Mula-mula kami akan memperkenalkan beberapa konsep dan prinsip asas Spark

Timbunan teknologi data besar Java: Fahami aplikasi Java dalam bidang data besar, seperti Hadoop, Spark, Kafka, dll. Apabila jumlah data terus meningkat, teknologi data besar telah menjadi topik hangat dalam era Internet hari ini. Dalam bidang data besar, kita sering mendengar nama Hadoop, Spark, Kafka dan teknologi lain. Teknologi ini memainkan peranan penting, dan Java, sebagai bahasa pengaturcaraan yang digunakan secara meluas, juga memainkan peranan yang besar dalam bidang data besar. Artikel ini akan memberi tumpuan kepada aplikasi Java secara besar-besaran

PHP ialah bahasa pengaturcaraan sebelah pelayan yang sangat popular kerana ia mudah dipelajari, sumber terbuka dan merentas platform. Pada masa ini, banyak syarikat besar menggunakan bahasa PHP untuk membina aplikasi, seperti Facebook dan WordPress. Spark ialah rangka kerja pembangunan yang pantas dan ringan untuk membina aplikasi web. Ia berdasarkan Java Virtual Machine (JVM) dan berfungsi dengan PHP. Artikel ini akan memperkenalkan cara membina aplikasi web menggunakan PHP dan Spark. Apakah PHP? PH

Folder data mengandungi data sistem dan program, seperti tetapan perisian dan pakej pemasangan Setiap folder dalam folder Data mewakili jenis folder storan data yang berbeza, tidak kira sama ada fail Data merujuk kepada nama fail Data atau sambungan data , semuanya adalah fail data yang disesuaikan oleh sistem atau program Data ialah fail sandaran untuk penyimpanan data Secara umumnya, ia boleh dibuka dengan meidaplayer, notepad atau word.

Memandangkan jumlah data terus meningkat, pemprosesan data berskala besar telah menjadi masalah yang mesti dihadapi dan diselesaikan oleh perusahaan. Pangkalan data perhubungan tradisional tidak lagi dapat memenuhi permintaan ini Untuk penyimpanan dan analisis data berskala besar, platform pengkomputeran teragih seperti Hadoop, Spark, dan Flink telah menjadi pilihan terbaik. Dalam proses pemilihan alat pemprosesan data, PHP menjadi semakin popular di kalangan pembangun sebagai bahasa yang mudah dibangunkan dan diselenggara. Dalam artikel ini, kami akan meneroka cara memanfaatkan PHP untuk pemprosesan data berskala besar dan bagaimana

Penyelesaian kepada data beban mysql yang bercelaru: 1. Cari pernyataan SQL dengan aksara yang bercelaru;

Dalam era Internet sekarang, pemprosesan data secara besar-besaran merupakan masalah yang perlu dihadapi oleh setiap perusahaan dan institusi. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP juga perlu mengikuti perkembangan masa dalam pemprosesan data. Untuk memproses data besar-besaran dengan lebih cekap, pembangunan PHP telah memperkenalkan beberapa alat pemprosesan data besar, seperti Spark dan Hadoop. Spark ialah enjin pemprosesan data sumber terbuka yang boleh digunakan untuk pemprosesan teragih set data yang besar. Ciri terbesar Spark ialah kelajuan pemprosesan data yang pantas dan penyimpanan data yang cekap.
