`
beat_it_
  • 浏览: 63797 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hdfs读取文件插入到hbase简单实例

 
阅读更多

今天搞了个通过hdfs mapper读取文件插入到hbase表的简单实例,在这里记录一下,如下:

java代码(File2HBase1.java):

 

package com.lyq.study.example;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.mapreduce.TableOutputFormat;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

public class File2HBase1 {

	public static class MapperClass extends
			Mapper<LongWritable, Text, ImmutableBytesWritable, Put> {
		//列名
		public static final String[] COLUMNS = { "card", "type",
				"amount", "time", "many" };
	
		public void map(LongWritable key, Text value, Context context)
				throws IOException, InterruptedException {
			String[] cloumnVals = value.toString().split(",");
			String rowkey = cloumnVals[0] + cloumnVals[3];
			Put put = new Put(rowkey.getBytes());
			for (int i = 0; i < cloumnVals.length; i++) {
				put.add("info".getBytes(), COLUMNS[i].getBytes(),
						cloumnVals[i].getBytes());
			}
			context.write(new ImmutableBytesWritable(rowkey.getBytes()), put);
		}
	}
	
	@SuppressWarnings("deprecation")
	public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://ubuntu:9000/");
		conf.set("mapreduce.framework.name", "local");
		conf.set("mapred.job.tracker", "ubuntu:9001");
		conf.set("hbase.zookeeper.quorum", "ubuntu");
		Job job = new Job(conf,"file2hbase");
		job.setJarByClass(File2HBase1.class);
		job.setMapperClass(MapperClass.class);
		job.setNumReduceTasks(0);
		job.setOutputFormatClass(TableOutputFormat.class);
		job.getConfiguration().set(TableOutputFormat.OUTPUT_TABLE, "testtable1");
		FileInputFormat.addInputPath(job, new Path("hdfs://ubuntu:9000/test/input/data.txt"));
		System.out.println(job.waitForCompletion(true) ? 0 : 1);
	}
}

 hbase创建表语气是:create 'testtable1','info'

data.txt的内容如下:

6222020405006,typeA,100000,201408081225,2000
6222020405006,typeA,100000,201408112351,1000
6222020405006,typeA,100000,201408140739,4000
6222020405008,typeB,50000,201408150932,5000
6222020405009,typeC,30000,201408181212,10000

 

 

0
0
分享到:
评论

相关推荐

    HBase MapReduce完整实例.rar

    HBase,全称为Hadoop Database,是构建在Hadoop文件系统(HDFS)之上的分布式数据库。它以表格的形式存储数据,支持实时查询,适用于处理PB级别的结构化和半结构化数据。HBase的核心特性包括强一致性的读写操作、...

    Hbase项目实例相关资料

    综上所述,HBase项目实例涉及到的知识点涵盖了HBase的基本概念、架构、配置、操作、优化以及实际应用等多个方面。通过深入学习和实践,我们可以更好地理解和掌握HBase在大数据处理中的优势,并将其成功应用于各类...

    HBase实战实例

    1. HBase概述:HBase是建立在Hadoop文件系统(HDFS)之上的非关系型数据库,它提供实时读写能力,适合处理大规模稀疏数据。 2. 数据模型:HBase采用行式存储,每个表由行键(Row Key)、列族(Column Family)、列...

    hbase资料_hbase-default.xml.zip

    这个文件为系统提供了基础设置,比如RegionServer的内存大小、ZooKeeper的地址等,它是所有HBase实例的基础配置模板。 `hbase-default.xml`文件中的关键知识点包括: 1. **HBase元数据存储**:HBase的元数据存储在...

    hbase的java client实例

    HBase是构建在Hadoop文件系统(HDFS)之上的开源NoSQL数据库,它为非结构化和半结构化数据提供了高并发、低延迟的随机读写能力。HBase基于Google的Bigtable设计,适用于大数据分析和实时查询。 Java API是与HBase...

    HbaseTemplate 操作hbase

    HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data Hadoop是Spring框架的一部分,它提供了与Hadoop生态系统集成的工具,包括对HBase的操作支持。本篇文章...

    实验二:熟悉常用的HDFS操作

    `FileSystem.get(conf)`获取HDFS的文件系统实例,`fs.exists(new Path(path))`判断路径是否存在,`fs.copyFromLocalFile(false, true, localPath, remotePath)`则实现了不删除源文件且覆盖目标文件的复制操作。...

    scala API 操作hbase表

    此外,为了连接到HBase,还需要在项目的`src/main/resources`目录下放置`core-site.xml`、`hdfs-site.xml`和`hbase-site.xml`配置文件。 以下是一些关键的Scala API操作HBase的基本步骤: 1. 引入必要的库: 首先...

    HBase技术介绍.docx

    类似于Bigtable依赖于Google文件系统(GFS),HBase依赖于Hadoop的HDFS。同时,Bigtable使用Chubby作为其协调服务,而HBase使用Zookeeper。 #### 三、HBase的访问接口 HBase提供了多种访问接口以满足不同场景的需求...

    大数据技术 Hadoop开发者第二期 MapReduce HDFS Hive Mahout HBase 共64页.pdf

    - **HBase**:基于 HDFS 的分布式列族数据库,适合实时读写、随机访问的大数据集。 #### 九、HDFS 在 Web 开发中的应用 - **应用场景**:探讨 HDFS 在 Web 开发中的作用及其优势。 - **技术要点**: - HDFS 在...

    Kafka集成Spark Streaming并写入数据到HBase

    HBase是构建在Hadoop文件系统(HDFS)之上,面向列的NoSQL数据库,适合处理大规模数据。它的特点是高并发读写、低延迟、水平扩展。HBase非常适合存储时间序列数据或者需要进行快速查询的场景。 **Kafka与Spark ...

    Hbase操作Hadoop分布式数据库java工程实例(含测试用例)

    HBase是建立在Hadoop文件系统(HDFS)之上的,提供了一个分布式、版本化的、多维度排序的表存储系统。它的设计目标是处理大规模数据集,通常在PB级别以上。每个表由行键(Row Key)、列族(Column Family)、列限定...

    ZooKeeper 原理及其在 Hadoop 和 HBase 中的应用

    1. **RegionServer管理**:HBase使用ZooKeeper来管理RegionServer的注册和注销过程,确保客户端能够动态发现可用的RegionServer实例,进而实现数据的高效读写。 2. **Region分配**:当新的Region需要被分配时,...

    HbaseReferenceBook-Hbase参考指南英文版

    HBase的独立模式适用于开发和测试环境,而分布式模式则是生产环境的首选,它支持在多台机器上水平扩展HBase实例。 HBase作为海量数据分析和存储的NoSQL解决方案,在大数据处理领域具有重要地位。它能够有效地处理...

    HbaseJavaWeb实例

    1. **HBase**: HBase是Apache的一个分布式、面向列的NoSQL数据库,它构建在Hadoop文件系统(HDFS)之上,提供了高可靠性、高性能、可伸缩的数据存储解决方案。HBase适用于处理海量结构化和半结构化数据,特别适合...

    hbase-0.94.27.tar.gz

    HBase是Apache软件基金会的一...总的来说,`hbase-0.94.27.tar.gz`包含了一个完整的HBase实例,开发者和管理员可以解压这个文件,在本地或集群环境中搭建并运行HBase,从而利用其强大的分布式存储能力处理大规模数据。

    hbase-site.xml.doc

    * hbase.rootdir:${hbase.tmp.dir}/hbase,hdfs://namenode.example.org:9000/hbase,这个参数指定了 HBase 的根目录,用于存储持久化数据。 三、HBase 集群模式配置 * hbase.cluster.distributed:true|false,...

    Hbase个人总结

    通过以上步骤,可以在本地环境中搭建起一个简单的HBase实例,为进一步学习和实践打下基础。 总之,HBase作为一种高性能的非关系型数据库系统,以其独特的面向列存储设计、高可靠性和出色的可扩展性,成为了处理大...

Global site tag (gtag.js) - Google Analytics