配置Flume的Hbase sink

本文详细介绍了如何使用Apache Flume将数据收集并实时写入到HBase中。包括Zookeeper和HBase的启动步骤、Flume配置文件的设置、HBase表的创建过程、Flume的启动命令及消息发送测试等关键步骤。
一 启动Zookeeper和Hbase
master节点
[root@master flumeSpool]# jps
4513 HRegionServer
4196 ResourceManager
4661 Jps
3752 QuorumPeerMain
3916 NameNode
slave1节点
[root@slave1 ~]# jps
2560 QuorumPeerMain
3009 HRegionServer
2643 DataNode
2826 NodeManager
3130 Jps
2703 SecondaryNameNode
slave2节点
[root@slave2 ~]# jps
2448 DataNode
2962 HRegionServer
3122 Jps
2563 NodeManager
2825 HMaster
2316 QuorumPeerMain

二 准备配置文件k_hbse.conf
a1.sources = r1
a1.sinks = k1
a1.channels = c1

a1.sources.r1.type = netcat
a1.sources.r1.bind=master
a1.sources.r1.port=8888

a1.channels.c1.type = memory

a1.sinks.k1.type = asynchbase
a1.sinks.k1.table = ttt
a1.sinks.k1.columnFamily = f1
a1.sinks.k1.serializer = org.apache.flume.sink.hbase.SimpleAsyncHbaseEventSerializer

a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

三 在Hbase中创建表
[root@slave2 ~]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase-1.2.6/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-2.7.4/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017
hbase(main):001:0> create 'ttt','f1'
0 row(s) in 3.1440 seconds
=> Hbase::Table - ttt

四 启动flume
flume-ng agent --conf-file /opt/apache-flume-1.7.0-bin/conf/k_hbse.conf --name a1 

五 发消息测试
[root@master flumeSpool]# nc master 8888
hello my dear
OK

六 观察结果
要在Flume配置HBase2 sink,首先需要以下几个步骤: 1. **添加依赖**:确保你在Flume项目的构建文件(例如`pom.xml`对于Maven项目)中包含了对HBaseFlume-HBase2插件的依赖。 2. **创建Sink Config**:在Flume配置文件(通常是`flume-conf.xml`)中,创建一个新的sink节点,并指定其类型为`hbase2`。例如: ```xml <Sink> <name>HBaseSink</name> <class>org.apache.flume.sink.hbase2.HBase2Sink</class> <!-- 其他属性如表名、rowkey生成策略等 --> </Sink> ``` 3. **配置连接信息**:设置HBase的相关连接信息,如zk地址、HBase实例名称和集群地址: ```xml <appender name="HBASE" type="hbase2"> <hbaseConfig> <zookeeperQuorum>your_zk_quorum</zookeeperQuorum> <tableName>your_table_name</tableName> <columnFamilyName>your_column_family</columnFamilyName> </hbaseConfig> </appender> ``` 4. **设置数据格式**:定义数据如何从Flume事件转化为HBase的行键(row key)、列族(column family)、列名(qualifier)和值: ```xml <hbaseColumn>col1=${body:0,6}</hbaseColumn> <hbaseColumn>col2=${body:7}</hbaseColumn> <!-- 更多列映射... --> ``` 5. **启动Sink**:配置好上述内容后,确保在Flume的source和channel之间正确引用这个sink,并启动Flume。 ```xml <source> ... </source> <channel> ... </channel> <connectors> <connector name="flume-to-hbase2"> <agentId>source_agent</agentId> <sourceList> <source name="source1"> ... <sinkList> <sink name="HBaseSink"> ... </sink> </sinkList> </source> </sourceList> </connector> </connectors> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值