A Hadoop Cluster running on EC2/UEC deployed by puppet on Ubuntu Maverick.
How it works
The Cloud Conductor is located outside the AWS infrastructure as it needs AWS credentials to start new instances. The Puppet Master runs in EC2 and uses S3 to check which clients it should accept.
The Hadoop Namenode, Jobtracker and Worker are also running in EC2. The Puppet Master automatically configures them so that each Worker can connect to the Namenode and Jobtracker.
The Puppet Master uses Stored Configuration to distribute configuration between all the Hadoop components. For example the Namenode IP address is automatically pushed to the Jobtracker and the Worker nodes so that they can connect to the Namenode.
Ubuntu Maverick is used since Puppet 2.6 is required. The excellent Cloudera CDH3 Beta2 packages provide the base Hadoop foundation.
Puppet recipes and the Cloud Conductor scripts are available in a bzr branch on Launchpad.
Setup the Cloud Conductor
The first part of the Cloud Conductor is the start_instance.py script. It takes care of starting new instances in EC2 and registering them in S3. Its configuration lives in start_instance.yaml. Both files are located in the conductor directory of the bzr branch.
The following options are available on the cloud conductor:
- s3_bucket_name: Sets the name of the S3 bucket used to store the list of instances started by the Cloud Conductor. The Puppet Master uses the same bucket to check which Puppet Client should be accepted.
- ami_id: Sets the id of the AMI the Cloud Conductor will use to start new instances.
- cloud_init: Sets specific cloud-init parameters. All of the puppet client configuration is defined here.Public ssh keys (for example from Launchpad) can be configured using the ssh_import_id option. The cloud-init documentation has more information [1] about what can be configured when starting new instances.
A sample start_instance.yaml file looks like this:
# Name of the S3 bucket to use to store the certname of started instances
s3_bucket_name: mathiaz-hadoop-cluster
# Base AMI id to use to start all instances
ami_id: ami-c210e5ab
# Extra information passed to cloud-init when starting new instances
# see cloud-init documentation for available options.
cloud_init: &site-cloud-init
ssh_import_id: mathiaz
Once the Cloud Conductor is configured a Puppet Master can be started:
./start_instance.py puppetmaster
Setup the Puppet Master
Once the instance has started and its ssh fingerprints can be verified the puppet recipes are deployed on the Puppet Master:
bzr branch lp:~mathiaz/+junk/hadoop-cluster-puppet-conf ~/puppet/
sudo mv /etc/puppet/ /etc/old.puppet
sudo mv ~/puppet/ /etc/
The S3 bucket name is set in the Puppet Master configuration /etc/puppet/manifests/puppetmaster.pp:
node default {
class {
"puppet::ca":
node_bucket => "https://mathiaz-hadoop-cluster.s3.amazonaws.com";
}
}
And finally the Puppet Master installation can be completed by puppet itself:
sudo puppet apply /etc/puppet/manifests/puppetmaster.pp
A Puppet Master is now running into EC2 with all the recipes required to deploy the different components of a Hadoop Cluster.
Update the Cloud Conductor configuration
Since the Cloud Conductor starts instances that will connect to the Puppet Master it needs to know some information about the Puppet Master:
- the Puppet Master internal IP address or DNS name. For example the DNS name of the instance (which is the FQDN) can be used.
- the Puppet Master certificate (located in /var/lib/puppet/ssl/ca/ca_crt.pem):
On the Cloud Conductor the information gathered on the Puppet Master is added to start_instance.yaml:
agent:
# Puppet server hostname or IP
# In EC2 the Private DNS of the instance should be used
server: domU-12-31-38-00-35-98.compute-1.internal
# NB: the certname will automatically be added by start_instance.py
# when a new instance is started.
# Puppetmaster ca certificate
# located in /var/lib/puppet/ssl/ca/ca_crt.pem on the puppetmaster system
ca_cert: |
-----BEGIN CERTIFICATE-----
MIICFzCCAYCgAwIBAgIBATANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDDAlQdXBw
[ ... ]
k0r/nTX6Tmr8TTU=
-----END CERTIFICATE-----
Start the Hadoop Namenode
Once the Puppet Master and Cloud Conductor are configured the Hadoop Cluster can be deployed. First in line is the Hadoop Namenode:
./start_instance.py namenode
After a few minutes the Namenode puppet client requests a certificate:
puppet-master[7397]: Starting Puppet master version 2.6.1
puppet-master[7397]: 53b0b7bf-723c-4a0f-b4b1-082ebec84041 has a waiting certificate request
The Master signs the CSR:
CRON[8542]: (root) CMD (/usr/local/bin/check_csr https://mathiaz-hadoop-cluster.s3.amazonaws.com)
check_csr[8543]: INFO: Signing request: 53b0b7bf-723c-4a0f-b4b1-082ebec84041
And finally the Master compiles the manifest for the Namenode:
node_classifier[8989]: DEBUG: Checking url https://mathiaz-hadoop-cluster.s3.amazonaws.com/53b0b7bf-723c-4a0f-b4b1-082ebec84041
node_classifier[8989]: INFO: Getting node configuration: 53b0b7bf-723c-4a0f-b4b1-082ebec84041
node_classifier[8989]: DEBUG: Node configuration (53b0b7bf-723c-4a0f-b4b1-082ebec84041): classes: ['hadoop::namenode']
puppet-master[7397]: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find stage hadoop-base specified by Class[Hadoop::Base] at /etc/puppet/modules/hadoop/manifests/init.pp:142 on node 53b0b7bf-723c-4a0f-b4b1-082ebec84041
Unfortunately there is a bug related to puppet stages. As a workaround the puppet agent can be restarted:
sudo /etc/init.d/puppet restart
Looking at the syslog file on the Namenode the Puppet Agent installs and configures the Hadoop Namenode:
puppet-agent[1795]: Starting Puppet client version 2.6.1
puppet-agent[1795]: (/Stage[apt]/Hadoop::Apt/Apt::Key[cloudera]/File[/etc/apt/cloudera.key]/ensure) defined content as '{md5}dc59b632a1ce2ad325c40d0ba4a4927e'
puppet-agent[1795]: (/Stage[apt]/Hadoop::Apt/Apt::Key[cloudera]/Exec[import apt key cloudera]) Triggered 'refresh' from 1 events
puppet-agent[1795]: (/Stage[apt]/Hadoop::Apt/Apt::Sources_list[canonical]/File[/etc/apt/sources.list.d/canonical.list]/ensure) created
puppet-agent[1795]: (/Stage[apt]/Hadoop::Apt/Apt::Sources_list[cloudera]/File[/etc/apt/sources.list.d/cloudera.list]/ensure) created
puppet-agent[1795]: (/Stage[apt]/Apt::Apt/Exec[apt-get_update]) Triggered 'refresh' from 3 events
The first stage of the puppet run sets up the Canonical partner archive and the Cloudera archive. The Sun JVM is pulled from the Canonical archive while Hadoop packages are downloaded from the Cloudera archive.
The following stage creates a common Hadoop configuration:
puppet-agent[1795]: (/Stage[hadoop-base]/Hadoop::Base/File[/var/cache/debconf/sun-java6.seeds]/ensure) defined content as '{md5}1e3a7ac4c2dc9e9c3a1ae9ab2c040794'
puppet-agent[1795]: (/Stage[hadoop-base]/Hadoop::Base/Package[sun-java6-bin]/ensure) ensure changed 'purged' to 'latest'
puppet-agent[1795]: (/Stage[hadoop-base]/Hadoop::Base/Package[hadoop-0.20]/ensure) ensure changed 'purged' to 'latest'
puppet-agent[1795]: (/Stage[hadoop-base]/Hadoop::Base/File[/var/lib/hadoop-0.20/dfs]/ensure) created
puppet-agent[1795]: (/Stage[hadoop-base]/Hadoop::Base/File[/etc/hadoop-0.20/conf.puppet]/ensure) created
puppet-agent[1795]: (/Stage[hadoop-base]/Hadoop::Base/File[/etc/hadoop-0.20/conf.puppet/hdfs-site.xml]/ensure) defined content as '{md5}1f9788fceffdd1b2300c06160e7c364e'
puppet-agent[1795]: (/Stage[hadoop-base]/Hadoop::Base/Exec[/usr/sbin/update-alternatives --install /etc/hadoop-0.20/conf hadoop-0.20-conf /etc/hadoop-0.20/conf.puppet 15]) Triggered 'refresh' from 1 events
puppet-agent[1795]: (/Stage[hadoop-base]/Hadoop::Base/File[/etc/default/hadoop-0.20]/content) content changed '{md5}578894d1b3f7d636187955c15b8edb09' to '{md5}ecb699397751cbaec1b9ac8b2dd0b9c3'
Finally the Hadoop Namenode is configured:
puppet-agent[1795]: (/Stage[main]/Hadoop::Namenode/Package[hadoop-0.20-namenode]/ensure) ensure changed 'purged' to 'latest'
puppet-agent[1795]: (/Stage[main]/Hadoop::Namenode/File[hadoop-core-site]/ensure) defined content as '{md5}2f2445bf3d4e26f5ceb3c32047b19419'
puppet-agent[1795]: (/Stage[main]/Hadoop::Namenode/File[/var/lib/hadoop-0.20/dfs/name]/ensure) created
puppet-agent[1795]: (/Stage[main]/Hadoop::Namenode/Exec[format-dfs]) Triggered 'refresh' from 1 events
puppet-agent[1795]: (/Stage[main]/Hadoop::Namenode/Service[hadoop-0.20-namenode]/ensure) ensure changed 'stopped' to 'running'
puppet-agent[1795]: (/Stage[main]/Hadoop::Namenode/Service[hadoop-0.20-namenode]) Failed to call refresh: Could not start Service[hadoop-0.20-namenode]: Execution of '/etc/init.d/hadoop-0.20-namenode start' returned 1: at /etc/puppet/modules/hadoop/manifests/init.pp:177
There is another bug in the Hadoop init script this time: the Namenode cannot be started. The puppet agent can be restarted or the next puppet run will start it:
sudo /etc/init.d/puppet restart
The Namenode daemon is running and logs information to its log file in /var/log/hadoop/hadoop-hadoop-namenode-*.log:
[...]
INFO org.apache.hadoop.hdfs.server.namenode.NameNode: Web-server up at: 0.0.0.0:50070
[...]
INFO org.apache.hadoop.ipc.Server: IPC Server handler 9 on 8200: starting
INFO org.apache.hadoop.ipc.Server: IPC Server handler 8 on 8200: starting
Start the Hadoop Jobtracker
The next component to start is the Hadoop Jobtracker:
./start_instance.py jobtracker
After some time the Puppet Master compiles the Jobtracker manifest:
DEBUG: Checking url https://mathiaz-hadoop-cluster.s3.amazonaws.com/2faa4de9-c708-45ab-a515-ae041a9d0239
node_classifier[30683]: INFO: Getting node configuration: 2faa4de9-c708-45ab-a515-ae041a9d0239
node_classifier[30683]: DEBUG: Node configuration (2faa4de9-c708-45ab-a515-ae041a9d0239): classes: ['hadoop::jobtracker']
puppet-master[23542]: Compiled catalog for 2faa4de9-c708-45ab-a515-ae041a9d0239 in environment production in 2.00 seconds
On the instance the puppet agent configures the Hadoop Jobtracker:
puppet-agent[1035]: (/Stage[main]/Hadoop::Jobtracker/File[hadoop-mapred-site]/ensure) defined content as '{md5}af3b65a08df03e14305cc5fd56674867'
puppet-agent[1035]: (/Stage[main]/Hadoop::Jobtracker/File[hadoop-core-site]/ensure) defined content as '{md5}2f2445bf3d4e26f5ceb3c32047b19419'
puppet-agent[1035]: (/Stage[main]/Hadoop::Jobtracker/Package[hadoop-0.20-jobtracker]/ensure) ensure changed 'purged' to 'latest'
puppet-agent[1035]: (/Stage[main]/Hadoop::Jobtracker/Service[hadoop-0.20-jobtracker]/ensure) ensure changed 'stopped' to 'running'
puppet-agent[1035]: (/Stage[main]/Hadoop::Jobtracker/Service[hadoop-0.20-jobtracker]) Failed to call refresh: Could not start Service[hadoop-0.20-jobtracker]: Execution of '/etc/init.d/hadoop-0.20-jobtracker start' returned 1: at /etc/puppet/modules/hadoop/manifests/init.pp:135
There is the same bug in the init script. Let's restart the puppet agent:
sudo /etc/init.d/puppet restart
The Jobtracker connects to the Namenode and error messages are logged on a regular basis to both the Namenode and Jobtracker log files:
INFO org.apache.hadoop.ipc.Server: IPC Server handler 7 on 8200, call
addBlock(/hadoop/mapred/system/jobtracker.info, DFSClient_-268101966, null)
from 10.122.183.121:54322: error: java.io.IOException: File
/hadoop/mapred/system/jobtracker.info could only be replicated to 0 nodes,
instead of 1
java.io.IOException: File /hadoop/mapred/system/jobtracker.info could only be
replicated to 0 nodes, instead of 1
This is normal as there aren't any Datanode daemon available for data replication.
Start Hadoop workers
It's now time to start the Hadoop Worker to get an operational Hadoop Cluster:
./start_instance.py worker
The Hadoop Worker holds both a Data node and a Task tracker. The Puppet agent configures them to talk to the Namenode and Job tracker respectively.
After some time the Puppet Master compiles the catalog for the Hadoop Worker:
node_classifier[8368]: DEBUG: Checking url https://mathiaz-hadoop-cluster.s3.amazonaws.com/b72a8f4d-55e6-4059-ac4b-26927f1a1016
node_classifier[8368]: INFO: Getting node configuration: b72a8f4d-55e6-4059-ac4b-26927f1a1016
node_classifier[8368]: DEBUG: Node configuration (b72a8f4d-55e6-4059-ac4b-26927f1a1016): classes: ['hadoop::worker']
puppet-master[23542]: Compiled catalog for b72a8f4d-55e6-4059-ac4b-26927f1a1016 in environment production in 0.18 seconds
On the instance the puppet agent installs the Hadoop worker:
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/File[hadoop-mapred-site]/ensure) defined content as '{md5}af3b65a08df03e14305cc5fd56674867'
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/Package[hadoop-0.20-datanode]/ensure) ensure changed 'purged' to 'latest'
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/File[/var/lib/hadoop-0.20/dfs/data]/ensure) created
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/Package[hadoop-0.20-tasktracker]/ensure) ensure changed 'purged' to 'latest'
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/File[hadoop-core-site]/ensure) defined content as '{md5}2f2445bf3d4e26f5ceb3c32047b19419'
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/Service[hadoop-0.20-datanode]/ensure) ensure changed 'stopped' to 'running'
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/Service[hadoop-0.20-datanode]) Failed to call refresh: Could not start Service[hadoop-0.20-datanode]: Execution of '/etc/init.d/hadoop-0.20-datanode start' returned 1: at /etc/puppet/modules/hadoop/manifests/init.pp:103
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/Service[hadoop-0.20-tasktracker]/ensure) ensure changed 'stopped' to 'running'
puppet-agent[1030]: (/Stage[main]/Hadoop::Worker/Service[hadoop-0.20-tasktracker]) Failed to call refresh: Could not start Service[hadoop-0.20-tasktracker]: Execution of '/etc/init.d/hadoop-0.20-tasktracker start' returned 1: at /etc/puppet/modules/hadoop/manifests/init.pp:103
Again the same init script bug - let's restart the puppet agent:
sudo /etc/init.d/puppet restart
Once the worker is installed the Datanode daemon connects to the Namenode:
INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.registerDatanode: node registration from 10.249.187.5:50010 storage DS-2066068566-10.249.187.5-50010-1285276011214
INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /default-rack/10.249.187.5:50010
Similarly the Task Tracker daemon registers itself with the Jobtracker:
INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /default-rack/domU-12-31-39-03-B8-F7.compute-1.internal
The Hadoop Cluster is up and running.
Conclusion
Once the initial setup of the Puppet master is done and the Hadoop Namenode and Jobtracker are up and running adding new Hadoop Workers is
just one command:
./start_instance.py worker
Puppet automatically configures them to join the Hadoop Cluster.
Great work, works well for me!
ReplyDeleteWonderful post! Youve made some very astute observations and I am thankful for the the effort you have put into your
ReplyDeletewriting. Its clear that you know what you are talking about. I am looking forward to reading more of your sites content.
Hadoop training
ous web based learning applications give quality seminars on information science and furthermore give an authentication to it. ExcelR Data Science Courses
ReplyDeleteI am looking for and I love to post a comment that "The content of your post is awesome" Great work!
ReplyDeletebusiness analytics course
data analytics courses in mumbai
data science interview questions
data science course in mumbai
Nice Post ! really enjoyed reading this article. Thanks for sharing such detailed information.
ReplyDeleteAI Training in Hyderabad
Hi, Thanks for sharing wonderful articles....
ReplyDeleteAI Training In Hyderabad
Nice information thanks for sharing it’s very useful. This article gives me so much information.
ReplyDeleteAWS Training in Hyderabad
cool stuff you have and you keep overhaul every one of us
ReplyDeleteData Analyst Course
I am really enjoying reading your well written articles. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work. data science training in Hyderabad
ReplyDeleteGlad to chat your blog, I seem to be forward to more reliable articles and I think we all wish to thank so many good articles, blog to share with us.
ReplyDeletedata analytics courses
Very nice blogs!!! i have to learning for lot of information for this site…Sharing for wonderful information. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing,
ReplyDeleteData Science Training in Hyderabad
Data Science Course in Hyderabad
Excellent Blog! I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well. I wanted to thank you for this websites! Thanks for sharing. Great websites!
ReplyDeletedata science certification
This is also a very good post which I really enjoyed reading. It is not every day that I have the possibility to see something like this..
ReplyDeletedata scientist online course
This is really a great information from your post.
ReplyDeleteDevOps Training in Hyderabad
DevOps Course in Hyderabad
Great info! I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have.
ReplyDeletefull stack developer course with placement
Thanks for sharing
ReplyDeleteShreyan IT, helps companies/employers get matched with talented candidates who meet their requirements. We provide staffing solutions for local, national, and global recruitment needs. Our goal is to assist job seekers in finding new positions while also assisting employers in finding the best applicant for their available positions.
Hi,
ReplyDeleteI appreciate this detailed guide on deploying a Hadoop cluster on EC2/UEC with Puppet and Ubuntu Maverick. It provides a comprehensive step-by-step approach, making it easier for those looking to set up their own Hadoop environment. Thanks for sharing!
Data Analytics Courses in Nashik
This article appears to provide a helpful guide on deploying a Hadoop cluster on EC2/UEC using Puppet and Ubuntu Maverick. Using automation tools like Puppet can simplify the process of setting up and managing Hadoop clusters, making it easier for developers and administrators to work with big data solutions.
ReplyDeleteData Analytics Courses In Kochi
Impressive deployment of a Hadoop cluster on EC2/UEC using Puppet and Ubuntu Maverick. Streamlined setup and automated configuration make this an efficient and valuable solution. Thank you.
ReplyDeleteData Analytics Courses In Dubai
This is really a great information. Thanks for sharing with us.
ReplyDeleteData Analytics Courses in Agra
This kind of knowledge-sharing is instrumental in enabling organizations to harness the full potential of their data. Thank you so much for sharing.
ReplyDeleteData Analytics Courses In Chennai
Thank you so much for providing a great tutorial on Deploying a Hadoop cluster on EC2/UEC with Puppet and Ubuntu Maverick. I was having some trouble related to this but after after reading your blog is is all cleared.
ReplyDeleteVisit - Data Analytics Courses in Delhi
good blog
ReplyDeleteData Analytics Courses In Vadodara
I am looking for and I love to post a comment that "The content of your post is awesome". I really enjoyed reading this article. Thanks for sharing such detailed information.
ReplyDeleteData science courses in Gurgaon
I’m really impressed by how detailed and informative this article is! The content is relevant, well-researched, and presented in a way that’s easy to absorb. Thanks for creating such a valuable resource.
ReplyDeleteData Analytics Courses in Delhi
Fantastic guide on deploying a Hadoop cluster! Your detailed instructions and insights on using Puppet with Ubuntu make complex setups more accessible. Keep sharing your expertise—it's invaluable for those venturing into big data!
ReplyDeleteData Science Courses in Singapore
ReplyDeleteThis article provides a comprehensive and detailed guide to deploying a Hadoop cluster on EC2 using Puppet and Ubuntu Maverick. It's fascinating to see how automation with Puppet simplifies the management of large-scale clusters, making it easier to set up and configure Hadoop components efficiently.
For those in Ghana interested in expanding their knowledge in big data and analytics, the data analytics courses offered by IIM Skills are a great opportunity. These courses equip learners with the essential skills needed for managing Hadoop environments and diving into the world of Big Data. Data Analytics Courses in Ghana
"Thanks for sharing this valuable information! The data science courses in Faridabad are a great resource for aspiring data scientists."
ReplyDeleteGreat guide on deploying a Hadoop cluster on EC2! I found the step-by-step instructions very helpful, especially the networking setup.
ReplyDeleteData science courses in Bhutan
In his blog post, "Deploying a Hadoop Cluster on EC2/UEC with Whirr," Mathiaz offers a clear and concise guide on setting up a Hadoop cluster using Amazon EC2 or UEC with Apache Whirr. The step-by-step instructions, combined with code snippets, make the deployment process approachable for users who may be unfamiliar with cloud environments or Hadoop itself. It's a highly informative post that simplifies a typically complex task, making it a great resource for anyone looking to quickly get a Hadoop cluster up and running. Great job on simplifying cloud-based deployment!
ReplyDeletedata analytics courses in dubai
I never thought of it that way before. The way you explained about deployoing hadoop cluster was intresting. Great job.
ReplyDeleteOnline Data Science Course
I will say you have done a great job writing this article. Very nice and well written.
ReplyDeleteData Science Courses in Hauz Khas
This article provides an excellent overview of deploying a Hadoop cluster on EC2 using Puppet and Ubuntu Maverick! The step-by-step approach, particularly the integration of the Cloud Conductor and Puppet Master, simplifies the deployment process significantly. I appreciate how you explained the configuration options for the Cloud Conductor, like s3_bucket_name and cloud_init, making it clear how to customize the setup for different needs.
ReplyDeleteData science courses in Mysore
"I just read about the Data Science Course in Dadar, and I’m really impressed! The course content looks comprehensive and perfect for anyone looking to break into the data science field. The emphasis on practical applications is a huge plus. Thanks for sharing this valuable resource!"
ReplyDeleteYour writing is so clear and concise. It makes learning new things a breeze.
ReplyDeleteData science courses in Thailand
The post on Mathiaz Blog about deploying a Hadoop cluster on EC2/UEC is very informative! It provides clear, step-by-step instructions that make the setup process accessible for users. The tips on configuration and best practices are particularly valuable for anyone looking to leverage cloud resources for big data applications. Thanks for sharing such useful insights!
ReplyDeleteData science courses in Bangalore.
Thank you for blog.
ReplyDeleteData science Courses in Germany
If you’re considering data science as a career and you’re based in Iraq, this post is a great place to start! The list of courses covers various aspects of data science, so you can find one that suits your needs and career aspirations. Be sure to check out the full list here—you won’t regret it!
ReplyDeleteGreat blog! Your explanation of deploying a Hadoop cluster using Puppet on EC2/UEC with Ubuntu Maverick is very insightful. The step-by-step approach makes it easy to follow for beginners. Looking forward to more posts on optimizing Hadoop setups! thanks for sharing.
ReplyDeleteData science course in Bangalore
Thank you for this detailed and insightful guide on deploying a Hadoop cluster on EC2/UEC! Your step-by-step approach and practical tips make it incredibly helpful for anyone navigating such deployments.
ReplyDeleteData science course in Lucknow
I love how you don’t just talk about the theory but actually offer practical advice!
ReplyDeleteData science courses in chennai
I loved how you presented this material! It was both educational and enjoyable to read. Keep up the great work
ReplyDeleteData science courses in Bangalore
Nice article, I got new information from your article, keep sharing.
ReplyDeleteIIM SKILLS Data Science Course Review
Great post! You've explained the process of deploying a Hadoop cluster on EC2/UEC very clearly. The step-by-step approach is really helpful for beginners as well as experienced users looking to optimize their setups. Thanks for sharing this valuable resource!
ReplyDeleteData science courses in Bangladesh
You have done a great job! Keep sharing such information.
ReplyDeleteDigital marketing courses in mumbai