Flume读取文本文件写入到HBase

举报
一夜 发表于 2020/11/19 09:33:25 2020/11/19
【摘要】 操作场景Flume采集文件内容导入到habse前提条件· 已创建启用Kerberos认证的流集群。· 已在日志生成节点安装Flume客户端,请参见安装Flume客户端。· 已配置网络,使日志生成节点与流集群互通。操作步骤(1) 从HBase客户端拷贝配置文件hbase-site.xml到Flume Client的配置目录 " /opt/Flu...

操作场景

Flume采集文件内容导入到habse

前提条件

·         已创建启用Kerberos认证的流集群。

·         已在日志生成节点安装Flume客户端,请参见安装Flume客户端

·         已配置网络,使日志生成节点与流集群互通。

操作步骤

(1)  HBase客户端拷贝配置文件hbase-site.xmlFlume Client的配置目录 " /opt/FlumeClient/fusioninsight-flume-1.6.0/conf" 下。通常可以在分析集群Master节点HBase客户端安装目录如“/opt/client/HBase/hbase/conf/”下找到hbase-site.xml文件。

(2)  MRS集群下载用户的认证凭据。

①在MRS Manager,单击系统设置

 权限配置区域,单击用户管理

 在用户列表中选择需要的用户,单击后面的更多下载用户凭据。

 解压下载的用户凭据文件,获取krb5.confuser.keytab文件。

(3) 将上一步获得的krb5.confuser.keytab拷贝到Flume Client所在节点的配置目录 " /opt/FlumeClient/fusioninsight-flume-1.X.X/conf" 下。

4)修改配置文件jaas.conf

         /opt/Bigdata/MRS_x.x.x/1_x_Flume/etc/" jaas.conf文件拷贝到/opt/FlumeClient/fusioninsight-flume-1.X.XS/conf

  修改jaas.conf文件中的参数principal keyTab

Principal: 可以kinit 用户名进行认证查看参数

keyTab: 定义的用户认证文件完整路径即步骤(1)中保存user.keytab认证文件的目录

 (5) 修改配置文件flume-env.sh,文件所在目录 /opt/FlumeClient/fusioninsight-flume-1.6.0/conf

 “-XX:+UseCMSCompactAtFullCollection”后面,增加以下内容:-Djava.security.krb5.conf=/opt/FlumeClient/fusioninsight-flume-1.6.0/conf /krb5.conf -Djava.security.auth.login.config=/opt/FlumeClient/fusioninsight-flume-1.6.0/conf /jaas.conf -Dzookeeper.request.timeout=120000

 

krb5.confjaas.conf根据实际情况,修改配置文件路径,然后保存并退出配置文件

6)假设Flume客户端安装路径为“/opt/FlumeClient”,执行以下命令,重启Flume客户端:

cd /opt/FlumeClient/fusioninsight-flume-1.6.0/bin

./flume-manage.sh restart

 

7)执行以下命令,修改Flume客户端配置文件“properties.properties”

vi Flume客户端安装目录/fusioninsight-flume-1.6.0/conf/properties.properties

将以下内容保存到文件中:

client.sources = r1  

client.sinks   = k1    

client.channels   = c1 

 

#   Describe/configure the source

client.sources.r1.type   = spooldir 

#实时读取本地目录

client.sources.r1.spoolDir   = /tmp/data/

client.sources.r1.trackerDir   = /tmp/data/tracker/

client.sources.r1.fileSuffix   = .COMPLETED

client.sources.r1.deletePolicy=   never

client.sources.r1.fileHeader   = true 

client.sources.r1.channels   = c1  

client.sources.r1.batchSize   = 100

#   Use a channel which buffers events in memory

client.channels.c1.type   = memory  

client.channels.c1.capacity   = 10000

client.channels.c1.transactionCapacity   = 100

 

client.sinks.k1.type   = hbase

#表名

client.sinks.k1.table   = movie

#列组

client.sinks.k1.columnFamily   = analyse

#通配符(数据格式为        1001,,9   )

client.sinks.k1.serializer.regex   =(.*),(.*),(.*)

client.sinks.k1.serializer   = org.apache.flume.sink.hbase.RegexHbaseEventSerializer

client.sinks.k1.channel   = c1 

#

client.sinks.k1.serializer.colNames   = ROW_KEY,movie_name,rating

索引为0,即ROW_KEY(ROW_KEY是特殊字符)

client.sinks.k1.serializer.rowKeyIndex   = 0

client.sinks.k1.kerberosPrincipal   = 用户名

client.sinks.k1.kerberosKeytab=/opt/FlumeClient/fusioninsight-flume-1.6.0/conf/user.keytab 

 

client.sinks.k1.kerberosPrincipal   用户名

client.sinks.k1.kerberosKeytab    user.keytab文件路径指定

8)添加数据

         创建测试数据

         vim /tmp/data/test1.txt

1001,tom,3

1002,jerry,5

1003,jack,4

 

9)创建hbase

hbase(main):001:0> create 'movie','analyse'

 



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。