用hbase使用mapreduce将数据大批量上传到表中

mapreduce实现读取hbase表数据保存到hdfs mapreduce实现读取hbase表数据保存到hdfs 参考资料 https://hbase.apache.org/book.html#mapreduce.example import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; imp... 阅读详情
package HbaseApi.MapreduceApi;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
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;

import java.io.IOException;
//用hbase使用大批量
public class Write2HbaseDemo {
//将本地的字符串文件转换为Hfie文件上传至表中

    static class MyMapper extends Mapper<LongWritable, Text, ImmutableBytesWritable, Put>
    {

        ImmutableBytesWritable im=new ImmutableBytesWritable();//此类可以经string字符串转换为hfile文件格式,然后通过put操作将Hfile文件放入表中
        @Override
        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {


            String[] split = value.toString().split("\t");//按\t切分
            byte[] bytes = split[0].getBytes();//拿到rowkey
            im.set(bytes);//HFile

            Put put =new Put(bytes);
            put.addColumn("info".getBytes(),"name".getBytes(),"123".getBytes());

            context.write(im,put);//将值put上去
        }
    }

    public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {

        Configuration entries = HBaseConfiguration.create();
        entries.set("hbase.zookeeper.quorum","192.168.1.137,192.168.1.138,192.168.1.139");
        entries.set("hbase.zookeeper.property.clientPort","2181");
        entries.set("zookeeper.znode.parent","/hbase-unsecure");


        Job exampleRead = Job.getInstance(entries, "ExampleRead");
        exampleRead.setJarByClass(Write2HbaseDemo.class);//输出主类 即main方法所在类
        exampleRead.setMapperClass(MyMapper.class);//map输出类
        exampleRead.setOutputKeyClass(ImmutableBytesWritable.class);//输出key
        exampleRead.setOutputValueClass(Put.class);//输出value

        FileInputFormat.setInputPaths(exampleRead,"/home/alwaysdazz/1.txt");//设置的输入路径
        TableMapReduceUtil.initTableReducerJob("student",null,exampleRead);

        boolean b = exampleRead.waitForCompletion(true);
        if(!b)
        {
            throw new IOException("error with job");
        }
    }
}
MapReduce实现将HDFS中的数据解析并写入到HBase表中 目录 一、准备工作 二、功能实现 1、创建Maven工程并导入依赖 2、编写自定义Mapper类 3、编写自定义Reducer类 4、编写自定义Runner类 5、运行代码并查看结果 在上一篇博客中实现了HBase表之间的数据迁移功能: HBase表之间的数据迁移(使用MapReduce实现) 那么,本文继续结合小案例介绍如何使用MapReduce将HDFS中的数据写入到HBase表中。 功能实现: 一、准备工作 1)启动好Zookeeper、Hadoop、HBase服务; [ 阅读详情

相关推荐

Phoenix(十三)Phoenix使用MapReduce加载大批量数据

本篇主要说明在实际应用场景中可以会有一些格式比较规整的数据文件需要导入到HBase,Phoenix提供了两种方法来加载CSV格式的文件phoenix的数据表。一种是使用单线程的psql工具进行小批量数据加载的方式,一种是使用MapReduce作业来处理大批量数据的方式。第一种方式比较简单这里就不介绍了,想了解的可以参考官方文档。

人是有思想的芦苇 8863

HBase数据大批量导入方式总结和对比

HBase数据导入 1. 背景 在实际生产中,海量数据一般都不是直接存储在HBase中,这时候就需要一个数据导入到HBase的步骤 上一篇博客讲述了可以通过java api的方式或者shell 客户端方式导入或者创建数据,但这对于实际生产中海量数据导入来说,速度和效率都太慢了,所以我们需要使用其他方式来解决海量输入导入到HBase的问题 利用HBase底层文件是HFile形式存储再HDFS中,所以如果能够直接生成HFile的话,这时候再让HBase从HFile中读取数据,就会快很多。 2. 批量数据导入

xiaohu21的博客 3910

MapReduce 操作 HBase

1.HBase与MR关系   HBase和MapReduce,这两者并没有直接关系,隶属于不同的项目。这里讲到的MapReduce on HBase是指利用HBase表做为MR计算框架的数据输入源或者输出源源,使得能够利用MR的并行计算能力计算HBase的内部数据。   2.官方HBase-MapReduce 2.1 查看HBase的MapReduce任务的执行         $ bi...

程序员学习圈 3290

HBase与MapReduce结合(一)——HBase表中插入数据

通过MapReduce向HBase表中插入数据

qq_51180928的博客 1288

使用MapReduce将HBASE表中的数据导入到HDFS

目标:将HBase中student表中的数据,通过MR迁移到HDFS的hdfs://hadoop112:9000/user/hadoop/out1路径下。 1. 添加Maven依赖 <dependencies> <dependency> <groupId>org.apache.hbase</groupId...

fczheng的博客 1114

使用MapReduce把HBase表中的数据迁移到另一张HBase表中

目标:将HBase中student表中的数据,通过MR迁入student_mr表中。 1. 添加Maven依赖 <dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>h...

fczheng的博客 686

使用MapReduce处理HBase数据

前提条件 IDEA2021 安装好hadoop2.x 安装好hbase1.x 本博文使用的版本为hadoop2.7.3,hbase1.7.1 需求 MapReduce读取HBase的数据,使用MapReduce对读取到的数据进行词频统计处理,把计算结果输出到HBase中。 数据准备 启动hadoop和hbase start-dfs.sh start-hbase.sh 进入hbase shell命令行 创建输入表word 创建输入表word create 'word',

大头皮鞋的博客 6327

HBase用一个MapReduce Job同时写入两张表

以前在学习HBase的时候,也曾想过是否可以在一个MR中同时写入两个表,但以前在网上找的时候都找不到比较相关的答案,这两天又重新找了下,居然有类似的实现,然后就自己参考着写了下,基本可以运行(本文参考:http://www.wildnove.com/2011/07/19/tutorial-hadoop-and-hbase-multitableoutputformat/),下面就详细说下思路: 原

fansy1990的专栏 4709

Hbase API 整合MapReduce (将HBASE一个表按照需要把数据输出到另一个表中)

package com.czxy.com.czxy.demo05; import org.apache.hadoop.conf.Configurable; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.hbase.Ce...

大数据记录 9565

HBase表之间的数据迁移(使用MapReduce实现)

目录 一、案例需求: 二、代码实现 0、创建Maven工程并导入依赖 1、自定义Mapper类ReadStudentMapper 2、自定义Reducer类WriteStudentReducer 3、自定义Runner类MRRunner 4、运行代码和查看结果 一、案例需求: 在HBase中有一张测试用表"table777",表中数据如下: 现在需要从该表中抽取每一行数据的部分字段(name、phone),然后写入到HBase中的另一张测试用表"table777_mr",使用MapR

weixin_43230682的博客 1011

【HBase基础教程】6、HBase之读取MapReduce数据写入HBase

本blog将介绍利用MapReduce操作HBase,借助最熟悉的单词计数案例WordCount,将WordCount的统计结果存储到HBase,而不是HDFS。开发环境 硬件环境:Centos 6.5 服务器4台(一台为Master节点,三台为Slave节点) 软件环境:Java 1.7.0_45、Eclipse Juno Service Release 2、hadoop-1.2.1、hbase-

andieguo的专栏 8934

HBase与MapReduce的集成(读取myuser这张表当中的数据写入到HBase的另外一张表当中去)

需求:读取HBase当中一张表的数据,然后将数据写入到HBase当中的另外一张表当中去。 注意:我们可以使用TableMapper与TableReducer来实现从HBase当中读取与写入数据 这里我们将myuser这张表当中f1列族的name和age字段写入到myuser2这张表的f1列族当中去 第一步:创建myuser2这张表 注意:列族的名字要与myuser表的列族名字相同 h...

最慢的步伐不是跬步,而是徘徊;最快的脚步不是冲刺,而是坚持 8350

MapReduce On HBase

文章目录MapReduce On MapReduceHBase与MapReduce集成整合MapReduce On Hbase小案例1.准备数据2.编写MapReduce代码3.程序运行结果 MapReduce On MapReduce HBase与MapReduce集成整合 从HBase里读取数据 将HBase里的数据作为Map的输入 将数据写入HBase 将HBase作为Reduce...

qq_43502858的博客 1055

HBase-MapReduce案例:统计表中数据,使用MapReduce将本地数据导入Hbase

HBase的MapReduce任务过程 1.查看HBase的MapReduce任务所需的依赖: cd /opt/module/hbase-1.3.1 bin/hbase mapredcp 2.执行环境变量的导入 export HBASE_HOME=/opt/module/hbase-1.3.1 export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` 3.运行官方的MapReduce任务 二.案例一:统计default:student表中有多

Movle 1613

HBase:HBase与MapReduce的集成

HBase与MapReduce的集成 HBase当中的数据最终都是存储在HDFS上面的,HBase天生的支持MR的操作,我们可以通过MR直接处理HBase当中的数据,并且MR可以将处理后的结果直接存储到HBase当中去 需求:读取HBase当中一张表的数据,然后将数据写入到HBase当中的另外一张表当中去。注意:我们可以使用TableMapper与TableReducer来实现从HBase当中读取...

3879

生成对抗网络(GAN、DCGAN、ACGAN)-----学习笔记

生成对抗网络学习笔记 生成对抗网络有两个关键结构:生成模型、判别模型。 生成模型:输入是一个服从正态分布的N维向量,利用这个N维向量生成一张图片。 判别模型:对于生成模型输出的图像判别它是不是真的图像。 生成模型和判别模型的博弈关系在于:生成模型的目的是生成让判别模型无法判别真伪的图像,而判别模型的目的是判断输入图像的真伪。 结合代码来看生成对抗网络中,生成器和判别器的训练过程: 判别模型的训...

weixin_43227526的博客 5490

HBase MapReduce 详解

通过HBase的相关JavaAPI,我们可以实现伴随HBase操作的MapReduce过程,比如使用MapReduce将数据从本地文件系统导入到HBase的表中,比如我们从HBase中读取一些原始数据后使用MapReduce做数据分析。 官方HBase-MapReduce 查看HBase的MapReduce任务的执行 $ bin/hbase mapredcp 环境变量的导入 执行环境变量的导入...

@小刘同学nice 4016

vivado下ECO操作-不重新综合实现修改属性并生成.bit

ECO即engineer change order,即工程变更指令,可以对设计做局部小改动并只对改动部分重新布局布线并生成.bit。在一个工程动辄编译几个小时情况下,可以在调试中节省大量时间。比如我们在调试中,需要改变时钟占空比或者相位,需要改变寄存器初值等等,此时用ECO暂时改动,待验证后在重新编译无疑是最有效率的方法。 实现ECO通常有两种方式,一是通过vivado界面完成,另一种方法就是tcl脚本。所有的ECO操作都可以通过tcl操作完成,有的操作用vivado界面无法完成,只能通过tcl。以下主要

4657

【HBase原理及应用实训课程】第五章 HBase与MapReduce的集成

一、importTSV 工具概述importTSV 是 HBase 提供的一个命令行工具,将存储在 HDFS 上的数据文件,通过指定的分隔符解析后,导入到 HBase 表中。这样的方式导入数据与正常写入流程不同的是,跳过了 WAL、Memcache 与 Flush 的过程,直接将 HFile 文件移动到 HBase 表空间目录下即可,不影响 HRegionServer 的性能。

1855

吉林大学2016级唐班c语言期末考试B卷

` #include<stdio.h> #include<stdlib.h> //双指针法,每次从a,b中选一个最大的数,从后向前一次放在数组a中 int merge(int *a,int m,int *b,int n){ int i=m-1,j=n-1,k=m+n-1; while(i>=0&&j>=0){ if(a[i]>b[j])a[...

weixin_42339173的博客 1195

STM32+4G模块+MQTT协议:从零构建稳定可靠的物联网通讯链路

本文详细介绍了如何利用STM32、4G模块和MQTT协议构建稳定可靠的物联网通讯链路。通过硬件选型、AT指令配置和MQTT连接实战,帮助开发者实现低功耗、高可靠性的数据传输,特别适合户外和移动场景应用。

weixin_29191081的博客 334

MapReduce无权访问HBase表问题配置:

。。不推荐的方法将hbase-site.xml复制到$HADOOP_HOME/conf目录,并将HBase的jar包复制到$HADOOP_HOME/lib目录:这种方法会将HBase的依赖直接集成到Hadoop的安装目录中,导致Hadoop安装被“污染”。需要重启Hadoop集群才能使更改生效,这在生产环境中是不推荐的。编辑$HADOOP_HOME/conf/hadoop-env.sh,将HBase依赖添加到HADOOP_CLASSPATH变量中:

2401_83147218的博客 1624

【uniapp踩坑记】App Store上传失败:Invalid Swift Support错误怎么解决?

作为一个前端出身的开发者,用 uniapp 开发原生 App 已经够挑战了,打包 iOS 上传 App Store 更是处处暗雷。这次的坑虽然小,但确实容易忽略。如果你也遇到了类似的报错,希望这篇文章能帮你少踩一次坑!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1143
上一篇: 用hbase使用mapreduce计算架构计算rowkey行数
下一篇: Hbase数据库各需求解决方案优化
Alwaysdazz
博客等级 码龄8年 25粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值