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

基于mapreduce 读文件直接入 hbase

阅读更多
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

分享到:
评论

相关推荐

    详解Hadoop核心架构HDFS+MapReduce+Hbase+Hive

    通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。通过这一阶段的调研总结,从内部机理的...

    利用hadoop的mapreduce和Hbase,基于lucene做的简单的搜索引擎.zip

    利用hadoop的mapreduce和Hbase,基于lucene做的简单的搜索引擎 ## 基本介绍 - InjectDriver 将本地的url注入到hbase数据库中等待下一步执行 - FetchDriver 负责抓取url对应的网页内容 - ParserUrlDriver 解析所抓取...

    HBase数据库性能调优

    另一个不同的是HBase基于列的而不是基于行的模式。HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。与FUJITSU ...

    HBASE讲义文档

    基于hadoop的数据库工具 来源于google的一片论文BigTable 后来由Apache做了开源实现 就是HBase ... HBase利用HadoopHDFS作为其文件存储系统,利用Hadoop的MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调

    hive 整合 hbase

    HBase是建立在HDFS上的面上列的数据库。...hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

    Hadoop集群程序设计与开发

    《Hadoop集群程序设计与开发(数据科学与大数据技术专业系列规划教材)》系统地介绍了基于Hadoop的大数据处理和系统开发相关技术,包括初识Hadoop、Hadoop基础知识、Hadoop开发环境配置与搭建、Hadoop分布式文件系统、...

    基于Hadoop的开发项目,包括分布式算法的实现和Hadoop项目,总共七个项目+源代码+文档说明

    1、基于MapReduce的KMeans++算法实现(java语言) 2、基于MapReduce的KMeans算法实现(java语言) 3、基于MapReduce的TFIDF算法实现(java语言) 4、基于MapReduce的大矩阵乘法(java语言) 5、MapReduce基础Demo...

    基于hbase, mapreduce结合springMVC查询操作扫描操作,数据分析.zip

    人工智能-hadoop

    java大数据作业_4Zookeeper

    建立类似的文件,放入/test1文件夹下 要求处理结果为: The 1.txt n 2.txt n Apache 1.txt n 2.txt n 其中,n为某个单词在某个文件出现的次数,即,格式解释为:单词iterator&lt;所在文件 出现次数&gt;

    Hadoop集群安装维护文档

    HBase对Hadoop进行了无缝的衔接,使得可以在Hadoop的MapReduce框架中直接访问HBase中的数据。Hive是基于Hadoop的数据仓库,它提供类SQL的HQL语句,方便对数据的访问。Hadoop,Apache的开源的分布式的框架HDFS,...

    Hadoop技术在商业智能BI中的应用

    其中,HDFS是分布式文件系统,MapReduce是分布式计算引擎。时至今日,Hadoop在技术上已经得到验证、认可甚至到了成熟期,同时也衍生出了一个庞大的生态圈,比较知名的包括HBase、Hive、Spark等。HBase是基于HDFS的...

    Alluxio(以前称为Tachyon)是一个虚拟的分布式存储系统.rar

    在大数据领域,最底层的是分布式文件系统,如Amazon S3、Apache HDFS等,而较高层的应用则是一些分布式计算框架,如Spark、MapReduce、HBase、Flink等,这些分布式框架,往往都是直接从分布式文件系统中读写数据,...

    hadoop笔记

    hbase : mysql 是基于 linux/windows 的文件系统的数据库 ,而 hbase 就是基于 hdfs 文件系统的数据库 5. flume : 就是一个水泵 ,将水从一个源水坑 ,抽到另一个目的水坑中 ,当然 flume 抽的是 "数据" ,将数据从一个...

    java开发web搜索引擎源码-Elasticsearch-Hbase:elasticsearch+hbase海量数据查询,支持千万数据秒回查

    HDFS作为其文件存储系统,利用Hadoop MapReduce来处理 HBase中的海量数据,利用Zookeeper作为其分布式协同服务 – 主要用来存储非结构化和半结构化的松散数据(列存 NoSQL 数据库) 二、需求分析&服务器环境设置 主要...

    HCIA-Big Data培训视频教程【共18集】.rar

    目录: 网盘文件永久链接 1. 第一章 大数据行业技术趋势 2. 第一章 大数据行业技术趋势(二) 3. 第二章 01HDFS分布式文件系统(一) 4. 第二章 01HDFS分布式文件系统(二) 5. 第二章 02HDFS分布式文件系统(一...

    基于分布式数据库的图像检索系统

    其中,TF-IDF作为相似度依据,MapReduce+HBase作为分布式框架。 集群配置 --- 4个节点:1个Master,3个Slave,均运行64位Centos系统 运行环境 --- Hadoop:2.7.3 Hbase:1.2.3 python 2.7.3 java 1.8.0 ...

    大数据分析的分布式MOLAP技术

    数据的规模效应给数据存储、管理以及数据分析带来了极大的挑战,学界和业界广泛采用分布式文件 ...载性能略显不足,但DOLAP的性能要优于基于HBase,Hive,HadoopDB,OLAP4Cloud等主流非关系数据库系统实现 的 OLAP 性能.

Global site tag (gtag.js) - Google Analytics