{"id":20786,"date":"2013-05-10T17:52:57","date_gmt":"2013-05-10T12:22:57","guid":{"rendered":"http:\/\/vskills.in\/certification\/tutorial\/?p=20786"},"modified":"2024-04-12T14:19:52","modified_gmt":"2024-04-12T08:49:52","slug":"classes-3","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/","title":{"rendered":"Classes"},"content":{"rendered":"<p>Package org.apache.hadoop.hbase.mapreduce &#8211; Provides HBase MapReduce Input\/OutputFormats, a table indexing MapReduce job, and utility methods.<\/p>\n<h3>Interface<\/h3>\n<p>VisibilityExpressionResolver \u00a0 \u00a0&#8211; Interface to convert visibility expressions into Tags for storing along with Cells in HFiles.<\/p>\n<h3>Class<\/h3>\n<ul>\n<li>CellCounter &#8211; A job with a a map and reduce phase to count cells in a table.<\/li>\n<li>CellCreator &#8211; Facade to create Cells for HFileOutputFormat.<\/li>\n<li>CellSerialization<\/li>\n<li>CellSortReducer &#8211; Emits sorted Cells.<\/li>\n<li>CopyTable &#8211; Tool used to copy a table to another one which can be on a different setup.<\/li>\n<li>Export &#8211; Export an HBase table.<\/li>\n<li>GroupingTableMapper &#8211; Extract grouping columns from input record.<\/li>\n<li>HFileOutputFormat2 &#8211; Writes HFiles.<\/li>\n<li>HRegionPartitioner&lt;KEY,VALUE&gt; &#8211; This is used to partition the output keys into groups of keys.<\/li>\n<li>IdentityTableMapper &#8211; Pass the given key and record as-is to the reduce phase.<\/li>\n<li>IdentityTableReducer &#8211; Convenience class that simply writes all values (which must be Put or Delete instances) passed to it out to the configured HBase table.<\/li>\n<li>Import &#8211; Import data written by Export.<\/li>\n<li>ImportTsv &#8211; Tool to import data from a TSV file.<\/li>\n<li>LoadIncrementalHFiles<\/li>\n<li>Deprecated<\/li>\n<li>As of release 2.0.0, this will be removed in HBase 3.0.0.<\/li>\n<li>LoadQueueItem<\/li>\n<li>Deprecated<\/li>\n<li>As of release 2.0.0, this will be removed in HBase 3.0.0.<\/li>\n<li>MultiTableHFileOutputFormat &#8211; Create 3 level tree directory, first level is using table name as parent directory and then use family name as child directory, and all related HFiles for one family are under child directory -tableName1 -columnFamilyName1 -columnFamilyName2 -HFiles -tableName2 -columnFamilyName1 -HFiles -columnFamilyName2<\/li>\n<li>MultiTableInputFormat &#8211; Convert HBase tabular data from multiple scanners into a format that is consumable by Map\/Reduce.<\/li>\n<li>MultiTableInputFormatBase &#8211; A base for MultiTableInputFormats.<\/li>\n<li>MultiTableOutputFormat &#8211; Hadoop output format that writes to one or more HBase tables.<\/li>\n<li>MultiTableSnapshotInputFormat &#8211; MultiTableSnapshotInputFormat generalizes TableSnapshotInputFormat allowing a MapReduce job to run over one or more table snapshots, with one or more scans configured for each.<\/li>\n<li>MutationSerialization<\/li>\n<li>PutCombiner&lt;K&gt; &#8211; Combine Puts.<\/li>\n<li>PutSortReducer &#8211; Emits sorted Puts.<\/li>\n<li>ResultSerialization<\/li>\n<li>RowCounter &#8211; A job with a just a map phase to count rows.<\/li>\n<li>SimpleTotalOrderPartitioner&lt;VALUE&gt; &#8211; A partitioner that takes start and end keys and uses bigdecimal to figure which reduce a key belongs to.<\/li>\n<li>TableInputFormat &#8211; Convert HBase tabular data into a format that is consumable by Map\/Reduce.<\/li>\n<li>TableInputFormatBase &#8211; A base for TableInputFormats.<\/li>\n<li>TableMapper&lt;KEYOUT,VALUEOUT&gt; &#8211; Extends the base Mapper class to add the required input key and value classes.<\/li>\n<li>TableMapReduceUtil &#8211; Utility for TableMapper and TableReducer<\/li>\n<li>TableOutputCommitter &#8211; Small committer class that does not do anything.<\/li>\n<li>TableOutputFormat&lt;KEY&gt; &#8211; Convert Map\/Reduce output and write it to an HBase table.<\/li>\n<li>TableRecordReader &#8211; Iterate over an HBase table data, return (ImmutableBytesWritable, Result) pairs.<\/li>\n<li>TableRecordReaderImpl &#8211; Iterate over an HBase table data, return (ImmutableBytesWritable, Result) pairs.<\/li>\n<li>TableReducer&lt;KEYIN,VALUEIN,KEYOUT&gt; &#8211; Extends the basic Reducer class to add the required key and value input\/output classes.<\/li>\n<li>TableSnapshotInputFormat &#8211; TableSnapshotInputFormat allows a MapReduce job to run over a table snapshot.<\/li>\n<li>TableSplit &#8211; A table split corresponds to a key range (low, high) and an optional scanner.<\/li>\n<li>TextSortReducer &#8211; Emits Sorted KeyValues.<\/li>\n<li>TsvImporterMapper &#8211; Write table content out to files in hdfs.<\/li>\n<li>TsvImporterTextMapper &#8211; Write table content out to map output files.<\/li>\n<li>WALInputFormat &#8211; Simple InputFormat for WAL files.<\/li>\n<li>WALPlayer &#8211; A tool to replay WAL files as a M\/R job.<\/li>\n<\/ul>\n<h3>Job Configuration<\/h3>\n<p>The following is an example of using HBase as a MapReduce source in a read-only manner:<\/p>\n<p>Configuration config = HBaseConfiguration.create();<\/p>\n<p>config.set(\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ speculative<\/p>\n<p>\u201cmapred.map.tasks.speculative.execution\u201d, \/\/ execution will<\/p>\n<p>\u201cfalse\u201d);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ decrease performance<\/p>\n<p>\/\/ or damage the data<\/p>\n<p>Job job = new Job(config, \u201cExampleRead\u201d);<\/p>\n<p>job.setJarByClass(MyReadJob.class); \/\/ class that contains mapper<\/p>\n<p>Scan scan = new Scan();<\/p>\n<p>scan.setCaching(500);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ 1 is the default in Scan,<\/p>\n<p>\/\/ which will be bad for MapReduce jobs<\/p>\n<p>scan.setCacheBlocks(false);\u00a0\u00a0 \/\/ don\u2019t set to true for MR jobs<\/p>\n<p>\/\/ set other scan attrs<\/p>\n<p>&#8230;<\/p>\n<p>TableMapReduceUtil.initTableMapperJob(<\/p>\n<p>tableName,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ input HBase table name<\/p>\n<p>scan,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Scan instance to control CF and attribute selection<\/p>\n<p>MyMapper.class,\u00a0\u00a0 \/\/ mapper<\/p>\n<p>null,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ mapper output key<\/p>\n<p>null,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ mapper output value<\/p>\n<p>job);<\/p>\n<p>job.setOutputFormatClass(NullOutputFormat.class); \/\/ because we<\/p>\n<p>\/\/ aren\u2019t emitting anything from mapper<\/p>\n<p>boolean b = job.waitForCompletion(true);<\/p>\n<p>if (!b) {<\/p>\n<p>throw new IOException(\u201cerror with job!\u201d);<\/p>\n<p>}<\/p>\n<p>The mapper instance would extend TableMapper, too, like this:<\/p>\n<p>public static class MyMapper extends TableMapper&lt;Text, Text&gt; {<\/p>\n<p>public void map(ImmutableBytesWritable row, Result value, Context context)<\/p>\n<p>throws InterruptedException, IOException {<\/p>\n<p>\/\/ process data for the row from the Result instance.<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<h3>Map Tasks Number<\/h3>\n<p>When TableInputFormat is used (set by default with TableMapReduceUtil. initTableMapperJob(&#8230;)) to read an HBase table for input to a MapReduce job, its splitter will make a map task for each region of the table. Thus, if 100 regions are in the table, there will be 100 map tasks for the job, regardless of how many column families are selected in the Scan. To implement a different behavior (custom splitters), see the method getSplits in TableInputFormatBase (either override in custom-splitter class or use as example).<\/p>\n<p>Writing to HBase<\/p>\n<h3>Job Configuration<\/h3>\n<p>The following is an example of using HBase both as a source and as a sink with MapReduce:<\/p>\n<p>Configuration config = &#8230;; \/\/ configuring reading<\/p>\n<p>Job job = &#8230;; \/\/ from HBase table<\/p>\n<p>Scan scan = &#8230;; \/\/ is the same as in<\/p>\n<p>TableMapReduceUtil \/\/ read-only example<\/p>\n<p>.initTableMapperJob(&#8230;); \/\/ above<\/p>\n<p>TableMapReduceUtil.initTableReducerJob(<\/p>\n<p>targetTable, \/\/ output table<\/p>\n<p>MyTableReducer.class, \/\/ reducer class<\/p>\n<p>job);<\/p>\n<p>job.setNumReduceTasks(1); \/\/ at least one, adjust as required<\/p>\n<p>boolean b = job.waitForCompletion(true);<\/p>\n<p>And the reducer instance would extend TableReducer, as shown here:<\/p>\n<p>public static class MyTableReducer extends TableReducer&lt;Text, IntWritable,<\/p>\n<p>ImmutableBytesWritable&gt; {<\/p>\n<p>public void reduce(Text key, Iterable<\/p>\n<p>values, Context context)<\/p>\n<p>throws IOException, InterruptedException {<\/p>\n<p>&#8230;<\/p>\n<p>Put put = &#8230;; \/\/ data to be written<\/p>\n<p>context.write(null, put);<\/p>\n<p>&#8230;<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<div class=\"apply\">\n<h3>Apply for HBase Certification Now!!<\/h3>\n<p><a href=\"http:\/\/www.vskills.in\/certification\/Certified-HBase-Professional\">http:\/\/www.vskills.in\/certification\/Certified-HBase-Professional<\/a><\/p>\n<h5>Go To- <a href=\"https:\/\/www.vskills.in\/certification\/tutorial\/certified-hbase-professional\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Certified HBase Professional Tutorial<\/strong><\/a><\/h5>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Package org.apache.hadoop.hbase.mapreduce &#8211; Provides HBase MapReduce Input\/OutputFormats, a table indexing MapReduce job, and utility methods. Interface VisibilityExpressionResolver \u00a0 \u00a0&#8211; Interface to convert visibility expressions into Tags for storing along with Cells in HFiles. Class CellCounter &#8211; A job with a a map and reduce phase to count cells in a table. CellCreator &#8211; Facade to&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[69],"tags":[],"class_list":["post-20786","page","type-page","status-publish","hentry","category-hbase"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Classes Tutorials<\/title>\n<meta name=\"description\" content=\"Classes Tutorials\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Classes Tutorials\" \/>\n<meta property=\"og:description\" content=\"Classes Tutorials\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutorial\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vskills.in\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T08:49:52+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/\",\"name\":\"Classes Tutorials\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"datePublished\":\"2013-05-10T12:22:57+00:00\",\"dateModified\":\"2024-04-12T08:49:52+00:00\",\"description\":\"Classes Tutorials\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Classes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"name\":\"Tutorial\",\"description\":\"Vskills - A initiative in elearning and certification\",\"publisher\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\",\"name\":\"Vskills\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"contentUrl\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"width\":73,\"height\":55,\"caption\":\"Vskills\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vskills.in\/\",\"https:\/\/x.com\/vskills_in\",\"https:\/\/www.linkedin.com\/company-beta\/1371554\/\",\"https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Classes Tutorials","description":"Classes Tutorials","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:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/","og_locale":"en_US","og_type":"article","og_title":"Classes Tutorials","og_description":"Classes Tutorials","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-04-12T08:49:52+00:00","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/","name":"Classes Tutorials","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"datePublished":"2013-05-10T12:22:57+00:00","dateModified":"2024-04-12T08:49:52+00:00","description":"Classes Tutorials","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/classes-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Classes"}]},{"@type":"WebSite","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","name":"Tutorial","description":"Vskills - A initiative in elearning and certification","publisher":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization","name":"Vskills","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","contentUrl":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","width":73,"height":55,"caption":"Vskills"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vskills.in\/","https:\/\/x.com\/vskills_in","https:\/\/www.linkedin.com\/company-beta\/1371554\/","https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/20786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/comments?post=20786"}],"version-history":[{"count":7,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/20786\/revisions"}],"predecessor-version":[{"id":127363,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/20786\/revisions\/127363"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=20786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=20786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=20786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}