<?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>Big Data Archives - OVHcloud Blog</title>
	<atom:link href="https://blog.ovhcloud.com/tag/big-data/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ovhcloud.com/tag/big-data/</link>
	<description>Innovation for Freedom</description>
	<lastBuildDate>Mon, 03 Jul 2023 07:55:45 +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>Big Data Archives - OVHcloud Blog</title>
	<link>https://blog.ovhcloud.com/tag/big-data/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>From 4 days to 15 minutes, a Domain Big Data story</title>
		<link>https://blog.ovhcloud.com/from-4-days-to-15-minutes-a-domain-big-data-story/</link>
		
		<dc:creator><![CDATA[Mathieu Cornic]]></dc:creator>
		<pubDate>Fri, 02 Dec 2022 14:27:31 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Domain names]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=21963</guid>

					<description><![CDATA[In our Domain names 101 series, we explained that one ICANN&#8216;s missions is regulating and providing norms for gTLDs domain names (.com, .net, .info &#8230;). One of these norms is the Registrar Data Escrow program, also known as RDE. To put it simply, registrars have to regularly gather and export some data to a third-party [&#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%2Ffrom-4-days-to-15-minutes-a-domain-big-data-story%2F&amp;action_name=From%204%20days%20to%2015%20minutes%2C%20a%20Domain%20Big%20Data%20story&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>In our <a href="https://blog.ovhcloud.com/domain-names-behind-the-scenes/" data-wpel-link="internal">Domain names 101 series</a>, we explained that one <a href="https://www.icann.org/fr" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">ICANN</a>&#8216;s missions is regulating and providing norms for <a href="https://en.wikipedia.org/wiki/Generic_top-level_domain" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">gTLDs</a> domain names (.com, .net, .info &#8230;). One of these norms is the <a href="https://www.icann.org/resources/pages/registrar-data-escrow-2015-12-01-en" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Registrar Data Escrow program</a>, also known as RDE.</p>



<p>To put it simply, registrars have to regularly gather and export some data to a third-party company. Since the creation of this program, we have used a solution which has worked very well for many years, but has started to face limitations due to the increasing amount of domain name registrations. Indeed, generating one of these weekly exports lasted 4 days! It was time to design a long-term and scalable solution.</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img decoding="async" src="https://blog.ovhcloud.com/wp-content/uploads/2022/11/title-4-days-to-15mins-1-1024x546.jpg" alt="From 4 days to 15 minutes, a Domain Big Data story" class="wp-image-24143" width="800" srcset="https://blog.ovhcloud.com/wp-content/uploads/2022/11/title-4-days-to-15mins-1-1024x546.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/title-4-days-to-15mins-1-300x160.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/title-4-days-to-15mins-1-768x410.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/title-4-days-to-15mins-1.jpg 1162w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Let&#8217;s see together how we went from 4 days of report generation to 15 minutes, a drastic performance improvement of about +38 000%.</p>



<h3 class="wp-block-heading" id="what-is-the-registrar-data-escrow-program">What is the Registrar Data Escrow program ?</h3>



<p>As we are an ICANN accredited registrar, we have to send regularly a copy of our gTLD domain names data to an escrow agent, a neutral third party. This is a protection mechanism in case of registrar failure, accreditation termination, or accreditation relapse without renewal. So the data associated with registered domain names is never at risk of being lost or inaccessible.</p>



<p>In concrete terms, for all gTLD domain names that we manage for our customers, we send encrypted files containing:</p>



<ul class="wp-block-list">
<li>The domain name</li>



<li>The names of the primary and secondary name servers</li>



<li>The expiration date of the domain name</li>



<li>Identity information of the domain name contact and nichandles, which are the registrant, the technical contact, the administrative contact and the billing contact (person or corporation name, postal address, e-mail address and phone/fax number)</li>
</ul>



<p>Authorized escrow agents are listed on the <a href="https://www.icann.org/resources/pages/registrar-data-escrow-2015-12-01-en" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">ICANN website</a>. We chose <a href="https://www.denic.de" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Denic Escrow Services</a>, a European actor, to ensure our compliance with GDPR.</p>



<p>Registrars with at least 400,000 registrations per year are required to deposit a full export once a week, and an incremental the remaining days. For the others, a weekly full export is sufficient. You can find all technical details in the <a href="https://www.icann.org/en/system/files/files/rde-specs-09nov07-en.pdf" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Registrar Data Escrow Specifications</a>.</p>



<p>Basically a report is composed of two types of encrypted files: Domains &amp; Handles (Contacts).</p>



<pre class="wp-block-preformatted"># Domain CSV file
domain,nameserver-1,nameserver-2,expiration-date,registrant-contact,technical-contact,admin-contact,billing-contact
ovhcloud.com,dns.ovh.net,ns.ovh.net,2049-08-01T00:00:00+00:00,EU_contact/123456,EU_xx12345-ovh,EU_xx12345-ovh,EU_xx12345-ovh

# Handle CSV file
handle,name,address-street1,address-street2,address-street3,address-city,address-state,address-postcode,country-name,email,phone,fax
EU_contact/123456,OVH SAS (Klaba Miroslaw),2 Rue Kellermann,"","",ROUBAIX,"",59100,FR,ovhcloud@fake-email.com,+33.123456789,""
EU_xx12345-ovh,OVH SAS (Klaba Miroslaw),2 Rue Kellermann,"","",ROUBAIX,"",59100,FR,ovhcloud@fake-email.com,+33.123456789,""</pre>



<h3 class="wp-block-heading" id="why-4-days-of-generation">Why 4 days of generation ?</h3>



<p>Domain names have been for sale on <a href="https://www.ovhcloud.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud</a> since 2000. This ICANN program is mandatory in the Registrar Accreditation Agreement since 1999, and the last official&nbsp;<a href="https://www.icann.org/en/system/files/files/rde-specs-09nov07-en.pdf" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Registrar Data Escrow Specification</a> document has been published in 2009. This is an old requirement that has been implemented in the early days when our Information System was a full monolith with a few domain names in our databases.</p>



<p>At this time, the report generation had been written using a single Perl script doing simple database requests. Over the years, due to the increase of volume and traffic, new teams, new databases, new subsidiaries and new architectures have been created. Data responsibility was divided into different teams like Domain, DNS and Nichandle/Contact. The internal functioning of the report generation did not change though. Without fundamental refactoring, the time needed to generate the report inherently increased over the years.</p>



<p>It was no big deal while it was working well and ultimately did not last more than 7 days, so that weekly exports did not overlap.</p>



<p>But, in the last 2 years, we went from 2,5 days to 4 days. In this situation, if it fails the last day for any reason, we would be unable to generate and send a new one within the week threshold. In the interim, we also have reached a point where we manage about 5 million of domain names, and we intend to keep growing. We had to anticipate and find a long-term and scalable solution, capable of handling 10 times our current domain name amount.</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img decoding="async" src="https://blog.ovhcloud.com/wp-content/uploads/2022/11/evolution-generation-duration-1024x354.jpg" alt="Evolution of the time for generation of exports" class="wp-image-24149" width="800" srcset="https://blog.ovhcloud.com/wp-content/uploads/2022/11/evolution-generation-duration-1024x354.jpg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/evolution-generation-duration-300x104.jpg 300w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/evolution-generation-duration-768x265.jpg 768w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/evolution-generation-duration.jpg 1260w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading" id="the-internal-data-lake">The internal Data Lake</h3>



<p>In the meantime, over the years, <a href="https://www.ovhcloud.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud</a> built an internal Data Lake, a centralized place where internal production data is replicated. It&#8217;s meant to be a reliable, secured and efficient platform for storing Big Data.</p>



<p>Then, after agreements with our internal data governance team, authorized teams from all <a href="https://www.ovhcloud.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud</a> may use this data for data science. For example, aggregation tables can be used by business teams to make decisions or produce legal documents.</p>



<p><a href="https://www.ovhcloud.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud</a> current Data Lake is based on <a href="https://fr.cloudera.com/products/hdp.html" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Hortworks HDP</a>. On top of this Data Lake, Big Data tools, like <a href="https://spark.apache.org/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Spark</a>, are configured for high performance. Every day, the Big Data tools compute all businesses data to obtain smart and practical aggregation tables.</p>



<p>In this context, as <a href="https://www.ovhcloud.com/fr/domains/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Domain team</a>, we had the perfect replacement platform. Our Data Lake colleagues provide this efficient platform and a set of ready-to-use tools that we can use as a service to solve this Registrar Data Escrow program problematic.</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" src="https://blog.ovhcloud.com/wp-content/uploads/2022/11/RDE_public_database_to_datalake-817x1024.png" alt="RDE public database to datalake" class="wp-image-24153" width="632" height="813"/></figure>



<h3 class="wp-block-heading" id="the-solution-replacement">The solution replacement</h3>



<p>As previously said, the data which is required for the report comes from multiple teams and multi-region databases. As replications are centralized in the Data Lake, we have a single source that we can request, join and normalize easily. Moreover, as we don&#8217;t request the real time production databases anymore, we reduce impact on production performance.</p>



<p>The Data Lake team provides an <a href="https://airflow.apache.org/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Apache Airflow</a> platform where we can schedule <a href="https://spark.apache.org/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Apache Spark</a> scripts through <a href="https://airflow.apache.org/docs/apache-airflow/stable/concepts/dags.html" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Directed Acyclic Graph </a>workflows. Let&#8217;s see that, bit by bit:</p>



<ol class="wp-block-list">
<li>The <em>Apache Spark</em> script is the piece of code that will run in the <em>Spark</em> server, making all the joining and normalization of input data. Execution is massively distributed on <em>Hadoop YARN</em>, so that data is computed and fetched in parallel, assuring a short and constant execution time in the end. <strong>This is the central piece of the performance improvement.</strong></li>



<li>The script execution is included in a <em>Directed Acyclic Graph</em> workflow, besides other steps like concatenation of result files, working directory removal or uploading final report to <em>Hadoop Distributed File System.</em></li>



<li><em>Apache Airflow</em> runs the DAG at the related schedule. It also provides an administration UI, in order to manually run the jobs, display logs and so on.</li>
</ol>



<p> Finally, the concatenated report is fetched from HDFS, syntactically and semantically validated, encrypted and sent to our Escrow Agent.</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" width="1024" height="983" src="https://blog.ovhcloud.com/wp-content/uploads/2022/11/functional-architecture-4-1024x983.png" alt="Functional architecture" class="wp-image-24176" srcset="https://blog.ovhcloud.com/wp-content/uploads/2022/11/functional-architecture-4-1024x983.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/functional-architecture-4-300x288.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/functional-architecture-4-768x737.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/functional-architecture-4-1536x1475.png 1536w, https://blog.ovhcloud.com/wp-content/uploads/2022/11/functional-architecture-4-2048x1967.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<p>We can clearly see the improvement of performance on the full report generation in the following table.</p>



<figure class="wp-block-table"><table><thead><tr></tr></thead></table></figure>



<figure class="wp-block-table"><table><tbody><tr><td></td><td class="has-text-align-left" data-align="left"><strong>Before</strong></td><td class="has-text-align-left" data-align="left"><strong>After</strong></td></tr><tr><th>Generation</th><td class="has-text-align-left" data-align="left">5600 minutes</td><td class="has-text-align-left" data-align="left">13 minutes</td></tr><tr><th>Validation &amp; Encryption</th><td class="has-text-align-left" data-align="left">1 minute</td><td class="has-text-align-left" data-align="left">1 minute</td></tr><tr><th>Upload</th><td class="has-text-align-left" data-align="left">15 seconds</td><td class="has-text-align-left" data-align="left">15 seconds</td></tr><tr><th>TOTAL</th><th class="has-text-align-left" data-align="left">≈4 days</th><th class="has-text-align-left" data-align="left">≈15 minutes</th></tr></tbody></table></figure>



<p>Even though it was pure 20 years legacy, the report generation has been working seamlessly for many years and did the job without us noticing. This is important to say, we should keep normalizing the wait for the right moment to refactor something working, even though it&#8217;s bad looking code.</p>



<p>Due to&nbsp;increasingly bad performances, now was the time to change the paradigm and find the right long-term and efficient solution. We chose to go with Big Data technologies to build something ready to face the future. As it&#8217;s distributed, report generation should take a constant execution time even with a volume increase. This solution should work seamlessly, in turn, for many years.</p>



<p>On the technological side, we can also tell that Spark works really great. By the way, if you did not know, <a href="https://www.ovhcloud.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud</a> provides a ready-to-use <a href="https://www.ovhcloud.com/en/public-cloud/data-processing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Data Processing platform</a> which uses Spark clusters.</p>



<p>Finally, as you can see, this article is an overview of what we built together with <a href="https://www.ovhcloud.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">OVHcloud</a> Data Lake team. But, we did not talk about the Data Lake technologies in details. For more in-depth technical content about Spark, take a look at <a href="https://blog.ovhcloud.com/how-to-run-massive-data-operations-faster-than-ever-powered-by-apache-spark-and-ovh-analytics-data-compute/" data-wpel-link="internal">&#8220;How to run massive data operations faster then ever, powered by Apache Spark and OVHcloud Analytics Data Compute&#8221;</a> and <a href="https://blog.ovhcloud.com/improving-the-quality-of-data-with-apache-spark/" data-wpel-link="internal">&#8220;Improving the quality of data with Apache Spark&#8221;</a> articles&nbsp;🙂</p>
<img 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%2Ffrom-4-days-to-15-minutes-a-domain-big-data-story%2F&amp;action_name=From%204%20days%20to%2015%20minutes%2C%20a%20Domain%20Big%20Data%20story&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>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 loading="lazy" 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="auto, (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 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>



<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 loading="lazy" 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="auto, (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>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>Contributing to Apache HBase: custom data balancing</title>
		<link>https://blog.ovhcloud.com/contributing-to-apache-hbase-custom-data-balancing/</link>
		
		<dc:creator><![CDATA[Pierre Zemb]]></dc:creator>
		<pubDate>Fri, 14 Feb 2020 16:37:19 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[Observability]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">https://www.ovh.com/blog/?p=16524</guid>

					<description><![CDATA[In today&#8217;s blogpost, we&#8217;re going to take a look at our upstream contribution to Apache HBase’s stochastic load balancer, based on our experience of running HBase clusters to support OVHcloud&#8217;s monitoring. The context Have you ever wondered how: we generate the graphs for your OVHcloud server or web hosting package? our internal teams monitor their [&#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%2Fcontributing-to-apache-hbase-custom-data-balancing%2F&amp;action_name=Contributing%20to%20Apache%20HBase%3A%20custom%20data%20balancing&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>In today&#8217;s blogpost, we&#8217;re going to take a look at our upstream contribution to Apache HBase’s stochastic load balancer, based on our experience of running HBase clusters to support OVHcloud&#8217;s monitoring.</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/02/B043D804-9AF8-4109-8D73-3E36B9248282-1024x537.jpeg" alt="Contributing to Apache HBase: custom data balancing" class="wp-image-17086" width="1024" height="537" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/02/B043D804-9AF8-4109-8D73-3E36B9248282-1024x537.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/B043D804-9AF8-4109-8D73-3E36B9248282-300x157.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/B043D804-9AF8-4109-8D73-3E36B9248282-768x403.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/B043D804-9AF8-4109-8D73-3E36B9248282.jpeg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<h3 class="wp-block-heading">The context</h3>



<p>Have you ever wondered how:</p>



<ul class="wp-block-list"><li>we generate the graphs for your OVHcloud server or web hosting package? </li><li>our internal teams monitor their own servers and applications?</li></ul>



<p><strong>All internal teams are constantly gathering telemetry and monitoring data</strong> and sending them to a <strong>dedicated team,</strong> who are responsible for <strong>handling all the metrics and logs generated by OVHcloud&#8217;s infrastructure</strong>: the Observability team.</p>



<p>We tried a lot of different <strong>Time Series databases</strong>, and eventually chose <a href="https://warp10.io" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Warp10</a> to handle our workloads. <strong>Warp10</strong> can be integrated with the various <strong>big-data solutions</strong> provided by the <a href="https://www.apache.org/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Apache Foundation.</a> In our case, we use <a href="http://hbase.apache.org" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Apache HBase</a> as the long-term storage datastore for our metrics. </p>



<p><a href="http://hbase.apache.org/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Apache HBase</a>, a datastore built on top of <a href="http://hadoop.apache.org/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Apache Hadoop</a>, provides <strong>an elastic, distributed, key-ordered map.</strong> As such, one of the key features of Apache HBase for us is the ability to <strong>scan</strong>, i.e. retrieve a range of keys. Thanks to this feature, we can fetch <strong>thousands of datapoints in an optimised way</strong>.</p>



<p>We have our own dedicated clusters, the biggest of which has more than 270 nodes to spread our workloads:</p>



<ul class="wp-block-list"><li>between 1.6 and 2 million writes per second, 24/7</li><li>between 4 and 6 million reads per second</li><li>around 300TB of telemetry, stored within Apache HBase</li></ul>



<p>As you can probably imagine, storing 300TB of data in 270 nodes comes with some challenges regarding repartition, as <strong>every</strong> <strong>bit is hot data, and should be accessible at any time</strong>. Let&#8217;s dive in!</p>



<h3 class="wp-block-heading">How does balancing work in Apache HBase?</h3>



<p>Before diving into the balancer, let&#8217;s take a look at how it works. In Apache HBase, data is split into shards called <code>Regions</code>, and distributed through <code>RegionServers</code>. The number of regions will increase as the data is coming in, and regions will be split as a result. This is where the <code>Balancer</code> comes in. It will <strong>move regions</strong> to avoid hotspotting a single <code>RegionServer</code> and effectively distribute the load.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.ovh.com/blog/wp-content/uploads/2020/02/C4812E1B-B58E-4CC9-BDAC-5F92AF68A5FA-1024x768.jpeg" alt="" class="wp-image-17007" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/02/C4812E1B-B58E-4CC9-BDAC-5F92AF68A5FA-1024x768.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/C4812E1B-B58E-4CC9-BDAC-5F92AF68A5FA-300x225.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/C4812E1B-B58E-4CC9-BDAC-5F92AF68A5FA-768x576.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/C4812E1B-B58E-4CC9-BDAC-5F92AF68A5FA-1536x1152.jpeg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/C4812E1B-B58E-4CC9-BDAC-5F92AF68A5FA.jpeg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>The actual implementation, called <a href="https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">StochasticBalancer</a>, uses <strong>a cost-based approach:</strong></p>



<ol class="wp-block-list"><li>It first computes the <strong>overall cost</strong> of the cluster, by looping through <code>cost functions</code>. Every cost function <strong>returns a number between 0 and 1 inclusive</strong>, where 0 is the lowest cost-best solution, and 1 is the highest possible cost and worst solution. Apache Hbase is coming with several cost functions, which are measuring things like region load, table load, data locality, number of regions per RegionServers&#8230; The computed costs are <strong>scaled by their respective coefficients, defined in the configuration</strong>. </li><li>Now that the initial cost is computed, we can try to <code>Mutate</code> our cluster. For this, the Balancer creates a random <code>nextAction</code>, which could be something like <strong>swapping two regions</strong>, or <strong>moving one region to another RegionServer</strong>. The action is <strong>applied</strong> <strong>virtually</strong> , and then the <strong>new cost is calculated</strong>. If the new cost is lower than our previous one, the action is stored. If not, it is skipped. This operation is repeated <code>thousands of times</code>, hence the <code>Stochastic</code>. </li><li>At the end,<strong> the list of valid actions is applied to the actual cluster. </strong></li></ol>



<h3 class="wp-block-heading">What was not working for us?</h3>



<p>We found out that <strong>for our specific use case</strong>, which involved:</p>



<ul class="wp-block-list"><li>Single table</li><li>Dedicated Apache HBase and Apache Hadoop, <strong>tailored for our requirements</strong></li><li>Good key distribution</li></ul>



<p>&#8230; <strong>the number of regions per RegionServer was the real limit for us</strong>.</p>



<p>Even if the balancing strategy seems simple, <strong>we do think that being able to run an Apache HBase cluster on heterogeneous hardware is vital</strong>, especially in cloud environments, because you <strong>may not be able to buy the same server specs again in the future.</strong> In our earlier example, our cluster grew from 80 to ~250 machines in four years. Throughout that time, we bought new dedicated server references, and even tested some special internal references.</p>



<p>We ended-up with differents groups of hardware: <strong>some servers can handle only 180 regions, whereas the biggest can handle more than 900</strong>. Because of this disparity, we had to disable the Load Balancer to avoid the <a href="https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java#L1194" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">RegionCountSkewCostFunction</a>, which would try to bring all RegionServers to the same number of regions.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.ovh.com/blog/wp-content/uploads/2020/02/8E561C8C-17E0-46F2-AF20-7BE8900427F6-1024x768.jpeg" alt="RegionCountSkewCostFunction balancing" class="wp-image-17010" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/02/8E561C8C-17E0-46F2-AF20-7BE8900427F6-1024x768.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/8E561C8C-17E0-46F2-AF20-7BE8900427F6-300x225.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/8E561C8C-17E0-46F2-AF20-7BE8900427F6-768x576.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/8E561C8C-17E0-46F2-AF20-7BE8900427F6-1536x1152.jpeg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/8E561C8C-17E0-46F2-AF20-7BE8900427F6.jpeg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Two years ago we developed some internal tools, which are responsible for load balancing regions across RegionServers. The tooling worked really good for our use case, simplifying the day-to-day operation of our cluster. </p>



<p><strong>Open source is at the DNA of OVHcloud</strong>, and that means that we build our tools on open source software, but also that we <strong>contribute</strong> and give it back to the community. When we talked around, we saw that we weren&#8217;t the only one concerned by the heterogenous cluster problem. We decided to rewrite our tooling to make it more general, and to <strong>contribute</strong> it <strong> directly upstream</strong> to the HBase project<strong>. </strong></p>



<h3 class="wp-block-heading">Our contributions</h3>



<p>The first contribution was pretty simple, the cost function list was a <a href="https://github.com/apache/hbase/blob/8cb531f207b9f9f51ab1509655ae59701b66ac37/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java#L199-L213" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">constant</a>. We <a href="https://github.com/apache/hbase/commit/836f26976e1ad8b35d778c563067ed0614c026e9" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">added the possibility to load custom cost functions</a>.</p>



<p>The second contribution was about <a href="https://github.com/apache/hbase/commit/42d535a57a75b58f585b48df9af9c966e6c7e46a" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">adding an optional costFunction to balance regions according to a capacity rule</a>.</p>



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



<p>The balancer will load a file containing lines of rules. <strong>A rule is composed of a regexp for hostname, and a limit.</strong> For example, we could have:</p>



<pre class="wp-block-code"><code class="">rs[0-9] 200
rs1[0-9] 50</code></pre>



<p>RegionServers with <strong>hostnames matching the first rules will have a limit of 200</strong>, and <strong>the others 50</strong>. If there&#8217;s no match, a default is set.</p>



<p>Thanks to these rule, we have two key pieces of information:</p>



<ul class="wp-block-list"><li>the<strong> max number of regions for this cluster</strong></li><li>the<strong> rules for each servers</strong></li></ul>



<p>The <code>HeterogeneousRegionCountCostFunction</code> will try to <strong>balance regions, according to their capacity.</strong></p>



<p>Let&#8217;s take an example&#8230; Imagine that we have 20 RS:</p>



<ul class="wp-block-list"><li>10 RS, named <code>rs0</code> to <code>rs9</code>, loaded with 60 regions each, which can each handle 200 regions.</li><li>10 RS, named <code>rs10</code> to <code>rs19</code>, loaded with 60 regions each, which can each handle 50 regions.</li></ul>



<p>So, based on the following rules:</p>



<pre class="wp-block-code"><code class="">rs[0-9] 200
rs1[0-9] 50</code></pre>



<p>&#8230; we can see that the <strong>second group is overloaded</strong>, whereas the first group has plenty of space.</p>



<p>We know that we can handle a maximum of <strong>2,500 regions</strong> (200&#215;10 + 50&#215;10), and we have currently <strong>1,200 regions</strong> (60&#215;20). As such, the <code>HeterogeneousRegionCountCostFunction</code> will understand that the cluster is <strong>full at 48.0%</strong> (1200/2500). Based on this information, we will then <strong>try to put all the RegionServers at ~48% of the load, according to the rules.</strong></p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.ovh.com/blog/wp-content/uploads/2020/02/EE0CAA91-7767-4991-8710-1B0E993E945A-1024x768.jpeg" alt="HeterogeneousRegionCountCostFunction balancing" class="wp-image-17084" srcset="https://blog.ovhcloud.com/wp-content/uploads/2020/02/EE0CAA91-7767-4991-8710-1B0E993E945A-1024x768.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/EE0CAA91-7767-4991-8710-1B0E993E945A-300x225.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/EE0CAA91-7767-4991-8710-1B0E993E945A-768x576.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/EE0CAA91-7767-4991-8710-1B0E993E945A-1536x1152.jpeg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2020/02/EE0CAA91-7767-4991-8710-1B0E993E945A.jpeg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<h3 class="wp-block-heading">Where to next?</h3>



<p>Thanks to Apache HBase&#8217;s contributors, our patches are now <strong>merged</strong> into the master branch. As soon as Apache HBase maintainers publish a new release, we will deploy and use it at scale. This <strong>will allow more automation on our side, and ease operations for the Observability Team.</strong></p>



<p>Contributing was an awesome journey. What I love most about open source is the opportunity ability to contribute back, and build stronger software. We <strong>had an opinion</strong> about how a particular issue should addressed, but <strong>the discussions with the community helped us to refine it</strong>. We spoke with e<strong>ngineers from other companies, who were struggling with Apache HBase&#8217;s cloud deployments, just as we were</strong>, and thanks to those exchanges, <strong>our contribution became more and more relevant. </strong></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%2Fcontributing-to-apache-hbase-custom-data-balancing%2F&amp;action_name=Contributing%20to%20Apache%20HBase%3A%20custom%20data%20balancing&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>
		<item>
		<title>Understanding CI/CD for Big Data and Machine Learning</title>
		<link>https://blog.ovhcloud.com/understanding-ci-cd-for-big-data-and-machine-learning/</link>
		
		<dc:creator><![CDATA[Yvonnick Esnault]]></dc:creator>
		<pubDate>Thu, 14 Feb 2019 12:28:36 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[CDS]]></category>
		<category><![CDATA[DataBuzzWord]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Machine learning]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://blog.ovh.com/fr/blog/?p=14588</guid>

					<description><![CDATA[This week, the OVH Integration and Continuous Deployment team was invited to the&#160;DataBuzzWord&#160;podcast. Together, we explored the topic of continuous deployment in the context of machine learning and big data.&#160;We also discussed continuous deployment for environments like&#160;Kubernetes, Docker, OpenStack and&#160;VMware VSphere. If you missed it, or would like to review everything that was discussed, you [&#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%2Funderstanding-ci-cd-for-big-data-and-machine-learning%2F&amp;action_name=Understanding%20CI%2FCD%20for%20Big%20Data%20and%20Machine%20Learning&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>This week, the OVH Integration and Continuous Deployment team was invited to the&nbsp;<a href="https://www.spreaker.com/show/2072727" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">DataBuzzWord</a>&nbsp;podcast.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="297" height="300" src="/blog/wp-content/uploads/2019/02/CE25CF9F-9489-4B9D-B123-FE4FD613EF85-297x300.png" alt="CDS" class="wp-image-14512" srcset="https://blog.ovhcloud.com/wp-content/uploads/2019/02/CE25CF9F-9489-4B9D-B123-FE4FD613EF85-297x300.png 297w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/CE25CF9F-9489-4B9D-B123-FE4FD613EF85-768x775.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2019/02/CE25CF9F-9489-4B9D-B123-FE4FD613EF85.png 793w" sizes="auto, (max-width: 297px) 100vw, 297px" /></figure></div>



<p>Together, we explored the topic of continuous deployment in the context of machine learning and big data.&nbsp;We also discussed continuous deployment for environments like&nbsp;<a href="https://www.ovh.com/fr/blog/?s=kubernetes" data-wpel-link="exclude">Kubernetes</a>, Docker, OpenStack and&nbsp;<a href="https://www.ovh.com/fr/blog/?s=vmware" data-wpel-link="exclude">VMware VSphere</a>.</p>



<p>If you missed it, or would like to review everything that was discussed, you can&nbsp;<a href="https://www.spreaker.com/show/2072727" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">listen to it again here</a>. We hope to return soon, to continue sharing our passion for testing, integration and continuous deployment.</p>



<p>Although the podcast was recorded in French, starting from tomorrow, we&#8217;ll be delving further into the key points of our discussion in a series of articles on this blog.</p>


<div class="lazyblock-youtube-gdpr-compliant-ZRXyrv 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="17021384"
          debug></ovhcloud-gdrp-compliant-spreaker> 

</div>


<p>Find CDS on GitHub:</p>



<ul class="wp-block-list"><li><a href="https://github.com/ovh/cds" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://github.com/ovh/cds</a></li></ul>



<p>&#8230;. and follow us on Twitter:</p>



<ul class="wp-block-list"><li><a href="https://twitter.com/yesnault" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">https://twitter.com/yesnault</a></li><li><a href="https://twitter.com/francoissamin" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">https://twitter.com/francoissamin</a></li></ul>



<p>Come chat about these subjects with us on our Gitter channel:&nbsp;<a href="https://gitter.im/ovh-cds/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">https://gitter.im/ovh-cds/</a></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%2Funderstanding-ci-cd-for-big-data-and-machine-learning%2F&amp;action_name=Understanding%20CI%2FCD%20for%20Big%20Data%20and%20Machine%20Learning&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>
