

{"id":25675,"date":"2018-08-23T07:05:10","date_gmt":"2018-08-23T07:05:10","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=25675"},"modified":"2018-08-23T07:05:10","modified_gmt":"2018-08-23T07:05:10","slug":"kafka-hadoop-integration","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/","title":{"rendered":"Kafka Hadoop Integration | Integrating Hadoop with Kafka"},"content":{"rendered":"<p>Today, in this Kafka Hadoop Tutorial, we will discuss Kafka Hadoop Integration. Moreover, we will start this tutorial with Hadoop Introduction. Also, we will see Hadoop Producer and Hadoop Consumer in Kafka Integration with Hadoop.<\/p>\n<p><span style=\"font-weight: 400\">Basically, we can integrate <strong>Kafka<\/strong> with the Hadoop technology in order to address different use cases, such as batch processing using Hadoop. <\/span><\/p>\n<p><span style=\"font-weight: 400\">So, in this article, &#8220;Kafka Hadoop integration&#8221; we will learn the procedure to integrate Hadoop with Kafka in an easier and efficient way. However, before integrating Kafka with Hadoop, it is important to learn the brief <strong>introduction of Hadoop<\/strong>. <\/span><\/p>\n<p><span style=\"font-weight: 400\">So, let\u2019s start Kafka Hadoop Integration.<\/span><\/p>\n<h2>What is Hadoop?<\/h2>\n<p><span style=\"font-weight: 400\">A large-scale distributed batch processing framework that use to parallelize the data processing among many nodes and also addresses the challenges for distributed computing, including big data, is <strong>what we call Hadoop<\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Basically, it works on the principle of the<strong> MapReduce<\/strong> framework which is introduced by Google. It offers a simple interface for the parallelization as well as the distribution of large-scale computations. <\/span><\/p>\n<p><span style=\"font-weight: 400\">In addition, it has its own distributed data filesystem which we call as <strong>HDFS<\/strong> (Hadoop Distributed File System). To understand HDFS, it splits the data into small pieces (called blocks) and further distributes it to all the nodes in any typical Hadoop cluster. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Moreover, it creates the replication of these small pieces of data as well as it stores them to ensure that the data is available from another node if any node is down.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Now, here is an image showing the high-level view of a multi-node Hadoop cluster:<\/span><\/p>\n<div id=\"attachment_25677\" style=\"width: 1090px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Multi-node-Cluster.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-25677\" class=\"wp-image-25677 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Multi-node-Cluster.png\" alt=\"Kafka- Hadoop integration\" width=\"1080\" height=\"1080\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Multi-node-Cluster.png 1080w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Multi-node-Cluster-150x150.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Multi-node-Cluster-300x300.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Multi-node-Cluster-768x768.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Multi-node-Cluster-1024x1024.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Multi-node-Cluster-100x100.png 100w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/a><p id=\"caption-attachment-25677\" class=\"wp-caption-text\">Hadoop Multinode Cluster<\/p><\/div>\n<h3><span style=\"font-weight: 400\">a. Main Components of Hadoop<\/span><\/h3>\n<p>Following are the <strong>Hadoop Components<\/strong>:<\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Name Node<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">A single point of interaction for HDFS is what we call Namenode. As its job, it keeps the information about the small pieces (blocks) of data which are distributed among node.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Secondary Namenode<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">In case of a name node failure, it stores the edit logs, to restore the latest updated state of HDFS.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Data Node<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">It keeps the actual data which is distributed by the namenode in blocks as well as keeps the replicated copy of data from other nodes.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Job Tracker<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">In order to split the <strong>MapReduce jobs<\/strong> into smaller tasks, Job Tracker helps.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><strong>Task Tracker<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Whereas, for the execution of tasks split by the job tracker, the task tracker is responsible.<\/span><br \/>\n<span style=\"font-weight: 400\">Although, make sure that the task tracker and the data nodes share the same machines.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Kafka Hadoop Integration<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In order to build a pipeline which is available for real-time processing or monitoring as well as to load the data into Hadoop, NoSQL, or data warehousing systems for offline processing and reporting, especially for real-time <strong>publish-subscribe<\/strong> use cases, we use Kafka.<\/span><\/p>\n<h3>a. Hadoop producer<\/h3>\n<p><span style=\"font-weight: 400\">In order to publish the data from a <strong>Hadoop Cluster<\/strong> to Kafka, a Hadoop producer offers a bridge you can see in the below image:<\/span><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Producer-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-25678 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Producer-1.png\" alt=\"Kafka- Hadoop integration\" width=\"1080\" height=\"1080\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Producer-1.png 1080w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Producer-1-150x150.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Producer-1-300x300.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Producer-1-768x768.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Producer-1-1024x1024.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Producer-1-100x100.png 100w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Moreover, <strong>Kafka topics<\/strong> are considered as URIs, for a <strong>Kafka producer<\/strong>. Though, URIs are specified below, \u00a0to connect to a specific <strong>Kafka broker<\/strong>:<\/span><br \/>\n<b>kafka:\/\/&lt;kafka-broker&gt;\/&lt;kafka-topic&gt;<\/b><br \/>\n<span style=\"font-weight: 400\">Well, for getting the data from Hadoop, the Hadoop producer code suggests two possible approaches, they are:<\/span><\/p>\n<ul>\n<li><strong> Using the Pig script and writing messages in Avro format<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Basically, for writing data in a binary <strong>Avro<\/strong> format, Kafka producers use<strong> Pig scripts<\/strong>, in this approach. Here each row refers to a single message. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Further, the AvroKafkaStorage class picks the Avro schema as its first argument and then connects to the Kafka URI, in order to push the data into the <strong>Kafka cluster<\/strong>. Moreover, we can easily write to multiple topics and brokers in the same Pig script-based job, by using the AvroKafkaStorage producer.<\/span><\/p>\n<ul>\n<li><strong>Using the Kafka OutputFormat class for jobs<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Now, in the second method, for publishing data to the Kafka cluster, the Kafka OutputFormat class (extends Hadoop&#8217;s OutputFormat class) is used. Here, by using low-level methods of publishing, it publishes messages as bytes and also offers control over the output. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Although, for writing a record (message) to a Hadoop cluster, the Kafka OutputFormat class uses the KafkaRecordWriter class.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In addition, we can also configure Kafka Producer parameters and Kafka Broker information under a job&#8217;s configuration, for Kafka Producers.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">b. Hadoop Consumer<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Whereas, a Hadoop job which pulls data from the <strong>Kafka broker<\/strong> and further pushes it into HDFS, is what we call a Hadoop consumer. Though, from below image, you can see the position of a <strong>Kafka Consumer<\/strong> in the architecture pattern:<\/span><\/p>\n<div id=\"attachment_25679\" style=\"width: 1090px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Consumer.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-25679\" class=\"wp-image-25679 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Consumer.png\" alt=\"Kafka- Hadoop integration\" width=\"1080\" height=\"1080\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Consumer.png 1080w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Consumer-150x150.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Consumer-300x300.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Consumer-768x768.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Consumer-1024x1024.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Hadoop-Consumer-100x100.png 100w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/a><p id=\"caption-attachment-25679\" class=\"wp-caption-text\">Kafka Hadoop integration &#8211; Hadoop Consumer<\/p><\/div>\n<p><span style=\"font-weight: 400\">As a process, a <strong>Hadoop job<\/strong> does perform parallel loading from Kafka to HDFS also some mappers for purpose of loading the data which depends on the number of files in the input directory. Moreover, data coming from Kafka and the updated topic offsets is in the output directory.<\/span><\/p>\n<p><span style=\"font-weight: 400\"> Further, at the end of the map task, individual mappers write the offset of the last consumed message to HDFS. Though, each mapper simply restarts from the offsets stored in HDFS, if a job fails and jobs get restarted.<\/span><\/p>\n<p>So, this was all in Kafka Hadoop Integration. Hope you like our explanation.<\/p>\n<h2><span style=\"font-weight: 400\">Conclusion: Kafka Hadoop integration<\/span><\/h2>\n<p>Hence, we have seen whole about\u00a0Kafka Hadoop integration in detail. Hope it helps!. Furthermore, if you feel any difficulty while learning Kafka Hadoop Integration, feel free to ask in the comment tab.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today, in this Kafka Hadoop Tutorial, we will discuss Kafka Hadoop Integration. Moreover, we will start this tutorial with Hadoop Introduction. Also, we will see Hadoop Producer and Hadoop Consumer in Kafka Integration with&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":25725,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,22],"tags":[2810,5234,5309,5342,7037,7885,7886,7958,7968,7978,15729],"class_list":["post-25675","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kafka","category-hadoop","tag-components-of-hadoop","tag-hadoop-consumer","tag-hadoop-producer","tag-hadoop-tutorial","tag-introduction-to-hadoop","tag-kafka-hadoop","tag-kafka-hdfs-consumer","tag-kafka-to-hdfs-integration","tag-kafka-tutorial","tag-kafka-hadoop-integration","tag-what-is-hadoop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kafka Hadoop Integration | Integrating Hadoop with Kafka - DataFlair<\/title>\n<meta name=\"description\" content=\"Kafka Hadoop Integration,Kafka HDFS Consumer,what is Hadoop,Hadoop Producer,Hadoop Consumer,components of Apache Hadoop,Apache kafka, Kafka 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\/kafka-hadoop-integration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kafka Hadoop Integration | Integrating Hadoop with Kafka - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Kafka Hadoop Integration,Kafka HDFS Consumer,what is Hadoop,Hadoop Producer,Hadoop Consumer,components of Apache Hadoop,Apache kafka, Kafka Tutorial\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/\" \/>\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-23T07:05:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Kafka-Hadoop-Integration-Integrating-Hadoop-with-Kafka-01-1-1.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=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kafka Hadoop Integration | Integrating Hadoop with Kafka - DataFlair","description":"Kafka Hadoop Integration,Kafka HDFS Consumer,what is Hadoop,Hadoop Producer,Hadoop Consumer,components of Apache Hadoop,Apache kafka, Kafka 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\/kafka-hadoop-integration\/","og_locale":"en_US","og_type":"article","og_title":"Kafka Hadoop Integration | Integrating Hadoop with Kafka - DataFlair","og_description":"Kafka Hadoop Integration,Kafka HDFS Consumer,what is Hadoop,Hadoop Producer,Hadoop Consumer,components of Apache Hadoop,Apache kafka, Kafka Tutorial","og_url":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-08-23T07:05:10+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Kafka-Hadoop-Integration-Integrating-Hadoop-with-Kafka-01-1-1.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":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"Kafka Hadoop Integration | Integrating Hadoop with Kafka","datePublished":"2018-08-23T07:05:10+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/"},"wordCount":903,"commentCount":1,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Kafka-Hadoop-Integration-Integrating-Hadoop-with-Kafka-01-1-1.jpg","keywords":["Components of hadoop","Hadoop Consumer","hadoop Producer","hadoop tutorial","introduction to hadoop","Kafka Hadoop","Kafka HDFS Consumer","Kafka to HDFS Integration","Kafka tutorial","Kafka- Hadoop integration","what is hadoop"],"articleSection":["Apache Kafka Tutorials","Hadoop Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/","url":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/","name":"Kafka Hadoop Integration | Integrating Hadoop with Kafka - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Kafka-Hadoop-Integration-Integrating-Hadoop-with-Kafka-01-1-1.jpg","datePublished":"2018-08-23T07:05:10+00:00","description":"Kafka Hadoop Integration,Kafka HDFS Consumer,what is Hadoop,Hadoop Producer,Hadoop Consumer,components of Apache Hadoop,Apache kafka, Kafka Tutorial","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Kafka-Hadoop-Integration-Integrating-Hadoop-with-Kafka-01-1-1.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/08\/Kafka-Hadoop-Integration-Integrating-Hadoop-with-Kafka-01-1-1.jpg","width":1200,"height":628,"caption":"Kafka Hadoop Integration | Integrating Hadoop with Kafka"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/kafka-hadoop-integration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Apache Kafka Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/kafka\/"},{"@type":"ListItem","position":3,"name":"Kafka Hadoop Integration | Integrating Hadoop with Kafka"}]},{"@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\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/25675","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=25675"}],"version-history":[{"count":0,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/25675\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/25725"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=25675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=25675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=25675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}