<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Apache Spark Archives - OVHcloud Blog</title>
	<atom:link href="https://blog.ovhcloud.com/tag/apache-spark/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ovhcloud.com/tag/apache-spark/</link>
	<description>Innovation for Freedom</description>
	<lastBuildDate>Thu, 03 Jun 2021 08:27:48 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.ovhcloud.com/wp-content/uploads/2019/07/cropped-cropped-nouveau-logo-ovh-rebranding-32x32.gif</url>
	<title>Apache Spark Archives - OVHcloud Blog</title>
	<link>https://blog.ovhcloud.com/tag/apache-spark/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Why are you still managing your data processing clusters?</title>
		<link>https://blog.ovhcloud.com/why-are-you-still-managing-your-data-processing-clusters/</link>
		
		<dc:creator><![CDATA[Mojtaba Imani]]></dc:creator>
		<pubDate>Wed, 30 Sep 2020 16:14:35 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apache Spark]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Cluster Computing]]></category>
		<category><![CDATA[Data Platform]]></category>
		<category><![CDATA[Data Processing]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<guid isPermaLink="false">https://www.ovh.com/blog/?p=19241</guid>

					<description><![CDATA[Cluster computing is used to share a computation load among a group of computers. This achieves a higher level of performance and scalability.&#160;&#160;&#160; Apache Spark is an open-source, distributed and cluster-computing framework, that is much faster than the previous one (Hadoop MapReduce). This is thanks to features like in-memory processing and lazy evaluation. Apache Spark [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fwhy-are-you-still-managing-your-data-processing-clusters%2F&amp;action_name=Why%20are%20you%20still%20managing%20your%20data%20processing%20clusters%3F&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<p>Cluster computing is used to share a computation load among a group of computers. This achieves a higher level of performance and scalability.&nbsp;&nbsp;&nbsp;</p>



<p>Apache Spark is an open-source, distributed and cluster-computing framework, that is much faster than the previous one (Hadoop MapReduce). This is thanks to features like in-memory processing and lazy evaluation. Apache Spark is the most popular tool in this category.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="539" src="https://www.ovh.com/blog/wp-content/uploads/2020/09/IMG_0282-1024x539.png" alt="Why are you still managing your data processing clusters?" class="wp-image-19364" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0282-1024x539.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0282-300x158.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0282-768x404.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0282.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The analytics engine is the leading framework for large-scale SQL, batch processing, stream processing and machine learning. For coding in Spark, you have the option of using different programming languages; including Java, Scala, Python, R and SQL. It can be run locally on a single machine, or on a cluster of computers for task distribution.</p>



<p>By using Apache Spark, you can process your data in your local computer, or you can create a cluster to send any number of processing jobs.</p>



<p>It is possible to create your cluster with physical computers on-premises, with virtual machines in a hosting company, or with any cloud provider. With your own cluster, you’ll have the ability to send Spark jobs whenever you like.&nbsp;</p>



<h3 class="wp-block-heading">Cluster Management Challenges&nbsp;</h3>



<p>If you are processing a huge amount of data and you expect to have results in a reasonable time, your local computer won’t be enough. You need a cluster of computers to divide the data and process workloads &#8211; several computers are run in parallel to speed up the task.&nbsp;</p>



<p>Creating and managing your own cluster of computers, however, is not an easy task. You will face several challenges:&nbsp;</p>



<h4 class="wp-block-heading">Cluster Creation&nbsp;</h4>



<p>Creating an Apache Spark cluster is an arduous task.&nbsp;</p>



<p>First, you’ll need to create a cluster of computers and install an operating system, development tools (Python, Java, Scala), etc.&nbsp;</p>



<p>Second, you’ll need to select a version of Apache Spark and install the necessary nodes (master&nbsp;and workers).&nbsp;</p>



<p>Lastly, you’ll need to connect all these nodes together to finalize your&nbsp;Apache Spark cluster. </p>



<p>All in all, it can take several hours to create and configure a new Apache Spark cluster.</p>



<h4 class="wp-block-heading">Cluster Management&nbsp;</h4>



<p>But once you have your own cluster up and running, your job is far from over. Is your cluster working well? Is each and every node healthy?&nbsp;</p>



<p>Here is the second challenge: facing the pain of cluster management!</p>



<p>You’ll need to check the health of all your nodes manually or, preferably, install monitoring tools that report any issues nodes may encounter. </p>



<p>Do the nodes have enough disk space available for new tasks? One key issue faced by Apache Spark clusters, is that some tasks write a lot of data in the local disk space of nodes without deleting them. Disk space is a common problem and, as you may know, a lack of disk space eliminates the possibility of running more tasks. &nbsp;</p>



<p>Do you need to run multiple Spark jobs at the same time? Sometimes a single job occupies all the CPU and RAM resources in your cluster and doesn’t allow other jobs to start and run at the same time.&nbsp;</p>



<p>These are only a few of the problems you will meet while working with your own clusters.</p>



<h4 class="wp-block-heading">Cluster Security</h4>



<p>Now for the third challenge! What is even more important than having a cluster up and running smoothly?</p>



<p>You guessed it: security. After all, Apache Spark is a Data Processing tool. And data is very sensitive.</p>



<p>Where in your cluster, does security matter most? </p>



<p>What about the connection between nodes? Are they connected with a secured (and fast) connection? Who has access to the servers housing your cluster?&nbsp;</p>



<p>If you have created your cluster on the cloud and you are working with sensitive data, you’ll need to address these issues by securing each and every node and encrypting communications between them.&nbsp;</p>



<h4 class="wp-block-heading">Spark Version</h4>



<p>Here is your fourth challenge: managing your cluster&#8217;s user expectations. In some cases this may be a less daunting task, but not all. </p>



<p>There isn&#8217;t a whole lot you can do to change the expectations of your cluster&#8217;s users, but here&#8217;s a common example to help you prepare:</p>



<p>Do your users like to test their codes with different versions of Apache Spark?&nbsp; Or do they require the latest feature from the latest Spark nightly version?</p>



<p>When you create an Apache Spark cluster, you have to select one version of Spark. Your whole cluster will be bound to it, and <em>it</em> alone. This means it isn&#8217;t possible for several versions to cohabit in the same cluster.</p>



<p>So, either you’ll have to change the Spark version of your whole cluster or create another separated cluster. And of course, if you decide to do that, you have to create a down time on your cluster to make the modifications.&nbsp;</p>



<h4 class="wp-block-heading">Cluster Efficiency&nbsp;</h4>



<p>And for the final challenge: scaling!</p>



<p>How can you get the most benefit from the cluster resources you are paying for? Are you paying for your cluster but feel you&#8217;re not using it efficiently? Is your cluster too big for your users? Is it running, but empty of jobs during the holiday seasons?</p>



<p>When you have a processing cluster &#8211; especially if you have a lot of precious resources in your cluster that you&#8217;re paying for &#8211; you will always have one major concern: is your cluster being utilised as efficiently as possible. There will be occasions that some resources in your cluster are idle, or where you are only running small jobs that don&#8217;t require the amount of resources in your cluster. Scaling will become a major pain point.</p>



<h3 class="wp-block-heading">OVHcloud Data Processing (ODP) Solution&nbsp;</h3>



<p>At OVHcloud, we created a new data service called OVHcloud Data Processing (ODP) to address all cluster management challenges mentioned above.&nbsp;</p>



<p>Let’s assume that you have some data to process but you don’t have the desire, the time, the budget or the skills to overcome these challenges. Maybe you don’t want to, or can’t, ask for help from colleagues or consultants to spawn and manage a cluster. How can you still make use of Apache Spark? This is where the ODP service comes in!</p>



<p>By using ODP, you need to write your Apache Spark code and ODP will do the rest. It will create a disposable dedicated Apache Spark cluster over the cloud for each job in just a few seconds &#8211; then delete the whole cluster after finishing the job. You only pay for the requested resources and only for the duration of the computation. There is no need to pay for hours and hours of cloud servers, while you are busy with the cluster installation, configuration or even debugging and updating the engine version.&nbsp;</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6-1024x813.jpeg" alt="OVHcloud Data Processing" class="wp-image-18856" width="512" height="407" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6-1024x813.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6-300x238.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6-768x610.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6.jpeg 1227w" sizes="(max-width: 512px) 100vw, 512px" /></figure></div>



<h4 class="wp-block-heading">ODP Cluster Creation</h4>



<p>When you submit your job, ODP will create an apache spark cluster dedicated to that job in just a few seconds. This cluster will have the amount of CPU and RAM and the number of workers specified in the job submit form. All necessary software will be automatically installed. You don’t need to worry at all about a cluster, how to install, configure, or secure it. ODP does all of this for you.&nbsp;</p>



<h4 class="wp-block-heading">ODP Cluster Management&nbsp;</h4>



<p>When you submit your job, cluster management and monitoring are configured and handled by ODP. All logging and monitoring mechanisms and tools will be installed automatically for you. You will have a Grafana dashboard to monitor different parameters and resources of your job and you will have access to the official Apache Spark dashboard.&nbsp;</p>



<p>You don’t need to worry about cleaning the local disk of each node because each job will start with fresh resources. It isn&#8217;t possible, therefore, for one job to delay another job as each job has new, dedicated resources.&nbsp;&nbsp;</p>



<h4 class="wp-block-heading">ODP Cluster Security&nbsp;</h4>



<p>ODP will take care of the security and privacy of your cluster as well. Firstly, all communications between the Spark nodes are encrypted. Secondly, None of your job’s nodes are accessible from the outside. ODP only allows limited ports to be open for your cluster, so that you are still able to load or push your data.&nbsp;</p>



<h4 class="wp-block-heading">ODP Cluster Spark Version&nbsp;</h4>



<p>When it comes to using multiple Spark versions on the same cluster, ODP offers a solution. As every job possesses its own dedicated resources, each job can use any version currently supported by the service, independently from any other job running at&nbsp; the same time. When submitting an Apache Spark job through ODP, you will first select the version of Apache Spark you would like to use. When the Apache Spark community releases a new version, it will soon become available in ODP and you can then submit another job with the new Spark version as well. This means you don’t need to keep updating the Spark version of your whole cluster anymore.&nbsp;</p>



<h4 class="wp-block-heading">ODP Cluster Efficiency</h4>



<p>Each time you submit a job, you’ll have to define exactly how many resources and workers you would like to use for that job. As said earlier, each job has its own dedicated resources so you will be able to have small jobs running alongside much bigger ones. This flexibility, means that you will never have to worry about having an idle cluster. You pay for the resources you use, when you use them.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-1024x662.png" alt="OVHcloud Data Processing" class="wp-image-15537" width="768" height="497" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-1024x662.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-300x194.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-768x496.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-1200x775.png 1200w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385.png 2048w" sizes="(max-width: 768px) 100vw, 768px" /></figure></div>



<h3 class="wp-block-heading">How to start?&nbsp;</h3>



<p>If you&#8217;re interested in trying ODP, you can check out: <a href="https://www.ovhcloud.com/en/public-cloud/data-processing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://www.ovhcloud.com/en/public-cloud/data-processing/</a> or you can easily create an account at <a href="http://www.ovhcloud.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">www.ovhcloud.com</a> and select “data processing” in the public cloud section. It is also possible to ask questions directly from the product team in the ODP public gitter channel <a href="https://gitter.im/ovh/data-processing" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://gitter.im/ovh/data-processing</a>.</p>



<h3 class="wp-block-heading">Conclusion&nbsp;</h3>



<p>With ODP, the challenges of running an Apache Spark cluster are removed, or alleviated (we still can’t do much about users’ expectations!) You don’t have to worry about the lack of resources necessary to process your data, or the need to create, install and manage your own cluster. </p>



<p>Focus on your processing algorithm and ODP will do the rest.</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fwhy-are-you-still-managing-your-data-processing-clusters%2F&amp;action_name=Why%20are%20you%20still%20managing%20your%20data%20processing%20clusters%3F&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Improving the quality of data with Apache Spark</title>
		<link>https://blog.ovhcloud.com/improving-the-quality-of-data-with-apache-spark/</link>
		
		<dc:creator><![CDATA[Hubert Stefani]]></dc:creator>
		<pubDate>Tue, 15 Sep 2020 15:34:26 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apache Spark]]></category>
		<category><![CDATA[Data Processing]]></category>
		<category><![CDATA[OVHcloud Data Processing]]></category>
		<guid isPermaLink="false">https://www.ovh.com/blog/?p=18676</guid>

					<description><![CDATA[Today we are proposing you a guest post by Hubert Stefani, Chief Innovation Officer and Cofounder of Novagen Conseil As data consultant experts and heavy Apache Spark users, we felt honoured to become early adopters of OVHcloudData Processing. As a first use case to test this offering, we chose our quality assessment process. As a [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fimproving-the-quality-of-data-with-apache-spark%2F&amp;action_name=Improving%20the%20quality%20of%20data%20with%20Apache%20Spark&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p><em>Today we are proposing you a guest post by</em> Hubert Stefani, Chief Innovation Officer and Cofounder of <a href="http://www.novagen.tech/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Novagen Conseil</a></p>
</div></div>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2020/09/IMG_0269-1024x537.png" alt="Improving the quality of data with Apache Spark" class="wp-image-19307" width="768" height="403" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0269-1024x537.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0269-300x157.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0269-768x403.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0269.png 1200w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p>As data consultant experts and heavy Apache Spark users, we felt honoured to become early adopters of <a href="https://www.ovhcloud.com/en-ie/public-cloud/data-processing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloudData Processing</a>. As a first use case to test this offering, we chose our quality assessment process.</p>



<p>As a data consultancy company based in Paris, we build complete and innovative data strategies for our large corporate and public customers: the top fortune banks, public authorities, retailers, fashion industry, transportation leaders etc. We offer them huge scale BI, data lake creation and management, business innovation with data science. Within our Data Lab, we select the best-in-class technology and create what we call ‘boosters’ ie ready to-deploy or customized data assets.</p>



<p>When it comes to selecting a new technology solution, we have the following check list:</p>



<ul class="wp-block-list"><li><strong>Innovation and evolutivity</strong>: depth of functionalities, additional value and usability</li><li><strong>Performance and cost-effectiveness</strong>: intrinsic performances, but also technical architectures that adapt to customer needs</li><li><strong>Open standards and governance</strong>: to support our customers’ cloud or multi-cloud strategies, we choose to rely on open standards to deploy on different targets and preserve reversibility.</li></ul>


<div class="lazyblock-youtube-gdpr-compliant-Z2pdIhN wp-block-lazyblock-youtube-gdpr-compliant"><script type="module">
  import 'https://blog.ovhcloud.com/wp-content/assets/ovhcloud-gdrp-compliant-embedding-widgets/src/ovhcloud-gdrp-compliant-spreaker.js';
</script>
      
      <ovhcloud-gdrp-compliant-spreaker
          spreaker=""
          debug></ovhcloud-gdrp-compliant-spreaker> 

</div>


<h3 class="wp-block-heading"> Apache Spark, our Swiss Army knife</h3>



<p>About a month ago OVHcloud’s Data and AI Product Manager, Bastien Verdebout approached us to test its new product OVHcloud Data Processing, built on top of Apache Spark. The answer was of course yes!</p>



<p>One of the reasons we felt so eager to discover this data processing as a service solution was that we have an extensive usage of Apache Spark; it’s our our Swiss Army knife to process data.</p>



<ul class="wp-block-list"><li>It works on extremely high scale of data,</li><li>It meets the needs of data engineering and data science,</li><li>It allows the processing of data at rest and data streaming</li><li>It’s the de facto standard for data workloads on-premises and in the Cloud,</li><li>It offers built-in APIs for Python, Scala, Java and R.</li></ul>



<p>We have progressively developped software assets on top of Apache Spark to address recurring challenges such as:</p>



<ul class="wp-block-list"><li>ETL processing in data lake environnements,</li><li>Quality KPIs on top of data lake sources,</li><li>Machine Learning algorithm for Natural Language Processing, Time Series predictions&#8230;</li></ul>



<h3 class="wp-block-heading">The ideal use case: data quality assessment</h3>



<p>We have considered the following charateristics of<strong> OVHCloud Data processing</strong>:</p>



<ul class="wp-block-list"><li>Processing engine built on top of<strong> Apache Spark 2.4.3</strong></li><li>Jobs start after <strong>a few seconds</strong> (vs minutes to launch a cluster)</li><li>Ability to<strong> adjust power dedicated to different Spark jobs</strong>: start with low power (1 driver and 1 executor with 4 cores and 8Gb of memory) to high scale processing (potential hundreds of cores and Gb of memories)</li><li>A full <strong>Compute/Storage separation</strong> aligned with <strong>standard of cloud architectures</strong>, including S3 APIs to access data stored in Object Storage layer. &nbsp; </li><li>Jobs execution and monitoring through <strong>Command Line Interface</strong> and <strong>API</strong>&nbsp;</li></ul>



<p>These characteristics led us to choose our quality assessment process as an ideal use case which requires both interactivity and adjustable compute resources to deliver quality KPIs through Spark processes.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="752" src="https://www.ovh.com/blog/wp-content/uploads/2020/09/IMG_0268-1024x752.png" alt="Why we need Spark as a Service" class="wp-image-19299" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0268-1024x752.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0268-300x220.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0268-768x564.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/09/IMG_0268.png 1497w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"> OVHCloud Data Processing at work</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="960" height="540" src="https://www.ovh.com/blog/wp-content/uploads/2020/07/image-blog-post-Novagen-2.png" alt="" class="wp-image-18981" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-2.png 960w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-2-300x169.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-2-768x432.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></figure>



<p>The corresponding command generated by our software is:</p>



<pre class="wp-block-code"><code class="">./ovh-spark-submit --projectid ec7d2cb6da084055a0501b2d8d8d62a1 \
  --class tech.novagen.spark.Launcher --driver-cores 4 --driver-memory 8G \
  --executor-cores 4 --executor-memory 8G --num-executors 5 \ 
  swift://sparkjars/QualitySparkExecutor-1.0-spark.jar --apiServer=5.1.1.2:80</code></pre>



<p>We have a command which is quite similar to a usual spark-submit, except for the jar path, which requires the binary to be in an Object Storage bucket that we access with swift url specification. (NB: this command could have been created with a call to the OVHCloud Data Processing API).</p>



<p>Starting from this point, we can now fine tune our process portfolio and play with the allocation of different power with little limitation (except for the quotas assigned to any public cloud project).</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="960" height="540" src="https://www.ovh.com/blog/wp-content/uploads/2020/07/image-blog-post-Novagen-3.png" alt="" class="wp-image-18982" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-3.png 960w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-3-300x169.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-3-768x432.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></figure>



<h2 class="wp-block-heading"> Real-time display of job logs</h2>



<p>In the end, for tuning and post-mortem job analysis, we can take advantage of the saved log files. It is noteworthy that OVHcloud Data Processing offers a real time display of job logs which is very convenient and provides a complementary supervision through Grafana dashboards.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="960" height="540" src="https://www.ovh.com/blog/wp-content/uploads/2020/07/image-blog-post-Novagen-4.png" alt="" class="wp-image-18983" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-4.png 960w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-4-300x169.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-4-768x432.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></figure>



<p>This is a first yet significant test of <a href="https://www.ovhcloud.com/en-ie/public-cloud/data-processing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud Data Processing</a>; so far, it proved an excellent match with the Novagen quality process use case and allowed us to validate several crucial points when it comes to testing a new data solution:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="960" height="540" src="https://www.ovh.com/blog/wp-content/uploads/2020/07/image-blog-post-Novagen-5.png" alt="" class="wp-image-18984" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-5.png 960w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-5-300x169.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/image-blog-post-Novagen-5-768x432.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>This is the beginning of this product, and we will have a close look at the upcoming functionalities. The OVHCloud team unveiled part of its roadmap, and it looks really promising!</p><cite>Hubert Stefani, Chief Innovation Officer of Novagen Conseil</cite></blockquote>



<p></p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fimproving-the-quality-of-data-with-apache-spark%2F&amp;action_name=Improving%20the%20quality%20of%20data%20with%20Apache%20Spark&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Do you need to process your data? Try the new OVHcloud Data Processing service!</title>
		<link>https://blog.ovhcloud.com/try-the-new-ovhcloud-data-processing-service/</link>
		
		<dc:creator><![CDATA[Mojtaba Imani]]></dc:creator>
		<pubDate>Wed, 22 Jul 2020 12:55:45 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apache Spark]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Cluster Computing]]></category>
		<category><![CDATA[Data Platform]]></category>
		<category><![CDATA[Data Processing]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[OVHcloud]]></category>
		<guid isPermaLink="false">https://www.ovh.com/blog/?p=18748</guid>

					<description><![CDATA[One of the data services of OVHcloud is called OVHcloud Data Processing (ODP). It is a service that allows you to submit a processing job without caring about the cluster behind it. You just have to specify the ressources you want to use for your job, and the service will abstract the cluster creation, and destroy it for you as soon as your job is finished. In other words, you don’t have to think about clusters any more. Decide how much resources you need to process your data in the most efficient way for you and let OVHcloud Data Processing do the rest.<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Ftry-the-new-ovhcloud-data-processing-service%2F&amp;action_name=Do%20you%20need%20to%20process%20your%20data%3F%20Try%20the%20new%20OVHcloud%20Data%20Processing%20service%21&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<p>Today, we are generating more data than ever. 90 percent of global data has been generated in the last 2 years. By 2025 the amount of data in the world is estimated to reach 175 Zettabyte. In total, people write 500 million tweets per day, and autonomous cars generate 20TB of data every hour. By the year 2025 more than 75 billion IoT devices will be connected to the web, which will all generate data. Nowadays, devices and services that generate data are everywhere. .</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2020/07/DAF95617-1C6B-49FC-A2CD-8346B1E6B9AC-1024x539.jpeg" alt="Do you need to process your data? Try the new OVHcloud Data Processing cloud service!" class="wp-image-18852" width="512" height="270" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/07/DAF95617-1C6B-49FC-A2CD-8346B1E6B9AC-1024x539.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/DAF95617-1C6B-49FC-A2CD-8346B1E6B9AC-300x158.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/DAF95617-1C6B-49FC-A2CD-8346B1E6B9AC-768x404.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/DAF95617-1C6B-49FC-A2CD-8346B1E6B9AC.jpeg 1200w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure></div>



<p>There is also the notion of data exhaust which is the by-product of people&#8217;s online activities. It’s the data that’s generated as a result of someone visiting a website, buying a product or searching for something using a search engine. You may have heard this data described as Metadata.</p>



<p>We will start drowning in a flood of data unless we learn how to swim &#8211; how to benefit from vast amounts of data. To do this we need to be able to process the data for the sake of better decision-making, preventing fraud and danger,&nbsp; inventing better products or even predicting the future. The possibilities are endless.</p>



<p>But how can we process this huge amount of data? For sure, it’s not possible to do it the old fashioned way. We need to upgrade our methods and equipment.</p>



<p>Big data are data sets that have a volume, velocity and variety too large to be processed by a local computer. So what are the requirements for processing “big data”? </p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2020/07/7127B735-8372-4063-97DF-84BF3172E49A.jpeg" alt="Data, data everywhere!" class="wp-image-18850" width="436" height="368" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/07/7127B735-8372-4063-97DF-84BF3172E49A.jpeg 872w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/7127B735-8372-4063-97DF-84BF3172E49A-300x253.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/7127B735-8372-4063-97DF-84BF3172E49A-768x648.jpeg 768w" sizes="auto, (max-width: 436px) 100vw, 436px" /></figure></div>



<h3 class="wp-block-heading">1- Process data in parallel</h3>



<p>Data is everywhere and available in huge quantities. First off, lets apply the old rule: &#8216;Divide and Conquer&#8217;.&nbsp;</p>



<p>Dividing the data means that we will need data and processing tasks to be distributed across several computers. These will need to be set in a cluster, to perform these different tasks in parallel and gain reasonable performance and speed boosts.</p>



<p>Lets assume that you needed to find out whats trending on twitter. You would have to process around 500 million tweets with one computer in one hour. Not so easy now, is it? And how would you benefit if it took a month to process? What is the value in finding the trend of the day, one month later?</p>



<p>Parallelization is more than a “nice to have” feature. It’s a requirement!</p>



<h3 class="wp-block-heading">2- Process data in the cloud</h3>



<p>The second step is to create and manage these clusters in an efficient way.&nbsp;</p>



<p>You have several choices here, like creating clusters with your own servers and managing them by yourself. But that’s time consuming and costs quite a lot as well. It also lacks some features you may wish to use, like flexibility. For these reasons, the cloud appears to be a better and better solution every day for a lot of companies.</p>



<p>The elasticity that cloud solutions provide, helps companies to be flexible and adapt infrastructure to their needs. With data processing, for example, we will need to be able to scale up and down our computing cluster easily to adapt the computing power to the volume of data we want to process according to our constraints (time, costs, etc.).&nbsp;</p>



<p>And then, even if you decide to use a cloud provider, you will have several solutions to choose from, each with their own drawbacks. One of these solutions, is to create a computing cluster over the dedicated servers or public cloud instances and send different processing jobs to the cluster. The main drawback, in this solution, would be that if no processing is done, you’re still paying for the reserved but unused processing resources.&nbsp;</p>



<p>A more efficient way would therefore be to create a dedicated cluster for each processing job, with the right resources for that job, and then delete the cluster after. Each new job would have it’s own cluster, sized as needed, spawned on demand. But this solution would only be feasible if the creation of a computing cluster took but a few seconds and not minutes or hours.</p>



<h4 class="wp-block-heading">Data locality</h4>



<p>When creating a processing cluster, it is also possible to consider data locality. Here, cloud providers usually offer several regions spread across data centers situated in different countries. It has two main benefits: </p>



<p>The first one is not directly linked to data locality but more of a legal point. Depending on where your customers are, and where your data is, you may need to comply with local data privacy laws and regulations. You may need to keep your data in a specific region or country and not be able to process it outside. So, to create a cluster of computers in that region, it is easier to process data while complying with local privacy policies.</p>



<p>The second benefit is, of course, the potential to create your processing clusters in close physical proximity to your data. According to estimations, by the year 2025, almost 50 percent of data in the world will be stored in the cloud. On-premises data storing is in decline. </p>



<p class="has-text-align-center"><img loading="lazy" decoding="async" src="https://lh5.googleusercontent.com/xLg8hqGdVDbuf4AbWODV95LN9DInueit-Lqv6xxjz61lGKJ4ukK7noRAcpiLKrm5To8-ztAstlFqfcq1qZqMerZwg1wYjMcxtQmXvqpwZzVemn9vz1lPowxb8h3CA7O0ug0C_GQa" width="624" height="360"></p>



<p>Therefore, using cloud providers that have several regions gives companies the benefit of having processing clusters near their datas physical location &#8211; this greatly reduces the time (and costs!) it takes to fetch data.</p>



<p>While processing your data in the cloud may not be a requirement per se, its certainly more beneficial than doing it yourself.</p>



<h3 class="wp-block-heading">3- Process data with the most appropriate distributed computing technology</h3>



<p>The third and final step, is to decide how you are going to process your data, meaning with what tools. Again, you could do it by yourself, by implementing a distributed processing engine in a language of your choice. But where&#8217;s the fun in that? (okay, for some of us it might actually be quite fun!)</p>



<p>But it would be astronomically complex. You would need to write code to divide the data into several parts and send each part to a computer in your cluster. Each computer would then process its part of data, and you would need to find a way to retrieve the results of each part and to re-aggregate everything into a coherent result. In short, it would be a lot of work, with a lot of debugging.&nbsp;</p>



<h4 class="wp-block-heading">Apache Spark</h4>



<p>But there are technologies that have been developed specifically for this purpose. They distribute the data and processing tasks automatically and retrieve the results for you. Currently, the most popular distributed computing technology, especially in relation to Data Science subjects, is Apache Spark.</p>



<p>Apache Spark is an open-source, distributed, cluster-computing framework. It is much faster than the previous one, Hadoop MapReduce, thanks to features like in-memory processing and lazy evaluation.</p>



<p>Apache Spark is the leading platform for large-scale SQL, batch processing, stream processing and machine learning. For coding in Apache Spark, you have the option of using different programming languages (including Java, Scala, Python, R and SQL). It can run locally in a single machine or in a cluster of computers to distribute its tasks.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/tHvP_t-ZFlfnCy00xVoj6hu9o_SPWa3b2Wl9O-CdRKXOw8ZF3fDqr9BnDppvAfgPu34wi_eRg4mRnBYbCcvdqK9SxHaV7vAh_stEbp4yuxIUpnujmf24gA3tADPdUNxjdUXSoyUs" alt=""/></figure>



<p>As you can see in the google trends data chart above, there are alternatives. But Apache Spark has definitely established itself as the leader in distributed computing tools.</p>



<h3 class="wp-block-heading">OVHcloud Data Processing (ODP)</h3>



<p>OVHcloud is the leader of European hosting and cloud providers with a wide range of cloud services like public and private cloud, managed Kubernetes and cloud storage. But besides all the hosting and cloud services, OVHcloud also provides a range of big data analytics and artificial intelligence services as well as platforms. </p>



<p>One of the data services offered by OVHcloud is OVHcloud Data Processing (ODP). It is a service that allows you to submit a processing job without worrying about the cluster behind it. You just have to specify the resources you need for the job and the service will abstract the cluster creation, and destroy it for you as soon as your job finishes. In other words, you don’t have to think about clusters any more. Decide on how many resources you will need to process your data in an efficient way, and then let OVHcloud Data Processing do the rest.&nbsp;</p>



<h4 class="wp-block-heading">On-demand, job-specific Spark clusters</h4>



<p>The service will deploy a temporary, job-specific Apache Spark Cluster, then configure and secure it automatically. You don’t need to have any prior knowledge or skills related to the cloud, networking, cluster management systems, security, etc. You only have to focus on your processing algorithm and Apache Spark code.</p>



<p>This service will download your Apache Spark code from one of your Object Storage containers, and ask you how much RAM and CPU cores you would like your job to use. You will also have to specify the region you want the processing to take place in. Last but not least, you will then have to choose the Apache Spark version you want to use to run your code. The service will then launch your job within a few seconds, according to the specified parameters until your job’s completion. Nothing else to do on your part. No cluster creation, no cluster destruction. Just focus on your code.</p>



<p>Your local computer resources no longer limit the amount of data you can process. You can run any number of processing jobs in parallel in any region and any version of Spark. Its also very fast and very easy.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6-1024x813.jpeg" alt="OVHcloud Data Processing" class="wp-image-18856" width="512" height="407" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6-1024x813.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6-300x238.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6-768x610.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/07/EF2587E4-9E30-4C3B-A6E1-0EAF3FF8F8F6.jpeg 1227w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure></div>



<h3 class="wp-block-heading">How does it work ?</h3>



<p>On your side You just need to:&nbsp;</p>



<ol class="wp-block-list"><li>Create a container in OVHcloud Object Storage and upload the Apache Spark code and any other required files to this container. Be careful not to put your data in the same container as well, as the whole container will be downloaded by the service.</li><li>You then have to define the processing engine (like Apache Spark) and its version, as well as the geographical region and the amount of resources (CPU cores, RAM and number of worker nodes) you need. There are three different ways to execute this (OVHcloud Control Panel, API or ODP CLI)</li></ol>



<p>These are different steps that happen when you run a processing job in OVHcloud Data Processing (ODP) platform: <strong>&nbsp;</strong></p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<ol class="wp-block-list"><li>ODP will take over and handle the deployment and execution of your job according to the specifications that you defined.</li><li>Before starting your job, ODP will download all files that you uploaded in the specified container.</li><li>Next, ODP will run your job in a dedicated environment, created specifically for your job. Apart from a limitation on the available ports (list <a href="https://docs.ovh.com/gb/en/data-processing/capabilities/" data-wpel-link="exclude">available here</a>), your job can then connect to any data source (databases, object storage, etc) to read or write data (as long as they are reachable through the Internet)</li><li>When the job is complete, ODP stores the execution output logs to your Object Storage and then deletes the whole cluster immediately.</li><li>You will be charged for the amount of resources you specified and only for the duration of your job computation, on a per-minutes basis.</li></ol>
</div></div>



<h3 class="wp-block-heading">Different ways to submit a job?</h3>



<p>There are three different ways that you can submit a processing job to ODP, depending on your requirements. These three ways are OVHcloud Manager, OVHcloud API and CLI (Command Line Interface).&nbsp;</p>



<h4 class="wp-block-heading">1. OVHcloud Manager</h4>



<p>To submit a job with OVHcloud Manager you need to go to OVHcloud.com and login with your OVHcloud account (or create one if neccessary). Then go to the “Public Cloud” page and select the “Data Processing” link on the left panel and submit a job by clicking on “Start a new job”.</p>



<p>Before submitting a job you need to create a container in OVHcloud Object Storage by clicking on “Object Storage” link on the left panel and upload your Apache Spark code and any other required files.&nbsp;</p>



<h4 class="wp-block-heading">2. OVHcloud API&nbsp;</h4>



<p>You can submit a job to ODP by using OVHcloud API. For more information, you can see the OVHcloud API web page <a href="https://api.ovh.com/" data-wpel-link="exclude">https://api.ovh.com/</a>. You can create job submit automation by using ODP API.&nbsp;</p>



<h4 class="wp-block-heading">3. ODP CLI (Command Line Interface)&nbsp;</h4>



<p>ODP has an open source Command Line Interface that you can find in OVH public GitHub at <a href="https://github.com/ovh/data-processing-spark-submit" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://github.com/ovh/data-processing-spark-submit</a>). By using CLI, you can upload your files and codes and create your Apache Spark cluster together with just one command.&nbsp;</p>



<h3 class="wp-block-heading">Some ODP benefits</h3>



<p>You can either always run your processing tasks in your local computer, or you can create an Apache Spark cluster in your local premises with any cloud provider. This means you can manage that cluster yourself or using similar services from other competitors. But ODP has several benefits, it is good to have them in your mind when deciding on a solution:</p>



<ul class="wp-block-list"><li><strong>No cluster management or configuration</strong> skills or experience is needed.</li><li><strong>Not limited by resources</strong> and easy and fast. (The only limit is your cloud account quota)&nbsp;</li><li><strong>Pay as you go </strong>model with easy pricing and no hidden cost. (per-minutes billing)</li><li><strong>Per job resource definition</strong> (no more resources lost compared to a mutualised cluster)&nbsp;</li><li><strong>Ease of managing Apache Spark version </strong>(You select the version for each job and you can even have different jobs with different versions of the Apache Spark at the same time)&nbsp;</li><li><strong>Region</strong> <strong>selection</strong> (You can select different regions based on your data locality or data privacy policy)</li><li><strong>Start a Data Processing job</strong> <strong>in just a few seconds</strong></li><li><strong>Real-time logs </strong>(when your job is running, you will receive <strong>real-time logs</strong> in your Customer Panel)</li><li><strong>Full output log will be available just after finishing the job </strong>(some competitors take minutes to deliver logs to you)</li><li><strong>Job submit automation</strong> (by using ODP API or CLI)</li><li><strong>Data Privacy </strong>(OVHcloud is European company and all customers are strictly protected by European GDPR)</li></ul>



<h3 class="wp-block-heading">Conclusion</h3>



<p>With the advance of new technologies and devices, we are flooded with data. More and more, it is essential for businesses and for academic research to process data sets and understand where the value is. By providing the OVHcloud Data Processing (ODP) service, our goal is to provide you with one of the easiest and most efficient platforms to process your data. Just focus on your processing algorithm and ODP will handle the rest for you.</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Ftry-the-new-ovhcloud-data-processing-service%2F&amp;action_name=Do%20you%20need%20to%20process%20your%20data%3F%20Try%20the%20new%20OVHcloud%20Data%20Processing%20service%21&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to run massive data operations faster than ever, powered by Apache Spark and OVH Analytics Data Compute</title>
		<link>https://blog.ovhcloud.com/how-to-run-massive-data-operations-faster-than-ever-powered-by-apache-spark-and-ovh-analytics-data-compute/</link>
		
		<dc:creator><![CDATA[Mojtaba Imani]]></dc:creator>
		<pubDate>Mon, 27 May 2019 11:48:26 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Apache Spark]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Machine learning]]></category>
		<category><![CDATA[Spark]]></category>
		<guid isPermaLink="false">https://blog.ovh.com/fr/blog/?p=15512</guid>

					<description><![CDATA[If you&#8217;re reading this blog for the first time, welcome to the ongoing data revolution! Just after the industrial revolution came what we call the digital revolution, with millions of people and objects accessing a world wide network – the internet – all of them creating new content, new data. Let&#8217;s think about ourselves&#8230; We [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fhow-to-run-massive-data-operations-faster-than-ever-powered-by-apache-spark-and-ovh-analytics-data-compute%2F&amp;action_name=How%20to%20run%20massive%20data%20operations%20faster%20than%20ever%2C%20powered%20by%20Apache%20Spark%20and%20OVH%20Analytics%20Data%20Compute&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;re reading this blog for the first time, welcome to the ongoing data revolution! Just after the industrial revolution came what we call the digital revolution, with millions of people and objects accessing a world wide network – the internet – all of them creating new content, new data.</p>



<p>Let&#8217;s think about ourselves&#8230; We now have smartphones taking pictures and sending texts, sports watches collecting data about our health, Twitter and Instagram accounts generating content, and many other use cases. As a result, data in all its forms is exponentially exploding all over the world.</p>



<p><strong>90% of the total data in the world was generated during last two years.</strong> According to IDC, the amount of data in the world is set to grow from 33 zettabytes in 2018 to 175 zettabytes in 2025. When we do a basic division, this represents approximately 34TB of data per person, including all countries and topologies.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="960" height="461" src="/blog/wp-content/uploads/2019/05/568E870E-7DBF-4918-A367-FD5F4ED67FA5.png" alt="Annual size of the global datasphere" class="wp-image-15518" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/568E870E-7DBF-4918-A367-FD5F4ED67FA5.png 960w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/568E870E-7DBF-4918-A367-FD5F4ED67FA5-300x144.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/568E870E-7DBF-4918-A367-FD5F4ED67FA5-768x369.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></figure></div>



<p>Impressive, isn&#8217;t it?</p>



<p>This opens up a lot of new concepts and usages, but also, of course, new challenges. How do we store this data? How do we keep it secure and private? And the last but not least, how do we get value from this data, as this new giant datasphere needs to be processed? In other words, it needs to be used to extract values.</p>



<p>Potential results and applications are infinite: improving the agricultural field by analysing weather forecasts, understanding customers deeply, researching new &nbsp;vaccines, redefining urban environments by analysing traffic jams&#8230; The list goes on.</p>



<p>It seems easy at first, but it requires three main elements:</p>



<ol class="wp-block-list"><li>First, we need <strong>data</strong>. Sometimes these data sources can be heterogeneous (text, audio, video, pictures etc.), and we may need to &#8220;clean&#8221; them before they can be used efficiently.</li><li>Next, we need <strong>compute power</strong>. Think again about ourselves again: our brains can perform a lot of calculations and operations, but it&#8217;s impossible to split one task between multiple brains. Ask a friend to do multiplication with you, and you&#8217;ll see this for yourself. With computers though, anything is possible! We are now able to parallelise calculations across multiple computers (i.e. a cluster), allowing us to get the results we want faster than ever.</li><li>Last, we need a <strong>framework</strong>, which is a bunch of tools that allow you to use this datalake and compute power efficiently.</li></ol>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1050" height="499" src="/blog/wp-content/uploads/2019/05/9B2BFE2E-E888-4696-8ADA-83FD9DE4B732.png" alt="Apache Spark &amp; OVH Analytics Data Compute" class="wp-image-15531" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/9B2BFE2E-E888-4696-8ADA-83FD9DE4B732.png 1050w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/9B2BFE2E-E888-4696-8ADA-83FD9DE4B732-300x143.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/9B2BFE2E-E888-4696-8ADA-83FD9DE4B732-768x365.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/9B2BFE2E-E888-4696-8ADA-83FD9DE4B732-1024x487.png 1024w" sizes="auto, (max-width: 1050px) 100vw, 1050px" /></figure></div>



<p>How do we build this? Let&#8217;s find out together!</p>



<h3 class="wp-block-heading">Step 1: Find the right framework</h3>



<p>As you&#8217;ll have seen from the title of this post, it&#8217;s not a secret that&nbsp;<strong>Apache Spark</strong> is our preferred tool at OVH.</p>



<p>We chose Apache Spark because it is an open-source distributed, general-purpose cluster-computing framework that has the largest open-source community in the world of big data, and it is up to 100 times faster than the previous cluster computing framework, Hadoop MapReduce, thanks to nice features like in-memory processing and lazy evaluation. Apache Spark is the leading platform for large-scale SQL, batch processing, stream processing and machine learning, with an easy-to-use API, and for coding in Spark, you have the option of using different programming languages, including&nbsp;<strong>Java, Scala, Python, R and SQL</strong>.</p>



<p>Other tools, like Apache Flink and Beam, look very promising as well, and will be part of our upcoming services.</p>



<p>The different components of Apache Spark are:</p>



<ul class="wp-block-list"><li><strong>Apache Spark Core</strong>, which provides in-memory computing, and forms the basis of other components</li><li><strong>Spark SQL</strong>, which provides structured and semi-structured data abstraction</li><li><strong>Spark Streaming</strong>, which performs streaming analysis using RDD (Resilient Distributed Datasets) transformation</li><li><strong>MLib</strong> <strong>(Machine Learning Library)</strong>, which is a distributed machine learning framework above Spark</li><li><strong>GraphX</strong>, which is a distributed graph processing framework on top of Spark</li></ul>



<h4 class="wp-block-heading">The Apache Spark architecture principle</h4>



<p>Before going further, let&#8217;s take the time to understand how Apache Spark can be so fast by reviewing its workflow.</p>



<p>Here is a sample code in Python, where we will read a file and count the number of lines with the letter &#8216;a&#8217;, and the number of lines with the letter &#8216;b&#8217;.</p>



<pre class="wp-block-code language-python"><code>from pyspark import SparkContext
 
logFile = "YOUR_SPARK_HOME/README.md"  # Should be some file on your system
sc = SparkContext("local", "Simple App")
logData = sc.textFile(logFile).cache()
 
numAs = logData.filter(lambda s: 'a' in s).count()
numBs = logData.filter(lambda s: 'b' in s).count()
 
print("Lines with a: %i, lines with b: %i" % (numAs, numBs))
 
sc.stop()</code></pre>



<p>This code is part of your Spark Application, also known as your Driver Program.</p>



<p>Each action (<code>count()</code>, in our example) will trigger jobs. Apache Spark will then split your work into multiple tasks that can be computed separately.</p>



<p>Apache Spark stores data in RDD (Resilient Distributed Datasets), which is an immutable distributed collection of objects, and then divides it into different logical partitions, so it can process each part in parallel, in different nodes of the cluster.</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2019/05/B31D0624-AA68-4A9D-B74B-73120149B78D-1024x530.png" alt="" class="wp-image-15530" width="768" height="398" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/B31D0624-AA68-4A9D-B74B-73120149B78D-1024x530.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/B31D0624-AA68-4A9D-B74B-73120149B78D-300x155.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/B31D0624-AA68-4A9D-B74B-73120149B78D-768x398.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/B31D0624-AA68-4A9D-B74B-73120149B78D-1200x621.png 1200w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/B31D0624-AA68-4A9D-B74B-73120149B78D.png 2048w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure></div>



<p><strong>Task&nbsp;</strong><b>parallelism</b>&nbsp;and <strong>in-memory computing</strong> are the key to being ultra-fast here. You can go deeper in the <a href="https://spark.apache.org/docs/latest/cluster-overview.html" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">official documentation</a>.</p>



<h3 class="wp-block-heading">Step 2: Find the required compute power</h3>



<p>We now have the tools, but they need compute power (we are mainly talking about CPU and RAM memory) to perform such massive operations, and this has to be scalable.</p>



<p>Lets talk about creating a cluster of computers. The old-fashioned way is to buy physical computers and the network equipment to connect them together, installing the OS and all required software and packages, installing Apache Spark on all the nodes, then configuring Spark&#8217;s standalone cluster management system and connecting all workers to the master node.</p>



<p>Obviously, this isn&#8217;t the best way. It takes a lot of time and needs some skilled engineers to do all the stuff. Also, assume that you did this difficult job and then finished your big data processing&#8230; What are you going to do with the cluster after that? Just leave it there or sell it on the second-hand market? What if you decided to perform some larger-scale processing and needed to add more computers to your cluster? You&#8217;d need to do all the software and network installations and configuration for new nodes.</p>



<p>A better way of creating a cluster is <strong>to use a Public Cloud provider</strong>. This way, you will have your servers deployed very quickly, only pay what you consume, and can delete the cluster after finishing your processing task. You&#8217;ll also be able to access your data much more easily than you would with an on-premises solution. It&#8217;s not a coincidence that, according to IDC,&nbsp;<strong>half of the total data in the world will be stored in the public cloud by 2025</strong> [3].</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="960" height="554" src="/blog/wp-content/uploads/2019/05/AF0EE15E-82CF-490D-B872-0AEE36CDC3F1.png" alt="Where is the data stored?" class="wp-image-15519" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/AF0EE15E-82CF-490D-B872-0AEE36CDC3F1.png 960w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/AF0EE15E-82CF-490D-B872-0AEE36CDC3F1-300x173.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/AF0EE15E-82CF-490D-B872-0AEE36CDC3F1-768x443.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></figure></div>



<p>But the main problem persists: you still need to install all the software and packages on each of the servers in your virtual cluster, then configure the network and routers, take security measures and configure the firewall, and finally, install and configure the Apache Spark cluster management system. It will take time and be prone to errors, and the longer it takes, the more you will be charged due to having those servers deployed in your cloud account.</p>



<h3 class="wp-block-heading">Step 3: Take a rest, and discover OVH Analytics Data Compute</h3>



<p>As we&#8217;ve just seen, building a cluster can be done manually, but it&#8217;s a boring and time-consuming task.</p>



<p>At OVH, we solved this problem by introducing a cluster-computing service called <strong>Analytics Data Compute</strong>, which will create a 100% ready, fully installed and configured Apache Spark cluster on the fly. By using this service, you don&#8217;t need to waste your time on server creation, network, firewalls and security configurations on each node of your cluster. You just focus on your tasks, and the compute cluster you need will appear as if by magic!</p>



<p>In fact, there&#8217;s nothing really magic about it&#8230; just automations made by OVH to simplify both our our life and yours. We needed this kind of tool internally for large computations, and then crafted it into a product for you.</p>



<p>The concept is quite simple: you launch an Apache Spark job as normal through the command line or API, and a full Apache Spark cluster will be built on the fly, just for your job. Once the processing is done, we delete the cluster and you&#8217;re invoiced for the exact resources that were used (on an hourly basis, for now).</p>



<p>This way, we are able to rapidly scale from one to thousands of virtual machines, allowing you to use thousands of CPU cores and thousands GB of memory RAM.</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://www.ovh.com/blog/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-1024x662.png" alt="" class="wp-image-15537" width="768" height="497" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-1024x662.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-300x194.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-768x496.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385-1200x775.png 1200w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD83F4F3-4858-414A-A50E-362477780385.png 2048w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure></div>



<p>To use Analytics Data Compute, you need to download a small, open-source client software package from OVH repository, called <a href="https://repository.dataconvergence.ovh.com/repository/binary/ovh-spark-submit/mac/ovh-spark-submit" data-wpel-link="exclude">ovh-spark-submit</a>.</p>



<p>This client was made with a view to keeping the official spark-submit command line syntax of Apache Spark. Most of the options and syntax are the same, although the OVH version has some more options related to infrastructure and cluster management. So, this way, you simply request to run your code over your data in a cluster of specific nodes, and the tool will create a cluster with the specified number of nodes, install all packages and software (including Spark and its cluster management system), and then configure the network and firewall. After creating the cluster, OVH Analytics Data Compute will run your Spark code over it, return the result to the user, and then delete the whole thing once it&#8217;s done. Much more efficient!</p>



<h3 class="wp-block-heading">Let&#8217;s get it started&#8230; Feel the power!</h3>



<p>The good news is that If you are already familiar with the spark-submit command line of Apache Spark, you don&#8217;t need to learn any new command line tools, as ovh-spark-submit uses almost the exact same options and commands.</p>



<p>Let&#8217;s look at an example, where we&#8217;ll calculate the famous Pi number&#8217;s decimals, first with the original Apache Spark syntax, and then with the ovh-spark-submit client:</p>



<pre class="wp-block-code language-bash"><code>./spark-submit \
	--class org.apache.spark.examples.SparkPi \
	--total-executor-cores 20 \
	SparkPI.jar 100

./ovh-spark-submit \
	--class org.apache.spark.examples.SparkPi \
	--total-executor-cores 20 \
	SparkPI.jar 100</code></pre>



<p>You can see that the only difference is &#8220;ovh-&#8221; at the beginning of the command line, while the rest is the same. And by running the <code>ovh-spark-submit</code> command, you will run the job over a cluster of computers with 20 cores instead of just your local computer. This cluster is fully dedicated to this job, as it will be created after running the command, then deleted once it&#8217;s finished.</p>



<p>Another example is the popular word-count use case. Let&#8217;s assume you want to calculate the number of words in a big text file, using a cluster of 100 cores. The big text file is stored in OpenStack Swift storage (although it could be any online or cloud storage system). The Spark code for this calculation in Java looks like this:</p>



<pre class="wp-block-code language-java"><code>JavaRDD&lt;String> lines = spark.read().textFile("swift://textfile.abc/novel.txt").javaRDD();

JavaRDD&lt;String> words = lines.flatMap(s -> Arrays.asList(SPACE.split(s)).iterator());
JavaPairRDD&lt;String, Integer> ones = words.mapToPair(s -> new Tuple2&lt;>(s, 1));
JavaPairRDD&lt;String, Integer> counts = ones.reduceByKey((i1, i2) -> i1 + i2);
List&lt;Tuple2&lt;String, Integer>> output = counts.collect();</code></pre>



<p>We can select the desired version of Spark as well. For this example, we&#8217;ve selected Spark version 2.4.0, and the command line for running this Spark job looks like this:</p>



<pre class="wp-block-code language-bash"><code>./ovh-spark-submit \
	--class JavaWordCount \
	--total-executor-cores 100 \
	--name wordcount1 \
	--version 2.4.0 \
	SparkWordCount-fat.jar </code></pre>



<p>To create our Spark cluster, we use nodes that have four vCores and 15GB of RAM. Therefore, by running this command, a cluster of 26 servers will be created (one for the master node and 25 for workers), so we will have 25&#215;4=100 vCores and 25&#215;15=375GB of RAM.</p>



<p>After running the command line, you will see the progress of creating the cluster and installing all the required software.</p>



<p>Once the cluster is created, you can take a look at it with the official Spark dashboard, and check if your cluster has all 25 workers up and running:</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="813" height="884" src="/blog/wp-content/uploads/2019/05/3BBC4753-797C-4E99-8DD6-F6E24E4A9B0E.png" alt="" class="wp-image-15522" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/3BBC4753-797C-4E99-8DD6-F6E24E4A9B0E.png 813w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/3BBC4753-797C-4E99-8DD6-F6E24E4A9B0E-276x300.png 276w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/3BBC4753-797C-4E99-8DD6-F6E24E4A9B0E-768x835.png 768w" sizes="auto, (max-width: 813px) 100vw, 813px" /></figure></div>



<p>Also, if you go to the OpenStack Horizon dashboard in your OVH cloud account, you will see all 26 servers:</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="644" src="https://www.ovh.com/blog/wp-content/uploads/2019/05/CD92F627-35E2-42FC-B1F9-740FCC19BA1D-1024x644.png" alt="" class="wp-image-15523" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD92F627-35E2-42FC-B1F9-740FCC19BA1D-1024x644.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD92F627-35E2-42FC-B1F9-740FCC19BA1D-300x189.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD92F627-35E2-42FC-B1F9-740FCC19BA1D-768x483.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD92F627-35E2-42FC-B1F9-740FCC19BA1D-1200x755.png 1200w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/CD92F627-35E2-42FC-B1F9-740FCC19BA1D.png 1311w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>The Apache Spark job will be executed according to the java code-in-jar file that we sent to Spark cluster, and the results will be shown on the screen. Also, the results and the complete log files will be saved in both the local computer and the user&#8217;s Swift storage.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="212" height="372" src="/blog/wp-content/uploads/2019/05/336DF00D-6802-419F-90AB-E0C2E81B6A8A.png" alt="" class="wp-image-15524" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/336DF00D-6802-419F-90AB-E0C2E81B6A8A.png 212w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/336DF00D-6802-419F-90AB-E0C2E81B6A8A-171x300.png 171w" sizes="auto, (max-width: 212px) 100vw, 212px" /></figure></div>



<p>Once you&#8217;re done, you will see the message that cluster has been deleted, and the addresses of the logs in OpenStack Swift storage and local computer. You can see in the following screenshot that creating a fully installed and configured Spark cluster with 26 servers took less than five minutes.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="473" src="https://www.ovh.com/blog/wp-content/uploads/2019/05/C4313AB6-1E72-468F-A48E-60B71D75873F-1024x473.png" alt="" class="wp-image-15525" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/05/C4313AB6-1E72-468F-A48E-60B71D75873F-1024x473.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/C4313AB6-1E72-468F-A48E-60B71D75873F-300x138.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/C4313AB6-1E72-468F-A48E-60B71D75873F-768x354.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/05/C4313AB6-1E72-468F-A48E-60B71D75873F-1200x554.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<h3 class="wp-block-heading">A bit more about OVH Analytics Data Compute</h3>



<p>If you are curious, here are some additional details about Analytics Data Compute:</p>



<ul class="wp-block-list"><li>Everything is built on the OVH Public Cloud, which means everything is powered by OpenStack.</li><li>You can choose the Apache Spark version you want to run, directly in the command line. You can also, of course, run multiple clusters with different versions.</li><li>A new dedicated cluster will be created for each request, and will be deleted after finishing the job. This means there are no security or privacy issues caused by having multiple users for a single cluster.</li><li>You have the option of keeping your cluster after finishing the job. If you add the <em>keep-infra</em> option to the command line, the cluster will not be deleted when you&#8217;re done. You can then send more jobs to that cluster or view more details from the logs.</li><li>Your cluster computers are created in your own OVH Public Cloud project, so you have full control of your cluster computers.</li><li>Results and output logs will be saved in Swift on your OVH Public Cloud project. Only you will have access to them, and you will also have the full history of all your Spark jobs saved in a folder, organised by date and time of execution.</li><li>Input and output of data can be any source or format. There is no vendor lock-in when it comes to storage, so you are not forced to only use OVH cloud storage to store your data, and can use any online or cloud storage platform on the public internet.</li><li>You can access your Cluster and Spark dashboards and web UIs via HTTPS.</li></ul>



<h4 class="wp-block-heading">Let&#8217;s focus on cluster management systems</h4>



<p>In Apache Spark clusters, there are independent processes on all cluster nodes called &#8220;executors&#8221;, which are coordinated by the driver program. For allocating resources of cluster across applications, the driver program should connect to a cluster management system, after which it will send application code and tasks to executors.</p>



<p>There are several options when it comes to cluster management systems, but to keep things fast and simple, we selected the Spark standalone cluster management system. This offers our users the freedom to choose any version of Spark, and also makes cluster installation faster than the other options. If, for example, we had selected Kubernetes as our cluster management system, our users would have been limited to Spark versions 2.3 or above, and cluster installation would have been more time-consuming. Alternatively, if we wanted to deploy a ready-to-use Kubernetes cluster (like OVH Managed Kubernetes), then we would have lost our scalability, because the infrastructure of our Apache Spark cluster would have been inherently limited by the infrastructure of the Kubernetes cluster. But with our current design, users can have an Apache Spark cluster with as many servers as they like, and the freedom to scale easily.</p>



<h3 class="wp-block-heading">Try it yourself!</h3>



<p>To get started with Analytics Data Compute, you just need to create a cloud account at www.ovh.com, then download the ovh-spark-submit software, and run it as described in <a href="https://docs.ovh.com/gb/en/analytics-data-compute/labs/data-compute/getting-started-with-analytics-data-compute/" data-wpel-link="exclude">the OVH documentation page</a>. Also, if you participate in <a href="https://labs.ovh.com/analytics-data-compute" data-wpel-link="exclude">a short survey on our OVH Labs page</a>, you will receive a voucher, which will let you test Analytics Data Compute first-hand, with 20 euros of free credit.</p>



<p>If you have any questions or would like further explanation, our team is available through our Gitter channel</p>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fhow-to-run-massive-data-operations-faster-than-ever-powered-by-apache-spark-and-ovh-analytics-data-compute%2F&amp;action_name=How%20to%20run%20massive%20data%20operations%20faster%20than%20ever%2C%20powered%20by%20Apache%20Spark%20and%20OVH%20Analytics%20Data%20Compute&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
