Flume - [05] Hbase sink
一、概述
此接收器将数据写入Hbase。Hbase配置是从类路径中遇到的第一个Hbase-site.xml获取的。由配置指定的实现 HbaseEventSerializer 的类用于将事件转换为 hbase、put和/或增量。然后将这些put和增量写入hbase。此接收器提供与hbase相同的一致性保证,hbase目前是逐行原子性。如果hbase未能写入某些事件,接收器将重播该事务中的所有事件。
Hbase Sink 支持编写数据以保护hbase。若要写入以保护hbase,代理运行的用户必须对接收器配置为写入的表具有写权限。可以在配置中指定用于对KDC进行身份验证的主题和键选项卡。Flume代理类路径中的hbase-site.xml必须将身份验证设置为 kerberos
二、配置
1、依次启动Zookeeper、Hadoop、Hive、Hbase
2、在Hbase中创建一张表:create 'mydata:flume_table', 'cf'
3、查看表:scan 'mydata:flume_table','cf'
4、配置hbase sink的properties
# flume配置的例子
# Name the components on this agent
# source:起一个别名
# properties文件它是java的配置文件,=左边就是键,=右边是值;键的开头都是以a1(就是flume的名字--agent的名字就是a1);a1随便起
a1.sources = r1
# sink:起一个别名
a1.sinks = k1
# channels;:起一个别名
a1.channels = c1
# Describe/configure the source
# spooldir:监控硬盘上指定的某个目录,如果文件发生变化,会被flume捕获;
a1.sources.r1.type = spooldir
# 要监控的目录,此目录必须存在
a1.sources.r1.spoolDir = /root/flume/
# 已经完成的文件,会加上一个后缀
a1.sources.r1.fileSuffix = .ok
# 已经完成的文件,会立即删除,默认值是never;(永不删除)
# a1.sources.r1.deletePolicy =immediate
# 是否添加存储绝对路径文件名的标题
a1.sources.r1.fileHeader = true
# Describe the sink
# sink的类型
a1.sinks.k1.type = hbase2
# hbase的表名
a1.sinks.k1.table = mydata:flume_table
# hbase的列族
a1.sinks.k1.columnFamily = cf
# zookeeper
a1.sinks.k1.zookeeperQuorum = node7-1:2181,node7-2:2181,node7-3:2181
# 序列化
a1.sinks.k1.serializer = org.apache.flume.sink.hbase.RegexHbaseEventSerializer
# Use a channel which buffers events in memory
# 描述一下channel:内存
a1.channels.c1.type = memory
# capacity:容量
a1.channels.c1.capacity = 1000000
# transactionCapacity:事务的容量
a1.channels.c1.transactionCapacity = 1000000
# Bind the source and sink to the channel
# 绑定;source和channel绑定
a1.sources.r1.channels = c1
# sink和channel绑定
a1.sinks.k1.channel = c1
三、测试
1、运行agent
nohup bin/flume-ng agent --conf conf \
--conf-file conf/flume_hbase.properties \
--name a1 -Dflume.root.logger=INFO,console &
2、在/root/flume 下创建 test.txt
路飞
索隆
娜美
3、查看mydata:flume_table
scan 'mydata:flume_table'
4、将text.txt中的中文去掉(默认文件中的一行是一个值)
Monkey,D,Luffy
Roronoa,Zoro
— 要养成终生学习的习惯 —
Flume - [05] Hbase sink的更多相关文章
- 自定义flume的hbase sink 的序列化程序
package com.hello.hbase; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import ...
- Flume-Hbase-Sink针对不同版本flume与HBase的适配研究与经验总结
https://cloud.tencent.com/developer/article/1025430 Flume-Hbase-Sink针对不同版本flume与HBase的适配研究与经验总结 mike ...
- HBase详解(05) - HBase优化 整合Phoenix 集成Hive
HBase详解(05) - HBase优化 整合Phoenix 集成Hive HBase优化 预分区 每一个region维护着startRow与endRowKey,如果加入的数据符合某个region维 ...
- flume 自己定义 hbase sink 类
參考(向原作者致敬) http://ydt619.blog.51cto.com/316163/1230586 https://blogs.apache.org/flume/entry/streamin ...
- kerberos环境下flume写hbase
直接看官网 http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#hbasesinks a1.channels = c1 ...
- Flume的Avro Sink和Avro Source研究之二 : Avro Sink
啊,AvroSink要复杂好多:< 好吧,先确定主要问题: AvroSink为啥这么多代码?有必要吗?它都有哪些逻辑需要实现? 你看,avro-rpc-quickstart里是这么建client ...
- Hadoop实战-Flume之自定义Sink(十九)
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...
- Hadoop实战-Flume之Hdfs Sink(十)
a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = ...
- flume 测试 hive sink
测试flume,将数据送到hive表中,首先建表. create table order_flume( order_id string, user_id string, eval_set string ...
- Flume的Avro Sink和Avro Source研究之一: Avro Source
问题 : Avro Source提供了怎么样RPC服务,是怎么提供的? 问题 1.1 Flume Source是如何启动一个Netty Server来提供RPC服务. 由GitHub上avro-rpc ...
随机推荐
- 在腾讯云 EMR 上使用 GooseFS 加速大数据计算服务
GooseFS 是腾讯云对象存储团队最新推出的高性能.高可用以及可弹性伸缩的分布式缓存系统,依靠对象存储(Cloud Object Storage,COS)作为数据湖存储底座的成本优势,为数据湖生态中 ...
- 中电金信:四川农担X中电金信大数据智能风控平台 护航金融服务乡村振兴
高质量金融服务是乡村振兴的重要支撑.四川省农业融资担保有限公司(以下简称"四川农担")持续探索融资担保服务,努力满足"三农"领域多样化.多层次融资担保需求的同 ...
- Terraform Aliyun 创建ecs, kubernetes 实例
Terraform Aliyun 创建ecs, kubernetes 实例 terraform demo for aliyun 创建vpc, 网关, EIP, ecs, kubernetes, Ser ...
- 使用docker-compose快速部署Prometheus+grafana环境
由于最近公司服务频繁出问题,老板很生气,下面的人都很不好过,于是老大让加一下业务监控,来观察线上数据状态.但是由于qa环境数据量太少,所以自己搭建了一套环境做相关监控,并且写了个脚本模仿生产上的数据, ...
- Qt开源作品43-超级图形字体
一.前言 对于众多的Qter程序员来说,美化UI一直是个老大难问题,毕竟这种事情理论上应该交给专业的美工妹妹去做,无奈在当前整体国际国内形式之下,绝大部分公司是没有专门的美工人员的,甚至说有个兼职的美 ...
- [Git][基本原理与命令]
引言 Git是工作中最常用的版本控制工具,本文中将介绍其常用的命令. 根据作用的不同,可以分为基本命令.撤销命令.合并命令与远程仓库命令,下面将依次介绍这些命令. 基本原理 git 中提供了底层api ...
- Applitools_问题汇总
1. Android使用Real Device 问题1: AttributeError: 'NoneType' object has no attribute 'to_capabilities' 解 ...
- 中间件 vs 过滤器
在 ASP.NET Core 中,中间件(Middleware) 和 过滤器(Filters) 是两种不同的机制,用于处理请求和响应的管道.它们的作用和适用场景有所不同,以下是它们的对比和详细说明: ...
- Qwen2ForSequenceClassification文本分类实战和经验分享
本文主要使用Qwen2ForSequenceClassification实现文本分类任务. 文章首发于我的知乎:https://zhuanlan.zhihu.com/p/17468021019 一.实 ...
- 一级缓存和二级缓存--mybatis|hibernate
一级缓存和二级缓存的区别: 主要的不同是它们的作用范围不同. 一级缓存是session级别的. 也就是只有在同一个session里缓存才起作用,当这个session关闭后这个缓存就不存在了. 而二级缓 ...