

{"id":23543,"date":"2018-08-22T08:09:48","date_gmt":"2018-08-22T08:09:48","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=23543"},"modified":"2018-08-22T08:09:48","modified_gmt":"2018-08-22T08:09:48","slug":"ambari-architecture","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/","title":{"rendered":"Apache Ambari Architecture &#8211; Working With Example"},"content":{"rendered":"<p>Today, in this <strong>Apache Ambari Tutorial<\/strong>, we will discuss Ambari Architecture. Moreover, in this Architecture of Ambari, we will see the working,\u00a0and example of Ambari. Also, we will discuss applications of Apache Ambari.<\/p>\n<p>So, let&#8217;s start Apache Ambari Architecture.<\/p>\n<h2><span style=\"font-weight: 400\">What is Ambari Architecture?<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In simple words,<em> Ambari Server<\/em> collects data from across cluster at first. Moreover, each host has a copy of the Ambari Agent, that Agent permits the Ambari Server to control each host.<\/span><br \/>\n<span style=\"font-weight: 400\">Below you can see a picture of Ambari architecture:<\/span><\/p>\n<div id=\"attachment_23546\" style=\"width: 1090px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Apache-Ambari-Architecture-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-23546\" class=\"wp-image-23546 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Apache-Ambari-Architecture-1.png\" alt=\"Apache Ambari Architecture\" width=\"1080\" height=\"1080\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Apache-Ambari-Architecture-1.png 1080w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Apache-Ambari-Architecture-1-150x150.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Apache-Ambari-Architecture-1-300x300.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Apache-Ambari-Architecture-1-768x768.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Apache-Ambari-Architecture-1-1024x1024.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Apache-Ambari-Architecture-1-100x100.png 100w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/a><p id=\"caption-attachment-23546\" class=\"wp-caption-text\">Apache Ambari Architecture<\/p><\/div>\n<p><span style=\"font-weight: 400\">Basically, to access cluster information and perform cluster operations, Ambari Web calls the Ambari REST API (accessible from the Ambari Server). However, the application authenticates to the Ambari Server, after authenticating to Ambari Web. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Further, by using the REST API, communication between the browser and server occurs asynchronously.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In addition, there is a REST API in Ambari which is accessed by Web UI, that resets the session timeout. Hence, we can say Ambari Web sessions do not timeout automatically. And, after a period of inactivity, we can configure Ambari to timeout.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Working of Apache Ambari<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Ambari Architecture is of master\/slave type architecture. So, to perform certain actions and report back the state of every action, the master node instructs the slave nodes. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Although, for keeping track of the state of the infrastructure, the master node is responsible. But for this process, a database server is used by the master node, that can be further configured during setup time.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Now, we can see the high-level architecture of Ambari by below diagram which also shows how Ambari works:<\/span><\/p>\n<div id=\"attachment_23545\" style=\"width: 951px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Working-of-Apache-Ambari.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-23545\" class=\"wp-image-23545 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Working-of-Apache-Ambari.png\" alt=\"Ambari architecture\" width=\"941\" height=\"1080\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Working-of-Apache-Ambari.png 941w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Working-of-Apache-Ambari-131x150.png 131w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Working-of-Apache-Ambari-261x300.png 261w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Working-of-Apache-Ambari-768x881.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Working-of-Apache-Ambari-892x1024.png 892w\" sizes=\"auto, (max-width: 941px) 100vw, 941px\" \/><\/a><p id=\"caption-attachment-23545\" class=\"wp-caption-text\">Ambari architecture &#8211; Apache Ambari Architecture<\/p><\/div>\n<p><span style=\"font-weight: 400\">There are following applications in Apache Ambari, at the core:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Ambari server<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The Ambari agent<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Ambari web UI<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Database<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400\">Applications of Apache Ambari<\/span><\/h2>\n<h3><span style=\"font-weight: 400\">i. Ambari server<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Generally, the entry point for all administrative activities on the master server is what we call Ambari server (ambari-server). It is a shell script. Internally this script uses Python code, <strong>ambari-server.py<\/strong>, and also routes all the requests to it.<\/span><\/p>\n<p><span style=\"font-weight: 400\">There are several entry points, in Ambari server that are available when passed different parameters to the ambari-server program:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Daemon management<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Software upgrade<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Software setup<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">LDAP\/PAM\/Kerberos management<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Ambari backup and restore<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Miscellaneous options<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">So, let\u2019s learn all the entry points in detail:<\/span><\/p>\n<h4>a. Daemon management<\/h4>\n<p><span style=\"font-weight: 400\">At the time when the script is invoked with start, stop, reset, restart arguments from the command line, the daemon management mode is activated.<\/span><\/p>\n<p><span style=\"font-weight: 400\">For example, we can run the following command, if we want to start the Ambari background server:<\/span><br \/>\n<span style=\"font-weight: 400\">For example:<\/span><br \/>\n<b>ambari-server start<\/b><\/p>\n<h4>b. Software upgrade<\/h4>\n<p><span style=\"font-weight: 400\">We can use this mode to upgrade Ambari server itself, once Ambari is installed. Basically, when we call the ambari-server program with the upgrade flag when it triggers. We can pass the upgradestack flag, in case we want to upgrade the entire stack of Ambari:<\/span><\/p>\n<p><span style=\"font-weight: 400\">For example:<\/span><br \/>\n<b>ambari-server upgrade<\/b><\/p>\n<h4>c. Software setup<\/h4>\n<p><span style=\"font-weight: 400\">Moreover, we need to do a preliminary setup of the software, once Ambari is downloaded from the internet (or installed via YUM and APT). When we pass the setup flag to the program, this mode triggers. <\/span><\/p>\n<p><span style=\"font-weight: 400\">As a process, this mode will ask various questions form us that we need to answer. Make sure, Ambari cannot be used for any kind of management of our servers, Unless we finish this step:<\/span><\/p>\n<p><span style=\"font-weight: 400\">For example:<\/span><br \/>\n<b>ambari-server setup<\/b><\/p>\n<h4>d. LDAP\/PAM\/Kerberos management<\/h4>\n<p><span style=\"font-weight: 400\">LDAP is an acronym for Lightweight Directory Access Protocol (LDAP). Basically, we use it for identity management in enterprises. Though, we need to use the following flags: <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">setup-ldap (for setting up ldap properties with ambari) and <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">sync-ldap (to perform a synchronization of the data from the ldap server)<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">in order to use LDAP-based authentication:<\/span><br \/>\n<span style=\"font-weight: 400\">For example:<\/span><br \/>\n<b>ambari-server setup-ldap<\/b><br \/>\n<b>ambari-server sync-ldap<\/b><br \/>\n<span style=\"font-weight: 400\">PAM is an acronym for Pluggable Authentication Module (PAM). Generally, \u00a0in any UNIX or Linux operating systems, at the core of the authentication and authorization, it is present. Though, we need to run it with the setup-pam option, if we want to leverage the PAM-based access for Ambari. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Moreover, we need to run it with migrate-ldap-pam, if we then want to move from LDAP to PAM-based authentication:<\/span><br \/>\n<b>ambari-server setup-pam<\/b><br \/>\n<b>ambari-server migrate-ldap-pam<\/b><br \/>\n<span style=\"font-weight: 400\">Furthermore, it uses Kerberos as another advanced authentication and authorization mechanism. It is very helpful in networked environments. So, on large-scale servers, it simplifies Authenticity, Authorisation, and Auditing (AAA). We can use the setup-Kerberos flag if we want to use Kerberos for Ambari:<\/span><\/p>\n<p><span style=\"font-weight: 400\">For Example:<\/span><br \/>\n<b>ambari-server setup-kerberos<\/b><\/p>\n<h4>e. Ambari backup and restore<\/h4>\n<p><span style=\"font-weight: 400\">Basically, we can enter this mode, if we want to take a snapshot of the current installation of Ambari (excluding the database). It supports both backup and restores methods. Especially which are invoked via the backup as well as restore flags:<\/span><br \/>\n<b>ambari-server backup<\/b><br \/>\n<b>ambari-server restore<\/b><\/p>\n<h4>f. Miscellaneous options<\/h4>\n<p><span style=\"font-weight: 400\">Apart from all, there are some other options also which are available with the server program that we can invoke with the -h (help) flag.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">ii. Ambari Agent<\/span><\/h3>\n<p><span style=\"font-weight: 400\">On all the nodes that we want to manage with Ambari, the Ambari Agent runs. Basically, this program periodically heartbeats to the master node. However, ambari-server executes many of the tasks on the servers, by using this agent.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">iii. Ambari web interface<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Ambari web interface is one of the <strong>powerful features of the Ambari<\/strong> application. Through the server of Ambari program which is running on the master host, this web application is exposed; on port 8080, we can access this application. And, this application is protected by authentication.<\/span><\/p>\n<p>Also, we can control and view all aspects of our <strong>Hadoop clusters<\/strong>, once we log in to this web portal.<\/p>\n<h3><span style=\"font-weight: 400\">iv. Database<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Further, to keep track of the state of the entire Hadoop infrastructure, Ambari supports multiple RDBMS. Although, we can choose the database we want to use, during the setup of the Ambari server for the first time.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ambari supports the following databases, at the time of writing:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">PostgreSQL<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Oracle<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">MySQL or MariaDB<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Embedded PostgreSQL<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Microsoft SQL Server<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\"><strong>SQL<\/strong> Anywhere<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Berkeley DB<\/span><\/li>\n<\/ul>\n<p>So, this was all in Ambari Architecture. Hope you like our explanation.<\/p>\n<h2><span style=\"font-weight: 400\">Conclusion &#8211; Ambari Architecture<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Hence, in this Ambari Architecture Tutorial, we have seen the complete Ambari Architecture and its working in detail. Moreover, we discussed applications and example of Ambari. Still, if you have any doubt regarding Ambari Architecture, ask in the comment tab.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today, in this Apache Ambari Tutorial, we will discuss Ambari Architecture. Moreover, in this Architecture of Ambari, we will see the working,\u00a0and example of Ambari. Also, we will discuss applications of Apache Ambari. So,&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":25757,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[625,626,656,730,733,1023,1075,16242],"class_list":["post-23543","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ambari","tag-ambari-applications","tag-ambari-architecture","tag-ambari-working","tag-apache-ambari","tag-apache-ambari-tutorial","tag-applications-of-ambari","tag-architecture-of-ambari","tag-working-of-apache-ambari"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Apache Ambari Architecture - Working With Example - DataFlair<\/title>\n<meta name=\"description\" content=\"Apache Ambari Architecture, what is Ambari Architecture, working of Ambari, Applications of Ambari, Architecture of Ambari, Apache Ambari Tutorial\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/ambari-architecture\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache Ambari Architecture - Working With Example - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Apache Ambari Architecture, what is Ambari Architecture, working of Ambari, Applications of Ambari, Architecture of Ambari, Apache Ambari Tutorial\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/ambari-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-22T08:09:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Apache-Ambari-Architecture-01.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Apache Ambari Architecture - Working With Example - DataFlair","description":"Apache Ambari Architecture, what is Ambari Architecture, working of Ambari, Applications of Ambari, Architecture of Ambari, Apache Ambari Tutorial","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/","og_locale":"en_US","og_type":"article","og_title":"Apache Ambari Architecture - Working With Example - DataFlair","og_description":"Apache Ambari Architecture, what is Ambari Architecture, working of Ambari, Applications of Ambari, Architecture of Ambari, Apache Ambari Tutorial","og_url":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-08-22T08:09:48+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Apache-Ambari-Architecture-01.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"Apache Ambari Architecture &#8211; Working With Example","datePublished":"2018-08-22T08:09:48+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/"},"wordCount":1072,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Apache-Ambari-Architecture-01.jpg","keywords":["Ambari Applications","Ambari architecture","Ambari Working","Apache Ambari","Apache Ambari Tutorial","Applications of Ambari","Architecture of Ambari","working of Apache Ambari"],"articleSection":["Ambari Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/ambari-architecture\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/","url":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/","name":"Apache Ambari Architecture - Working With Example - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Apache-Ambari-Architecture-01.jpg","datePublished":"2018-08-22T08:09:48+00:00","description":"Apache Ambari Architecture, what is Ambari Architecture, working of Ambari, Applications of Ambari, Architecture of Ambari, Apache Ambari Tutorial","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/ambari-architecture\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Apache-Ambari-Architecture-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Apache-Ambari-Architecture-01.jpg","width":1200,"height":628,"caption":"Apache Ambari Architecture - Working With Example"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/ambari-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Ambari Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/ambari\/"},{"@type":"ListItem","position":3,"name":"Apache Ambari Architecture &#8211; Working With Example"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/23543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=23543"}],"version-history":[{"count":0,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/23543\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/25757"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=23543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=23543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=23543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}