1. 代码编写
/** * 参考 org.apache.hadoop.hbase.mapreduce.ImportTsv * org.apache.hadoop.hbase.mapreduce.TsvImporterMapper * @author Hyman */ public class ImportEmp extends Configured implements Tool{ public static final String COLUMN_FAMILY = "info"; public static final String[] COLUMNS = new String[]{"rowkey","name","deptname","leader","joindate","sal","exp","deptno"}; //7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30 static class ImportEmpMapper extends Mapper<LongWritable, Text, ImmutableBytesWritable, Put>{ ImmutableBytesWritable outkey = new ImmutableBytesWritable(); @Override protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, ImmutableBytesWritable, Put>.Context context) throws IOException, InterruptedException { String line = value.toString(); //TODO validate data // .... String[] fields = new String[8]; StringTokenizer token = new StringTokenizer(line); int i = 0; while (token.hasMoreTokens()){ fields[i++] = token.nextToken(); } outkey.set(Bytes.toBytes(fields[0])); Put put = new Put(Bytes.toBytes(fields[0])); for(int index=1;index<8 ;index++){ if(StringUtils.isNotEmpty(fields[index])) put.add(Bytes.toBytes(COLUMN_FAMILY),Bytes.toBytes(COLUMNS[index]), Bytes.toBytes(fields[index])); } context.write(outkey,put); } } public int run(String[] args) throws Exception { Job job = Job.getInstance(this.getConf(), this.getClass().getSimpleName()); job.setJarByClass(this.getClass()); job.setMapperClass(ImportEmpMapper.class); job.setMapOutputKeyClass(ImmutableBytesWritable.class); job.setMapOutputValueClass(Put.class); FileInputFormat.addInputPath(job, new Path(args[1])); TableMapReduceUtil.initTableReducerJob( args[0], // output table null, // reducer class job// ); job.setNumReduceTasks(0); // at least one, adjust as required int exitcode = job.waitForCompletion(true) ? 0 : 1; return exitcode; } public static void main(String[] args) throws Exception{ Configuration conf = HBaseConfiguration.create(); int exitcode = ToolRunner.run(// conf, // new ImportEmp(), // args// ); System.exit(exitcode); } }
2.打包运行
在hbase中创建emp表(create 'emp','info')。export jar包($HADOOP_HOME/jars/mapred.jar)
准备数据:上传到HDFS文件系统中(/user/ehp/hbase/importtsv/emp/input)
数据文件 emp.txt
7369 HEHE CLERK 7902 1980-12-17 800.00 20 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30 7566 JONES MANAGER 7839 1981-4-2 2975.00 20 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30 7782 CLARK MANAGER 7839 1981-6-9 2450.00 10 7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20 7839 KING PRESIDENT 1981-11-17 5000.00 10 7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.00 30 7876 ADAMS CLERK 7788 1987-5-23 1100.00 20 7900 JAMES CLERK 7698 1981-12-3 950.00 30 7902 FORD ANALYST 7566 1981-12-3 3000.00 20
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`:${HBASE_HOME}/conf \ yarn jar $HADOOP_HOME/jars/mapred.jar \ com.hyman.ehp.mapred.hbase.ImportEmp \ emp \ /user/ehp/hbase/importtsv/emp/input
相关内容
相关推荐
mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载
利用hadoop的mapreduce把oracle/mysql中的数据导入到hbase和hdfs中的两个java程序
一、 HBase技术介绍 HBase简介 HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统... Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。
hbase导入hbase导入
编写MR程序,让其可以适合大部分的HBase表数据导入到HBase表数据。其中包括可以设置版本数、可以设置输入表的列导入设置(选取其中某几列)、可以设置输出表的列导出设置(选取其中某几列)。 原始表test1数据如下: 每...
htabse 命令的基本操作步骤,1.熟悉使用HBase操作常用的Shell命令。 2.学会表和族的属性操作。 3.学会Filter操作。 4.学会时间戳和数据版本的操作。 学会数据批量导入。
本书探讨了如何通过使用与HBase高度集成的Hadoop将HBase的可伸缩性变得简单;把大型数据集分布到相对廉价的商业服务器...在HBase中集成MapReduce框架;了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。
探讨了与Hadoop的高度集成如何使HBase的可伸缩性变得简单...在HBase中集成用于海量并行数据处理任务的Hadoop的MapReduce框架;助你了解如何调节集群、设计模式、拷贝表、导入批量数据、删除节点以及其他更多的任务等。
高清英文PDF版。 如果你正在寻找一种具备可伸缩性的存储... ■在hbase中集成用于海量并行数据处理任务的hadoop的mapreduce框架 ■了解如何调节集群、设计模式、拷贝表、导入批量数据、删除节点以及其他更多的任务
这是一篇博客的附件。 博客地址:http://blog.csdn.net/luckymelina/article/details/22889383
《HBase权威指南》探讨了如何通过使用与HBase高度集成的Hadoop将HBase的可伸缩性变得简单;把大型数据集分布到相对...在HBase中集成MapReduce框架;了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。
《HBase权威指南》探讨了如何通过使用与...在HBase中集成MapReduce框架;了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。 《HBase权威指南》适合使用HBase进行数据库开发的高级数据库研发人员阅读
《HBase权威指南》探讨了如何通过使用与...在HBase中集成MapReduce框架;了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。 《HBase权威指南》适合使用HBase进行数据库开发的高级数据库研发人员阅读。
使用 API 将数据放入工作中,但因为它必须遍历 HBase 的写入路径(即在将其刷新到 HFile 之前通过 WAL 和 memstore),它比您简单地绕过该批次并自己创建 HFiles 和将它们直接复制到 HDFS 中。 幸运的是 HBase 带有...
《HBase权威指南》探讨了如何通过使用与HBase高度集成的Hadoop将HBase的可伸缩性变得简单;...在HBase中集成MapReduce框架;了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。(仅供学习使用)