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");
}
}
}
相关推荐
Phoenix(十三)Phoenix使用MapReduce加载大批量数据
本篇主要说明在实际应用场景中可以会有一些格式比较规整的数据文件需要导入到HBase,Phoenix提供了两种方法来加载CSV格式的文件phoenix的数据表。一种是使用单线程的psql工具进行小批量数据加载的方式,一种是使用MapReduce作业来处理大批量数据的方式。第一种方式比较简单这里就不介绍了,想了解的可以参考官方文档。
HBase数据大批量导入方式总结和对比
HBase数据导入 1. 背景 在实际生产中,海量数据一般都不是直接存储在HBase中,这时候就需要一个数据导入到HBase的步骤 上一篇博客讲述了可以通过java api的方式或者shell 客户端方式导入或者创建数据,但这对于实际生产中海量数据导入来说,速度和效率都太慢了,所以我们需要使用其他方式来解决海量输入导入到HBase的问题 利用HBase底层文件是HFile形式存储再HDFS中,所以如果能够直接生成HFile的话,这时候再让HBase从HFile中读取数据,就会快很多。 2. 批量数据导入
MapReduce 操作 HBase
1.HBase与MR关系 HBase和MapReduce,这两者并没有直接关系,隶属于不同的项目。这里讲到的MapReduce on HBase是指利用HBase表做为MR计算框架的数据输入源或者输出源源,使得能够利用MR的并行计算能力计算HBase的内部数据。 2.官方HBase-MapReduce 2.1 查看HBase的MapReduce任务的执行 $ bi...
HBase与MapReduce结合(一)——HBase表中插入数据
通过MapReduce向HBase表中插入数据
使用MapReduce将HBASE表中的数据导入到HDFS
目标:将HBase中student表中的数据,通过MR迁移到HDFS的hdfs://hadoop112:9000/user/hadoop/out1路径下。 1. 添加Maven依赖 <dependencies> <dependency> <groupId>org.apache.hbase</groupId...
使用MapReduce把HBase表中的数据迁移到另一张HBase表中
目标:将HBase中student表中的数据,通过MR迁入student_mr表中。 1. 添加Maven依赖 <dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>h...
使用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',
HBase用一个MapReduce Job同时写入两张表
以前在学习HBase的时候,也曾想过是否可以在一个MR中同时写入两个表,但以前在网上找的时候都找不到比较相关的答案,这两天又重新找了下,居然有类似的实现,然后就自己参考着写了下,基本可以运行(本文参考:http://www.wildnove.com/2011/07/19/tutorial-hadoop-and-hbase-multitableoutputformat/),下面就详细说下思路: 原
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...
HBase表之间的数据迁移(使用MapReduce实现)
目录 一、案例需求: 二、代码实现 0、创建Maven工程并导入依赖 1、自定义Mapper类ReadStudentMapper 2、自定义Reducer类WriteStudentReducer 3、自定义Runner类MRRunner 4、运行代码和查看结果 一、案例需求: 在HBase中有一张测试用表"table777",表中数据如下: 现在需要从该表中抽取每一行数据的部分字段(name、phone),然后写入到HBase中的另一张测试用表"table777_mr",使用MapR
【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-
HBase与MapReduce的集成(读取myuser这张表当中的数据写入到HBase的另外一张表当中去)
需求:读取HBase当中一张表的数据,然后将数据写入到HBase当中的另外一张表当中去。 注意:我们可以使用TableMapper与TableReducer来实现从HBase当中读取与写入数据 这里我们将myuser这张表当中f1列族的name和age字段写入到myuser2这张表的f1列族当中去 第一步:创建myuser2这张表 注意:列族的名字要与myuser表的列族名字相同 h...
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...
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表中有多
HBase:HBase与MapReduce的集成
HBase与MapReduce的集成 HBase当中的数据最终都是存储在HDFS上面的,HBase天生的支持MR的操作,我们可以通过MR直接处理HBase当中的数据,并且MR可以将处理后的结果直接存储到HBase当中去 需求:读取HBase当中一张表的数据,然后将数据写入到HBase当中的另外一张表当中去。注意:我们可以使用TableMapper与TableReducer来实现从HBase当中读取...
生成对抗网络(GAN、DCGAN、ACGAN)-----学习笔记
生成对抗网络学习笔记 生成对抗网络有两个关键结构:生成模型、判别模型。 生成模型:输入是一个服从正态分布的N维向量,利用这个N维向量生成一张图片。 判别模型:对于生成模型输出的图像判别它是不是真的图像。 生成模型和判别模型的博弈关系在于:生成模型的目的是生成让判别模型无法判别真伪的图像,而判别模型的目的是判断输入图像的真伪。 结合代码来看生成对抗网络中,生成器和判别器的训练过程: 判别模型的训...
HBase MapReduce 详解
通过HBase的相关JavaAPI,我们可以实现伴随HBase操作的MapReduce过程,比如使用MapReduce将数据从本地文件系统导入到HBase的表中,比如我们从HBase中读取一些原始数据后使用MapReduce做数据分析。 官方HBase-MapReduce 查看HBase的MapReduce任务的执行 $ bin/hbase mapredcp 环境变量的导入 执行环境变量的导入...
vivado下ECO操作-不重新综合实现修改属性并生成.bit
ECO即engineer change order,即工程变更指令,可以对设计做局部小改动并只对改动部分重新布局布线并生成.bit。在一个工程动辄编译几个小时情况下,可以在调试中节省大量时间。比如我们在调试中,需要改变时钟占空比或者相位,需要改变寄存器初值等等,此时用ECO暂时改动,待验证后在重新编译无疑是最有效率的方法。 实现ECO通常有两种方式,一是通过vivado界面完成,另一种方法就是tcl脚本。所有的ECO操作都可以通过tcl操作完成,有的操作用vivado界面无法完成,只能通过tcl。以下主要
【HBase原理及应用实训课程】第五章 HBase与MapReduce的集成
一、importTSV 工具概述importTSV 是 HBase 提供的一个命令行工具,将存储在 HDFS 上的数据文件,通过指定的分隔符解析后,导入到 HBase 表中。这样的方式导入数据与正常写入流程不同的是,跳过了 WAL、Memcache 与 Flush 的过程,直接将 HFile 文件移动到 HBase 表空间目录下即可,不影响 HRegionServer 的性能。
吉林大学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[...
STM32+4G模块+MQTT协议:从零构建稳定可靠的物联网通讯链路
本文详细介绍了如何利用STM32、4G模块和MQTT协议构建稳定可靠的物联网通讯链路。通过硬件选型、AT指令配置和MQTT连接实战,帮助开发者实现低功耗、高可靠性的数据传输,特别适合户外和移动场景应用。
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变量中:
【uniapp踩坑记】App Store上传失败:Invalid Swift Support错误怎么解决?
作为一个前端出身的开发者,用 uniapp 开发原生 App 已经够挑战了,打包 iOS 上传 App Store 更是处处暗雷。这次的坑虽然小,但确实容易忽略。如果你也遇到了类似的报错,希望这篇文章能帮你少踩一次坑!
8863



被折叠的 条评论
为什么被折叠?



