

{"id":2108,"date":"2017-04-19T14:31:54","date_gmt":"2017-04-19T14:31:54","guid":{"rendered":"http:\/\/data-flair.training\/blogs\/?p=2108"},"modified":"2018-11-21T11:22:19","modified_gmt":"2018-11-21T05:52:19","slug":"hadoop-reducer","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/","title":{"rendered":"Hadoop Reducer &#8211; 3 Steps learning for MapReduce Reducer"},"content":{"rendered":"<h2>1. Hadoop Reducer Tutorial &#8211; Objective<\/h2>\n<p>In <a href=\"http:\/\/data-flair.training\/blogs\/hadoop-tutorial-for-beginners\/\"><strong>Hadoop<\/strong><\/a>, <strong>Reducer<\/strong> takes the output of the <a href=\"http:\/\/data-flair.training\/blogs\/mapper-in-hadoop-mapreduce\/\"><strong>Mapper<\/strong><\/a> (intermediate key-value pair) process each of them to generate the output. The output of the reducer is the final output, which is stored in HDFS. Usually, in the Hadoop Reducer, we do aggregation or summation sort of computation.<\/p>\n<p>In this Hadoop Reducer tutorial, we will answer what is Reducer in Hadoop MapReduce, what are the different phases of <a href=\"http:\/\/data-flair.training\/blogs\/hadoop-mapreduce-tutorial\/\"><strong>Hadoop MapReduce<\/strong><\/a> Reducer, shuffling and sorting in Hadoop, Hadoop reduce phase, functioning of Hadoop reducer class. We will also discuss how many reducers are required in Hadoop and how to change the number of reducers in Hadoop MapReduce.<\/p>\n<div id=\"attachment_43047\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-43047\" class=\"size-full wp-image-43047\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.jpg\" alt=\"Hadoop Reducer - 3 Steps learning for MapReduce Reducer\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-43047\" class=\"wp-caption-text\">Hadoop Reducer &#8211; 3 Steps learning for MapReduce Reducer<\/p><\/div>\n<h2>2. What is Hadoop Reducer?<\/h2>\n<p>Let&#8217;s now discuss what is Reducer in MapReduce first.<\/p>\n<p>The Reducer\u00a0process the output of the mapper. After processing the data, it produces a new set of output. At last\u00a0<a href=\"http:\/\/data-flair.training\/blogs\/comprehensive-hdfs-guide-introduction-architecture-data-read-write-tutorial\/\"><strong>HDFS <\/strong><\/a>stores this output data.<\/p>\n<p>Hadoop Reducer takes a set of an intermediate <a href=\"http:\/\/data-flair.training\/blogs\/key-value-pairs-hadoop-mapreduce\/\"><strong>key-value pair<\/strong><\/a> produced by the mapper as the input and runs a Reducer function on each of them. One can aggregate, filter, and combine this data (key, value) in a number of ways for a wide range of processing. Reducer first processes the intermediate values for particular key generated by the map function and then generates the output (zero or more key-value pair).<\/p>\n<p>One-one mapping takes place between keys and reducers. Reducers run in parallel since they are independent of one another. The user decides the number of reducers. By default number of reducers is 1.<\/p>\n<p><strong>Read: <a href=\"https:\/\/data-flair.training\/blogs\/combiner-in-hadoop-mapreduce-advantages-disadvantages\/\">HDFS Combiner Tutorial <\/a><\/strong><\/p>\n<h2>3. Phases of MapReduce Reducer<\/h2>\n<p>As you can see in the diagram at the top, there are 3 phases of\u00a0Reducer\u00a0in Hadoop MapReduce. Let&#8217;s discuss each of them one by one-<\/p>\n<h3>3.1. Shuffle Phase of MapReduce Reducer<\/h3>\n<p>In this phase, the sorted output from the mapper is the input to the Reducer. In Shuffle phase, with the help of HTTP, the framework fetches the relevant partition of the output of all the mappers.<\/p>\n<h3>3.2. Sort Phase of MapReduce Reducer<\/h3>\n<p>In this phase, the input from different mappers is again sorted based on the similar keys in different Mappers. The shuffle and sort phases occur concurrently.<\/p>\n<p>Learn <a href=\"http:\/\/data-flair.training\/blogs\/shuffling-sorting-hadoop-mapreduce\/\"><strong>Mapreduce Shuffling and Sorting Phase<\/strong><\/a> in detail.<\/p>\n<p><strong>Read: <a href=\"https:\/\/data-flair.training\/blogs\/features-hadoop-hdfs-overview-beginners\/\">Features of HDFS<\/a><\/strong><\/p>\n<h3>3.3. Reduce Phase<\/h3>\n<p>In this phase, after shuffling and sorting, reduce task aggregates the key-value pairs. The\u00a0<em>OutputCollector.collect()<\/em>\u00a0method, writes the output of the reduce task to the Filesystem. Reducer output is not sorted.<\/p>\n<h2>4. MapReduce Number of Reducers<\/h2>\n<p>In this section of Hadoop Reducer, we will discuss how many number of Mapreduce reducers are required in MapReduce and how to change the Hadoop reducer number in MapReduce?<br \/>\nWith the help of <em>Job.setNumreduceTasks(int)<\/em> the user set the number of reducers for the job. The right number of reducers are 0.95 or 1.75 multiplied by (&lt;no. of nodes&gt; * &lt;no. of the maximum container per node&gt;).<\/p>\n<p>With 0.95, all reducers immediately launch and start transferring map outputs as the maps finish. With 1.75, the first round of reducers is finished by the faster nodes and second wave of reducers is launched doing a much better job of load balancing.<\/p>\n<p><strong>Increasing the number of MapReduce reducers:<\/strong><\/p>\n<ul>\n<li>Increases the Framework overhead.<\/li>\n<li>Increases load balancing.<\/li>\n<li>Lowers the cost of failures.<\/li>\n<\/ul>\n<p><strong>Read: <a href=\"https:\/\/data-flair.training\/blogs\/hadoop-high-availability-tutorial\/\">HDFS NameNode High Availability<\/a><\/strong><\/p>\n<h2>5. Hadoop Reducer &#8211; Conclusion<\/h2>\n<p>In conclusion, Hadoop Reducer is the second phase of processing in MapReduce. Hadoop Reducer does aggregation or summation sort of computation by three phases(shuffle, sort and reduce). Thus, HDFS Stores the final output of Reducer. <a href=\"http:\/\/data-flair.training\/blogs\/hadoop-hdfs-data-read-and-write-operations\/\">Learn How to Read or Write data to HDFS?<\/a><\/p>\n<p>If you find this blog on Hadoop Reducer helpful or you have any query for Hadoop Reducer, so feel free to share with us.<\/p>\n<p><strong>See Also-<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/data-flair.training\/blogs\/combiner-in-hadoop-mapreduce-advantages-disadvantages\/\">Combiner in Hadoop MapReduce<\/a><\/li>\n<li><a href=\"http:\/\/data-flair.training\/blogs\/partitioner-in-hadoop-mapreduce-hadoop-internals\/\">Partitioner in Hadoop MapReduce<\/a><\/li>\n<\/ul>\n<p><a href=\"https:\/\/hadoop.apache.org\/docs\/r2.7.0\/api\/org\/apache\/hadoop\/mapreduce\/Reducer.html\">Reference<\/a><span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:2371,&quot;href&quot;:&quot;https:\\\/\\\/hadoop.apache.org\\\/docs\\\/r2.7.0\\\/api\\\/org\\\/apache\\\/hadoop\\\/mapreduce\\\/Reducer.html&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20240914104507\\\/https:\\\/\\\/hadoop.apache.org\\\/docs\\\/r2.7.0\\\/api\\\/org\\\/apache\\\/hadoop\\\/mapreduce\\\/Reducer.html&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-11 04:38:58&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-22 12:36:13&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-29 09:16:51&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-02 22:53:50&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-06 07:01:56&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-14 08:05:14&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-04 23:54:34&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-18 14:35:57&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-27 17:33:18&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-01 17:40:46&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-05 13:46:00&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-10 05:46:39&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-14 21:19:46&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-19 13:25:58&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-27 04:01:35&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-10 17:30:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-24 11:09:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-03 12:19:22&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-19 00:34:43&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-24 20:33:01&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-29 05:52:02&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-07-03 07:41:01&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-07-08 02:12:59&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-07-11 20:55:21&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-07-15 10:08:18&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-07-15 10:08:18&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Hadoop Reducer Tutorial &#8211; Objective In Hadoop, Reducer takes the output of the Mapper (intermediate key-value pair) process each of them to generate the output. The output of the reducer is the final&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":43047,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37],"tags":[5322,11452,11455,11456,11457,12862],"class_list":["post-2108","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mapreduce","tag-hadoop-reducer-class","tag-reduce-phase-in-hadoop","tag-reducer-in-mapreduce","tag-reducer-phase-in-hadoop","tag-reducers-in-hadoop-mapreduce","tag-shuffling-and-sorting-in-hadoop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Hadoop Reducer - 3 Steps learning for MapReduce Reducer - DataFlair<\/title>\n<meta name=\"description\" content=\"Hadoop Reducer tutorial covers what is Reducer in MapReduce,Hadoop Reducer class,default number of reducers in Hadoop,phases of Hadoop reducer class,shuffling,sorting\" \/>\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\/hadoop-reducer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hadoop Reducer - 3 Steps learning for MapReduce Reducer - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Hadoop Reducer tutorial covers what is Reducer in MapReduce,Hadoop Reducer class,default number of reducers in Hadoop,phases of Hadoop reducer class,shuffling,sorting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/\" \/>\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=\"2017-04-19T14:31:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-11-21T05:52:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.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=\"3 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hadoop Reducer - 3 Steps learning for MapReduce Reducer - DataFlair","description":"Hadoop Reducer tutorial covers what is Reducer in MapReduce,Hadoop Reducer class,default number of reducers in Hadoop,phases of Hadoop reducer class,shuffling,sorting","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\/hadoop-reducer\/","og_locale":"en_US","og_type":"article","og_title":"Hadoop Reducer - 3 Steps learning for MapReduce Reducer - DataFlair","og_description":"Hadoop Reducer tutorial covers what is Reducer in MapReduce,Hadoop Reducer class,default number of reducers in Hadoop,phases of Hadoop reducer class,shuffling,sorting","og_url":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2017-04-19T14:31:54+00:00","article_modified_time":"2018-11-21T05:52:19+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"Hadoop Reducer &#8211; 3 Steps learning for MapReduce Reducer","datePublished":"2017-04-19T14:31:54+00:00","dateModified":"2018-11-21T05:52:19+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/"},"wordCount":650,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.jpg","keywords":["hadoop reducer class","reduce phase in Hadoop","Reducer in mapReduce","Reducer phase in Hadoop","Reducers in Hadoop MapReduce","shuffling and sorting in Hadoop"],"articleSection":["MapReduce Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/hadoop-reducer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/","url":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/","name":"Hadoop Reducer - 3 Steps learning for MapReduce Reducer - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.jpg","datePublished":"2017-04-19T14:31:54+00:00","dateModified":"2018-11-21T05:52:19+00:00","description":"Hadoop Reducer tutorial covers what is Reducer in MapReduce,Hadoop Reducer class,default number of reducers in Hadoop,phases of Hadoop reducer class,shuffling,sorting","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/hadoop-reducer\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2017\/04\/introduction-to-hadoop-reducer.jpg","width":1200,"height":628,"caption":"Hadoop Reducer - 3 Steps learning for MapReduce Reducer"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/hadoop-reducer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"MapReduce Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/mapreduce\/"},{"@type":"ListItem","position":3,"name":"Hadoop Reducer &#8211; 3 Steps learning for MapReduce Reducer"}]},{"@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\/2108","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=2108"}],"version-history":[{"count":3,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/2108\/revisions"}],"predecessor-version":[{"id":43048,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/2108\/revisions\/43048"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/43047"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=2108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=2108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=2108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}