{"id":181,"date":"2016-03-23T09:51:54","date_gmt":"2016-03-23T08:51:54","guid":{"rendered":"http:\/\/dimajix.de\/?p=181"},"modified":"2023-06-26T07:41:29","modified_gmt":"2023-06-26T05:41:29","slug":"building-druid-for-cloudera-5-4-x","status":"publish","type":"post","link":"https:\/\/dimajix.de\/en\/building-druid-for-cloudera-5-4-x\/","title":{"rendered":"Building Druid for Cloudera 5.4.x"},"content":{"rendered":"<p>So the other day I wanted to investigate into using <a href=\"http:\/\/druid.io\/\">Druid<\/a> as a reporting backend database. But unfortunately Druid doesn&#8217;t work out of the box with Cloudera 5.4. I always get an error when running the Hadoop indexer, either via CLI or via the Indexing service. The exceptions in Hadoop always look like this:<\/p>\n<pre><code>2015-11-30 11:42:37,653 ERROR [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.VerifyError: class com.fasterxml.jackson.datatype.guava.deser.HostAndPortDeserializer overrides final method deserialize.(Lcom\/fasterxml\/jackson\/core\/JsonParser;Lcom\/fasterxml\/jackson\/databind\/DeserializationContext;)Ljava\/lang\/Object;\r\n    at java.lang.ClassLoader.defineClass1(Native Method)\r\n    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)\r\n    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)\r\n    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)\r\n    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)\r\n    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)\r\n    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)\r\n    ...\r\n<\/code><\/pre>\n<p>So the problem seems to be a classical version mismatch between Cloudera Hadoop and Druid. Specifically both projects are using incompatible versions of the Jackson libraries (Cloudera still uses 2.2.3 while Druid uses 2.4.6). After some trials with different Jackson versions I got it to work by modifying the dependencies of Druid itself and building it myself. Since I suspect that others may run into similar problems, here is what I did to get Druid up and running:<\/p>\n<pre><code>git clone https:\/\/github.com\/druid-io\/druid.git\r\ncd druid\r\ngit checkout 0.8.2\r\nsed -i \"s#jackson.version&gt;2.4.6&lt;#jackson.version&gt;2.3.5&lt;#\" pom.xml\r\nmvn package -DskipTests\r\n<\/code><\/pre>\n<p>After that you will find a packaged version of Druid at<\/p>\n<pre><code>distribution\/target\/druid-0.8.3-SNAPSHOT-bin.tar.gz\r\n<\/code><\/pre>\n<p>which should work with Cloudera 5.4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So the other day I wanted to investigate into using Druid as a reporting backend database. But unfortunately Druid doesn&#8217;t work out of the box with Cloudera 5.4. I always&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[16],"class_list":["post-181","post","type-post","status-publish","format-standard","tag-hadoop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Building Druid for Cloudera 5.4.x - Dimajix<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building Druid for Cloudera 5.4.x - Dimajix\" \/>\n<meta property=\"og:description\" content=\"So the other day I wanted to investigate into using Druid as a reporting backend database. But unfortunately Druid doesn&#8217;t work out of the box with Cloudera 5.4. I always...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en\" \/>\n<meta property=\"og:site_name\" content=\"Dimajix\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-23T08:51:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-26T05:41:29+00:00\" \/>\n<meta name=\"author\" content=\"dominik_adm1n\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@KupferschmidtK\" \/>\n<meta name=\"twitter:site\" content=\"@KupferschmidtK\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"dominik_adm1n\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/dimajix.de\\\/building-druid-for-cloudera-5-4-x\\\/?lang=en#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dimajix.de\\\/building-druid-for-cloudera-5-4-x\\\/?lang=en\"},\"author\":{\"name\":\"dominik_adm1n\",\"@id\":\"https:\\\/\\\/dimajix.de\\\/#\\\/schema\\\/person\\\/7c25f770d9502758fee46b0cc398bf44\"},\"headline\":\"Building Druid for Cloudera 5.4.x\",\"datePublished\":\"2016-03-23T08:51:54+00:00\",\"dateModified\":\"2023-06-26T05:41:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/dimajix.de\\\/building-druid-for-cloudera-5-4-x\\\/?lang=en\"},\"wordCount\":151,\"publisher\":{\"@id\":\"https:\\\/\\\/dimajix.de\\\/#organization\"},\"keywords\":[\"Hadoop\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dimajix.de\\\/building-druid-for-cloudera-5-4-x\\\/?lang=en\",\"url\":\"https:\\\/\\\/dimajix.de\\\/building-druid-for-cloudera-5-4-x\\\/?lang=en\",\"name\":\"Building Druid for Cloudera 5.4.x - Dimajix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dimajix.de\\\/#website\"},\"datePublished\":\"2016-03-23T08:51:54+00:00\",\"dateModified\":\"2023-06-26T05:41:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dimajix.de\\\/building-druid-for-cloudera-5-4-x\\\/?lang=en#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dimajix.de\\\/building-druid-for-cloudera-5-4-x\\\/?lang=en\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dimajix.de\\\/building-druid-for-cloudera-5-4-x\\\/?lang=en#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/dimajix.de\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building Druid for Cloudera 5.4.x\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dimajix.de\\\/#website\",\"url\":\"https:\\\/\\\/dimajix.de\\\/\",\"name\":\"Dimajix\",\"description\":\"Data. Analytics. Intelligence.\",\"publisher\":{\"@id\":\"https:\\\/\\\/dimajix.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dimajix.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dimajix.de\\\/#organization\",\"name\":\"dimajix\",\"url\":\"https:\\\/\\\/dimajix.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dimajix.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/dimajix.de\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/fav.png\",\"contentUrl\":\"https:\\\/\\\/dimajix.de\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/fav.png\",\"width\":347,\"height\":346,\"caption\":\"dimajix\"},\"image\":{\"@id\":\"https:\\\/\\\/dimajix.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/KupferschmidtK\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kaya-kupferschmidt\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/dimajix.de\\\/#\\\/schema\\\/person\\\/7c25f770d9502758fee46b0cc398bf44\",\"name\":\"dominik_adm1n\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/97a1070286c637ec8d76acb01025996dbd1a693791e761537e7cb942f4a5d2e2?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/97a1070286c637ec8d76acb01025996dbd1a693791e761537e7cb942f4a5d2e2?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/97a1070286c637ec8d76acb01025996dbd1a693791e761537e7cb942f4a5d2e2?s=96&r=g\",\"caption\":\"dominik_adm1n\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building Druid for Cloudera 5.4.x - Dimajix","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:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en","og_locale":"en_US","og_type":"article","og_title":"Building Druid for Cloudera 5.4.x - Dimajix","og_description":"So the other day I wanted to investigate into using Druid as a reporting backend database. But unfortunately Druid doesn&#8217;t work out of the box with Cloudera 5.4. I always...","og_url":"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en","og_site_name":"Dimajix","article_published_time":"2016-03-23T08:51:54+00:00","article_modified_time":"2023-06-26T05:41:29+00:00","author":"dominik_adm1n","twitter_card":"summary_large_image","twitter_creator":"@KupferschmidtK","twitter_site":"@KupferschmidtK","twitter_misc":{"Written by":"dominik_adm1n","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en#article","isPartOf":{"@id":"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en"},"author":{"name":"dominik_adm1n","@id":"https:\/\/dimajix.de\/#\/schema\/person\/7c25f770d9502758fee46b0cc398bf44"},"headline":"Building Druid for Cloudera 5.4.x","datePublished":"2016-03-23T08:51:54+00:00","dateModified":"2023-06-26T05:41:29+00:00","mainEntityOfPage":{"@id":"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en"},"wordCount":151,"publisher":{"@id":"https:\/\/dimajix.de\/#organization"},"keywords":["Hadoop"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en","url":"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en","name":"Building Druid for Cloudera 5.4.x - Dimajix","isPartOf":{"@id":"https:\/\/dimajix.de\/#website"},"datePublished":"2016-03-23T08:51:54+00:00","dateModified":"2023-06-26T05:41:29+00:00","breadcrumb":{"@id":"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dimajix.de\/building-druid-for-cloudera-5-4-x\/?lang=en#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/dimajix.de\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Building Druid for Cloudera 5.4.x"}]},{"@type":"WebSite","@id":"https:\/\/dimajix.de\/#website","url":"https:\/\/dimajix.de\/","name":"Dimajix","description":"Data. Analytics. Intelligence.","publisher":{"@id":"https:\/\/dimajix.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dimajix.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dimajix.de\/#organization","name":"dimajix","url":"https:\/\/dimajix.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dimajix.de\/#\/schema\/logo\/image\/","url":"https:\/\/dimajix.de\/wp-content\/uploads\/2020\/06\/fav.png","contentUrl":"https:\/\/dimajix.de\/wp-content\/uploads\/2020\/06\/fav.png","width":347,"height":346,"caption":"dimajix"},"image":{"@id":"https:\/\/dimajix.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/KupferschmidtK","https:\/\/www.linkedin.com\/in\/kaya-kupferschmidt\/"]},{"@type":"Person","@id":"https:\/\/dimajix.de\/#\/schema\/person\/7c25f770d9502758fee46b0cc398bf44","name":"dominik_adm1n","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/97a1070286c637ec8d76acb01025996dbd1a693791e761537e7cb942f4a5d2e2?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/97a1070286c637ec8d76acb01025996dbd1a693791e761537e7cb942f4a5d2e2?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/97a1070286c637ec8d76acb01025996dbd1a693791e761537e7cb942f4a5d2e2?s=96&r=g","caption":"dominik_adm1n"}}]}},"_links":{"self":[{"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/posts\/181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/comments?post=181"}],"version-history":[{"count":1,"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/posts\/181\/revisions"}],"predecessor-version":[{"id":182,"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/posts\/181\/revisions\/182"}],"wp:attachment":[{"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/media?parent=181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/categories?post=181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dimajix.de\/en\/wp-json\/wp\/v2\/tags?post=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}