flume加载本地数据到hbase


阐述

我是自己在阿里云租了一台服务器,安装的组件也都是选的单机模式


提示:以下是本篇文章正文内容,下面案例可供参考

一、开发环境

java:1.8.0_201
flume:1.9.0
kafka:2.11-2.2.2
zookeeper:3.5.8
hive:2.3.7
hadoop:2.7.6

二、下载安装组件

1、将下载好的组件解压

代码如下(示例):hadoop跟java我之前都装好了
这里就不想细说了

tar -zxvf apache-flume-1.9.0-bin.tar.gz /opt
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz /opt
tar -zxvf hbase-2.2.5-bin.tar.gz /opt

2.修改flume配置

添加test.conf.properties文件:
test.conf.properties这个配置文件是flume加载数据到hbase的时候使用的
可以写好几个,flume支持同时将好几份数据写入Hbase中

cd /opt/flume/conf
vim test.conf.properties
a1.sources = r1 
a1.sinks = k1 
a1.channels = c1 # Describe/configure the source 
a1.sources.r1.type = exec 
a1.sources.r1.command = tail -F /date/hbase.txt 
a1.sources.r1.channels = c1 # Describe the sink 
a1.sinks.k1.type = logger 
a1.sinks.k1.type = hbase 
# 与hbase中创建的表名相同
a1.sinks.k1.table = t2
# 与hbase中创建的表的列簇相同
a1.sinks.k1.columnFamily = f2
a1.sinks.k1.serializer = org.apache.flume.sink.hbase.RegexHbaseEventSerializer 
a1.sinks.k1.channel = memoryChannel # Use a channel which buffers events in memory 
a1.channels.c1.type = memory 
a1.channels.c1.capacity = 1000 
a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel 
a1.sources.r1.channels = c1 
a1.sinks.k1.channel = c1

将内容添加到test.conf.properties文件中
修改/opt/flume/conf/flume-env.sh配置文件,添加jdk目录
export JAVA_HOME=/date/jdk1.8.0_201

3.修改hbase配置

1.将/opt/hadoop-2.7.6/etc/hadoop/core-site.xml跟hdfs-site.xml
拷贝到 /opt/hbase/conf/目录下
2.修改hbase-site.xml
export JAVA_HOME=/date/jdk1.8.0_201

vim hbase-site.xml
<property>
    <name>hbase.zookeeper.property.dataDir</name>(zookeeper目录)
    <value>/opt/zookeeper</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>(false为单例模式,true为集群模式)
    <value>false</value>
  </property>
  <property>
    <name>hbase.rootdir</name>(Hbase数据存储路径)
    <value>hdfs://服务器ip:9000/hbase</value>
  </property>
  <property>
    <name>zookeeper.znode.quorum</name>(zookeeper,ip+端口)
    <value>127.0.0.1:2181</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>(hbase端口)
    <value>2182</value>
  </property>
</configuration>

修改hbase-env.sh配置文件
jdk目录:export JAVA_HOME=/date/jdk1.8.0_201
使用自己安装的zookeeper:export HBASE_MANAGES_ZK=false
将hbase下面的所有jar包拷贝到flume下面
scp *.jar /opt/flume/lib/


4.启动flume

先启动hbase
启动hbase后创建表
cd /opt/hbase/bin
./hbase shell
create ‘t2’,‘f2’
再启动flume
flume启动命令:./flume-ng agent -c …/conf -f …/conf/test.conf.properties -n a1 -Dflume.root.logger=INFO,console
启动成功后去/date目录将数据写入hbase.txt
echo ‘Iamzhangli’>>hbase.txt
然后去Hbase表里面看
scan ‘te’
就可以查到刚刚写入的数据
如果想要一次写入多张表的数据:多建几个test.conf.properties文件
然后启动flume的时候加载不同的test文件就可以实现同时多表导入了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值