hadoop多路输出器,不要忘记close()

生成HFile以及入库到HBase 一、MR生成HFile文件 package insert.tools.hfile; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.ha 阅读详情
package com.ws.userprofile;

import com.google.gson.Gson;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
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 org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.MultipleOutputs;

import java.io.IOException;
import java.util.Set;

public class userProfileMr {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();

        Job job = Job.getInstance(conf);

        job.setJarByClass(userProfileMr.class);

        job.setMapperClass(M.class);
        job.setNumReduceTasks(0);

        job.setOutputKeyClass(NullWritable.class);
        job.setOutputValueClass(Text.class);

        FileInputFormat.setInputPaths(job, new Path("hdfs://dream1:9000/userprofile/input"));
        FileOutputFormat.setOutputPath(job, new Path("hdfs://dream1:9000/userprofile/output"));

        job.waitForCompletion(true);
    }

    public static class M extends Mapper<LongWritable, Text, NullWritable, Text> {
        MultipleOutputs<NullWritable, Text> multipleOutputs;
        Gson g = new Gson();
        Text v = new Text();
        NullWritable k = NullWritable.get();

        @Override
        protected void setup(Context context) {
            //用多路输出器,输出gid,tags 格式数据到 目录
            multipleOutputs = new MultipleOutputs<>(context);
        }

        @Override
        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
            UserTags userTags = g.fromJson(value.toString(), UserTags.class);
            String gid = userTags.getGid();
            v.set(gid + "@" + value.toString());
            multipleOutputs.write(k, v, "hdfs://dream1:9000/userprofile/tags/");
            Set<String> imei = userTags.getIds().keySet();
            for (String id : imei) {
                v.set(id + "@" + gid);
                multipleOutputs.write(k, v, "hdfs://dream1:9000/userprofile/index/");
            }
        }

        @Override
        protected void cleanup(Context context) throws IOException, InterruptedException {
            multipleOutputs.close();
        }
    }
}

 

MapReduce生成HFile入库到HBase 可能需要的jar包 MapReduce生成HFile入库到HBase 可能需要的jar包,一共有3个 可以直接放在每台机器的${HADOOP_HOME}/lib下 hadoopHadoop 1.1.2 + hbase 0.94.6.1 立即下载

相关推荐

LS-Dyna模态分析实战:从模型构建到结果解读的全流程指南

本文提供了一份详尽的LS-Dyna模态分析实战指南。文章系统讲解了如何利用LS-Dyna内置的隐式求解器进行特征值求解,从模型构建、几何清理、材料与连接设置,到核心的边界条件与隐式求解控制(如*CONTROL_IMPLICIT_EIGENVALUE),最后完成计算并解读频率与振型结果。旨在帮助工程师在熟悉的环境中高效完成结构振动特性分析,为后续动态响应分析奠定基础。

info6的博客 264

Hbase【进阶篇】05:使用MapReduce封装好的方法或者利用Bulkload

Hbase【进阶篇】05:使用MapReduce封装好的方法或者利用Bulkload

weixin_40612128的博客 1210

GraphSense介绍

GraphSense是一个跨账本加密货币分析平台 它的介绍在这里 代码也是开源的 graphsense-dashboard 用于交互式加密货币分析的Web仪表板。 可以看导进数据的情况 graphsense-transformation 基于spark/cassandra/java服务运行 GraphSense转换管道,用于将加密货币的区块/交易/标签等数据导入,可以看它指定的json格式: t...

幸福诗歌的博客 1083

使用MapReduce解析HDFS中的文件生成HFile文件导入HBase(三)

使用MapReduce生成HFile文件是导入大量数据到HBase的最快方法 总共分为两部分,生成HFile和导入到HBase 一、生成HFile 1.主程序ConvertToHFiles.java public class ConvertToHFiles extends Configured implements Tool { private static final L...

Meyao's Blog 2733

Netron显示自定义属性,按属性设置不同节点的颜色

本文介绍了一种让Netron显示自定义颜色的方法,可根据某些属性,调整节点的颜色 需求背景: 在分析AI模型精度误差时,用不同等级的红色,表示误差的大小.可以直观地看到误差的传递关系

Hi20240217的博客 1514

基于Simulink和Control System Toolbox的线控转向(Steer-by-Wire)系统设计

通过上述步骤,我们成功设计并实现了基于 Simulink 和 Control System Toolbox 的线控转向(Steer-by-Wire)系统。该系统能够接收来自方向盘的角度指令,经过控制器处理后,驱动转向执行器(如电动机),实现对车辆前轮转向角度的精确控制。通过虚拟场景仿真、硬件在环测试和实车测试,验证了系统的响应速度、控制精度、车辆稳定性和实时性能,并通过参数优化进一步提升了系统的性能。

MHD0815的博客 551

MapReduce生成HFile文件、加载HFile到HBase

MapReduce生成HFile文件、加载HFile到HBase   1、程序代码 public class TransformHFile extends Configured implements Tool{ public static final String COLUMN_FAMILY = "info"; public static final String[] C...

zhiquanliu的专栏 673

configure: error: no acceptable C compiler found in $PATH解决方案

本文主要介绍了configure: error: no acceptable C compiler found in $PATH解决方案,希望能对使用Linux的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 4万+

MapReduce生成HFile文件,再使用BulkLoad导入HBase中(完全分布式运行)

声明: 若要转载, 请标明出处. 前提: 在对于大量的数据导入到HBase中, 如果一条一条进行插入, 则太耗时了, 所以可以先采用MapReduce生成HFile文件, 然后使用BulkLoad导入HBase中.  引用: 一、这种方式有很多的优点: 1. 如果我们一次性入库hbase巨量数据,处理速度慢不说,还特别占用Region资源, 一个比较高效便捷的方法就是使用 “Bulk

我和我追逐的梦~~~ 2万+

基于SSD2828和STM32的MIPI显示屏驱动系统设计与实现

在硬件层面,需要将STM32、SSD2828和MIPI显示屏连接起来。STM32与SSD2828的连接:通过SPI接口连接STM32和SSD2828,用于配置和控制SSD2828。SSD2828与MIPI显示屏的连接:通过MIPI DSI接口连接SSD2828和MIPI显示屏,用于传输显示数据。

qq_38334677的博客 7150

CAN总线介绍及硬件设计

1. CAN是什么 CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO*1 国际标准化的串行通信协议。 在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统 被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很 多,线束的数量也随之增加。为适应“减少线束的数量”、“......

sinat_15677011的博客 9992

Flink生成Hfile

提出需求: 团队为了统一技术栈,一致同意用Flink来进行对批和流计算统一处理。 问题来了: Flink似乎相对spark来说还是很不完善,spark分分钟搞定的事情,在Flink里就需要动动脑子了。 参考spark; object CreateHfile { def main(args: Array[String]): Unit = { ...

风远陌 1815

infercnv的实操

摘要: 博主在infercnv分析中遇到执行困难,外包服务不可靠(未按要求使用HMM方法)。通过优化策略(逐样本处理、精简细胞至1000个、固定随机种子)解决了运行问题,但HMM功能仍无法实现。最终参考Cell期刊标准设置阈值完成分析,后续将继续更新进展。该案例凸显了生物信息分析中自主优化的重要性。(150字)

xiaoyusang的博客 308

Mapreduce生成Hfile文件,加载到hbase问题汇总

Hfile在hbase表中的底层数据形式:默认default下面 1、Can't get master address from ZooKeeper; znode data == null hbase(main):001:0> list TABLE ...

争当鲲鹏飞万里 不做燕雀恋子巢 2576

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HBase-mapreduce生成hfile

import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConf

鲸鱼写程序的专栏 906

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hbase-自定义MR生成Hfile

自定义MR生成Hfile 生成Hfile基本流程: 1.设置Mapper的输出KV类型: K: ImmutableBytesWritable(代表行键) V: KeyValue (代表cell) 2.开发Mapper 读取你的原始数据,按你的需求做处理 输出rowkey作为K,输出一些KeyValue(Put)作为V 3.配置job参数 Zookeeper的连接地址 配...

m0_46538284的博客 556

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

MapReduce 生成HFile导入Hbase

版本: hadoop 2.7.7 hbase 2.0.5 步骤一:编写Mapreduce 代码生成HFile 基于Gradle 构建 build.gradle plugins { id 'java' } group 'com.kteck' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 jar { manifest { ...

qzqanzc的博客 701

将HDFS中的数据通过MapReduce产生HFile,然后将HFile导入到HBase具体案例分析

Hadoop数据迁移:从Hadoop向HBase载入数据 Hadoop向HBase载入数据: 将数据从Hadoop中向HBase载入数据,该过程大致可以分为两步: 一、将Hadoop中普通文本格式的数据转化为可被HBase识别的HFile文件,HFile相当于Oracle中的DBF数据文件。 二、将HFile载入到HBase中,该过程实际就是将数据从一个地移动到HBase某表数据的存放地。

红豆和绿豆的博客 2664

生成Hfile 并给HDFSSHELL授权

package cn.jkjf.bigdata.utils.test import java.text.SimpleDateFormat import java.util.{Date, UUID} import cn.jkjf.bigdata.utils.hbase.HFilePartitioner import cn.jkjf.bigdata.utils.mysql.Global import org.apache.hadoop.conf.Configuration import org.apach.

857技术社区 416

MapReduce生成HFile入库到HBase

一、这种方式有很多的优点: 1. 如果我们一次性入库hbase巨量数据,处理速度慢不说,还特别占用Region资源, 一个比较高效便捷的方法就是使用 “Bulk Loading”方法,即HBase提供的HFileOutputFormat类。 2. 它是利用hbase的数据信息按照特定格式存储在hdfs内这一原理,直接生成这种hdfs内存储的数据格式文件,然后上传至合适位置,即完成巨量数据快速入

Rocky 2469

非mapreduce生成Hfile,然后导入hbase当中

最近一个群友的boss让研究hbase,让hbase的入库速度达到5w+/s,这可愁死了,4台个人电脑组成的集群,多线程入库调了好久,速度也才1w左右,都没有达到理想的那种速度,然后就想到了这种方式,但是网上多是用mapreduce来实现入库,而现在的需求是实时入库,不生成文件了,所以就只能自己用代码实现了,但是网上查了很多资料都没有查到,最后在一个网友的指引下,看了源码,最后找到了生成H...

weixin_30432579的博客 216

bulkload导致性能变慢

bulkload是通过启动MapReduce任务直接生成HFile文件,再将HFile文件注册到HBase,因此错误的使用bulkload会因为启动MapReduce任务而占用更多的集群内存和CPU资源,也可能会生成大量很小的HFile文件频繁的触发Compaction,导致查询速度急剧下降。HBase支持使用bulkload和put方式加载数据,在大部分场景下bulkload提供了更快的数据加载速度,但bulkload并不是没有缺点的,在使用时需要关注bulkload和put适合在哪些场景使用。

wangjunji34478的专栏 1199

hbase hfile java_生成HFile以及入库到HBase

/*** Copyright 2009 The Apache Software Foundation** Licensed to the Apache Software Foundation (ASF) under one* or more contributor license agreements.See the NOTICE file* distributed with this wor...

weixin_42427882的博客 476
上一篇: hadoop和hbase版本冲突
下一篇: mapreduce生成hfile
JNWsong
博客等级 码龄9年 287粉丝 204原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值