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
相关内容
相关推荐
总之,Java在Hive和HBase的数据交互中起到桥梁作用,通过精心设计的数据处理流程和合理的利用HBase的Bulk Load特性,可以高效地将Hive中的大量数据导入到HBase,满足实时查询的需求。在大数据场景下,这种方案具有很...
mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载
标题中的“hadoop的mapreduce把oracle/mysq导入到hbase和hdfs中的程序”指的是一项数据处理任务,利用Hadoop的MapReduce框架,将关系型数据库(如Oracle和MySQL)中的数据高效地迁移至分布式存储系统HDFS(Hadoop ...
因此,通过 MapReduce 这种并行计算框架,可以从 HDFS 中将数据导入到 HBase,或者将 HBase 中的数据导出到 HDFS。 MapReduce 包含 Map 和 Reduce 两个主要阶段,Map 阶段将输入数据分片并进行并行处理,Reduce ...
2. **创建HBase表**:在运行MapReduce作业之前,需要在HBase中创建目标表,定义好列族和列。 3. **生成HFile**:MapReduce作业完成后,HFile文件会存在于HDFS上。这些文件是HBase可以直接读取的格式。 4. **HFile...
数据迁移的核心在于编写Java代码,将MySQL中的数据读取并写入到HBase中。这里我们使用JDBC连接MySQL,使用HBase Java API操作HBase。以下是一个简单的示例: ```java import org.apache.hadoop.conf.Configuration;...
3. **数据准备**:可能包含一些模拟数据或实际数据,用于演示MapReduce任务的输入和HBase中的存储。 4. **运行脚本**:指导用户如何提交MapReduce作业到Hadoop集群,并监控作业执行情况。 5. **结果分析**:对...
图像块被编码后存储在HBase中,便于高效定位和访问。 实验结果显示,随着Hadoop和HBase集群规模的扩大,图像数据的导入和检索速度显著提高。这种方法尤其适用于处理大量遥感图像,可以在普通X86架构的服务器上实现...
在HBase中,MapReduce主要用于批量导入/导出数据、查询优化以及复杂的分析任务。通过HBase的TableInputFormat和TableOutputFormat,MapReduce作业可以直接读取和写入HBase表。Map阶段可以对表中的行或列族进行操作,...
本主题将详细讲解如何将HDFS(Hadoop Distributed File System)上的文件导入到HBase中,并以在Cloudera SCM的CDH 4.8.1产品环境中的源代码实现为例进行阐述。 首先,理解HDFS和HBase的基本原理至关重要。HDFS是...
本篇文章将详细介绍如何将关系型数据库的数据导入到Hbase中,包括离线和实时两种方式。 1. 离线数据导入: 离线数据导入通常在系统低峰期进行,适用于大量数据迁移。常见的工具包括Apache Nifi、Sqoop和Hadoop ...
标题中的“hbase导入话单数据mapreduce函数实现执行过程实例”揭示了本文将探讨如何使用MapReduce在HBase中导入大数据,特别是话单记录。HBase是一个分布式、版本化的NoSQL数据库,常用于处理大规模的数据。...
1. **预分区**:在导入数据前,根据预计的数据量创建足够的区域(region),避免数据导入过程中动态分区导致的性能损耗。 2. **使用HFileOutputFormat**:HBase提供了HFileOutputFormat类,可以将数据直接写入HFile...
2. HBase到Hive:通过MapReduce任务,将HBase中的数据导入到Hive,创建Hive表并加载数据。也可以使用HBaseSerDe来解析HBase数据。 三、HBase和HDFS互导 1. HBase到HDFS:可以通过HBase的Export工具,将HBase表的...
【MapReduce输出至HBase详解】 MapReduce是Apache Hadoop框架中的一个核心组件,用于处理和生成大数据集。...在实际操作中,根据具体业务需求和数据特点进行调整,能够更好地发挥MapReduce和HBase的联合优势。
HBase中数据的修改实质上是添加新数据。`put '表名', '行值', '列族:列名', '数据'`命令用于向表中插入或更新数据。每个插入的数据都有一个时间戳,HBase可以通过时间戳来实现版本控制。 #### 9. Filter操作 HBase...
- 运行Sqoop命令,将MySQL数据导入到HBase中。 **4. 使用HBase Java API把数据从本地导入到HBase中**: - 创建Java项目,导入HBase相关依赖库。 - 使用HBase的Admin API创建HBase表。 - 编写代码,使用Table和...
hbase导入hbase导入
在这个场景下,我们讨论的是如何在HBase中导入测试数据集,这通常在系统开发、测试和性能优化的过程中非常关键。 首先,我们需要了解HBase的基本概念。HBase通过表、行、列族和时间戳来组织数据。表是由行组成的,...
在本文中,我们将深入探讨如何使用通用MapReduce程序来复制HBase表数据。MapReduce是一种分布式计算模型,常用于处理大规模数据集,而HBase是一个分布式、列式存储的NoSQL数据库,适合处理大规模结构化数据。通过...