hbase(main):002:0> describe 'tab1' DESCRIPTION ENABLED {NAME => 'tab1', FAMILIES => [{NAME => 'f1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICA true TION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_ DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', BLOCKCACHE => 'true'}]}
package com.bfd.hbase_mr; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.util.ToolRunner; public class TxtHbase { public static void main(String [] args) throws Exception{ int mr; mr = ToolRunner.run(new Configuration(),new THDriver(),args); System.exit(mr); } }
package com.bfd.hbase_mr; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.util.Tool; public class THDriver extends Configured implements Tool{ @Override public int run(String[] arg0) throws Exception { Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum.", "bfdbjc2:2181,bfdbjc3:2181,bfdbjc4:2181"); //千万别忘记配置 Job job = new Job(conf,"Txt-to-Hbase"); job.setJarByClass(TxtHbase.class); Path in = new Path("hdfs://bfdbjc1:12000/user/work/a.txt"); job.setInputFormatClass(TextInputFormat.class); FileInputFormat.addInputPath(job, in); job.setMapperClass(THMapper.class); job.setReducerClass(THReducer.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(Text.class); TableMapReduceUtil.initTableReducerJob("tab1", THReducer.class, job); job.waitForCompletion(true); return 0; } }
package com.bfd.hbase_mr; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; public class THMapper extends Mapper<LongWritable,Text,Text,Text>{ public void map(LongWritable key,Text value,Context context){ String[] items = value.toString().split(" "); String k = items[0]; String v = items[1]; System.out.println("key:"+k+","+"value:"+v); try { context.write(new Text(k), new Text(v)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package com.bfd.hbase_mr; import java.io.IOException; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; import org.apache.hadoop.hbase.mapreduce.TableReducer; import org.apache.hadoop.io.Text; public class THReducer extends TableReducer<Text,Text,ImmutableBytesWritable>{ public void reduce(Text key,Iterable<Text> value,Context context){ String k = key.toString(); String v = value.iterator().next().toString(); //由数据知道value就只有一行 Put putrow = new Put(k.getBytes()); putrow.add("f1".getBytes(), "qualifier".getBytes(), v.getBytes()); try { context.write(new ImmutableBytesWritable(key.getBytes()), putrow); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }
数据:
name1183 value1183
name1184 value1184
name1185 value1185
name1186 value1186
name1187 value1187
name1188 value1188
name1189 value1189
name1190 value1190
name1191 value1191
name1192 value1192
name1193 value1193
name1194 value1194
name1195 value1195
name1196 value1196
name1197 value1197
name1198 value1198
name1199 value1199
相关推荐
基于MapReduce和HBase的海量网络数据处理 大数据时代,网络数据的处理和分析变得越来越重要。传统的网络数据处理模式已经无法满足大数据量的需求,需要寻求更高效的网络数据计算模式和数据存储模式。基于MapReduce...
HBase是一个分布式、版本化的NoSQL数据库,基于Apache Hadoop,适用于大规模数据存储。以下是一个详细的过程,讲解如何实现这个功能。 首先,确保你的开发环境已经配置了Java和HBase的相关依赖。你需要添加HBase的...
通过HBase的TableInputFormat和TableOutputFormat,MapReduce作业可以直接读取和写入HBase表。Map阶段可以对表中的行或列族进行操作,Reduce阶段则负责数据的汇总和整合。 四、Eclipse工程实践 本实例中提供的...
HBase的核心特性包括强一致性的读写操作、水平扩展的架构以及基于行键的索引,这些特性使得它在大数据领域中独树一帜。 MapReduce是处理大数据的一种编程模型,它将复杂的计算任务分解为两个阶段:Map阶段和Reduce...
由于HBase和Hadoop都是基于HDFS(Hadoop文件系统)构建的,所以它们之间的这种集成是无缝的。 HBase提供了一些特定的类和方法来支持MapReduce操作。开发者可以利用这些类和方法,将MapReduce作业和HBase数据表进行...
HDFS 是 Hadoop 的分布式文件系统,而 HBase 是基于 Hadoop 的一个分布式、列族式的数据库,适用于实时查询大规模数据集。 在大数据处理中,数据的导入导出是常见的操作。HDFS 用于存储大量数据,而 HBase 提供了...
HBase与Hadoop的集成通常通过HBase的Hadoop接口实现,允许MapReduce作业直接将数据写入HBase。这种方式可以充分利用Hadoop的并行处理能力和HBase的分布式存储特性,提高数据处理效率。 总结来说,这个项目涉及了从...
在大数据处理领域,Hadoop生态系统中的HDFS(Hadoop Distributed File System)、MapReduce、Hive和HBase是四个至关重要的组件。本资料“HDFS+MapReduce+Hive+HBase十分钟快速入门”旨在帮助初学者迅速理解这些技术...
【描述】"基于mapreduce的小型电影推荐系统,使用javaweb的方式实现,包含数据集"暗示了项目结构和数据处理的两个关键点。首先,项目采用Java Web技术来设计用户交互的网页和服务器端处理程序,这可能包括Servlets、...
3. 实现TableOutputFormat:MapReduce的输出格式默认为文件,但要将结果直接写入HBase,需自定义TableOutputFormat类,使其能够将MapReduce的输出直接转化为HBase的Put操作。 4. 写入HBase:在Reduce阶段,每个...
- **配置HBase连接**:在`hbase-site.xml`配置文件中,你需要指定HBase的Zookeeper地址,这样MapReduce任务就能找到HBase集群。 - **编写Mapper和Reducer**:接着,编写MapReduce作业,Mapper类负责从HBase中读取...
HBase是一种开源的非关系型分布式数据库(NoSQL),基于Google的BigTable模型,运行在Hadoop文件系统(HDFS)之上,适合于处理大量的稀疏数据集。HBase提供了易用的Shell命令行接口进行数据库操作,以下是基于提供的...
这包括HDFS(Hadoop分布式文件系统)的读写,MapReduce任务的提交,以及Hadoop其他组件的集成。 在Hadoop部分,我们需要了解其核心组件HDFS。HDFS是一个分布式文件系统,它允许数据跨多台机器进行存储和处理,从而...
HBase则是基于HDFS的NoSQL数据库,它以行和列的形式存储数据,且支持快速随机读取,这使得它成为处理大规模结构化数据的理想选择。 要将HDFS上的文件导入HBase,通常会涉及以下几个步骤: 1. **数据预处理**:HDFS...
7. **mapred-site.xml**: 如果HBase使用MapReduce进行批处理操作,这个文件会包含MapReduce的配置,如`mapreduce.framework.name`设定运行框架(通常是YARN)。 8. **yarn-site.xml**: 对于运行在YARN上的HBase,这...
标题中的“hadoop的mapreduce把oracle/mysq导入到hbase和hdfs中的程序”指的是一项数据处理任务,利用Hadoop的MapReduce框架,将关系型数据库(如Oracle和MySQL)中的数据高效地迁移至分布式存储系统HDFS(Hadoop ...
HBase是基于Apache Hadoop的分布式列式数据库,适合存储非结构化和半结构化数据。在本项目中,HBase作为数据存储平台,用于保存经过MapReduce处理后的结果。HBase以行键、列族、列和时间戳为四维存储模式,支持实时...
标题中的“hbase导入话单数据mapreduce函数实现执行过程实例”揭示了本文将探讨如何使用MapReduce在HBase中导入大数据,特别是话单记录。HBase是一个分布式、版本化的NoSQL数据库,常用于处理大规模的数据。...
HBase是Apache软件基金会的一个开源项目,是一款基于Google Bigtable理念设计的分布式列式数据库,专为处理海量数据而设计。它运行在Hadoop之上,充分利用了HDFS(Hadoop Distributed File System)作为其底层存储...