使用flume ng写数据到hbase 失败
使用flume ng 写数据到hbase,使用org.apache.flume.sink.hbase.SimpleHbaseEventSerializer可以写成功,只是写到一个列里面,这不是我想要的。所以使用 org.apache.flume.sink.hbase.RegexHbaseEventSerializer,使用正则写入。flume没有错误日志,但是hbase中也没有收到数据。
flume版本1.6.0 HBASE版本1.2.0
原始数据:
one,two,three,four,five
tier1.sources.source1.channels = channel1
tier1.sinks.sink1.channel = channel1
tier1.sinks.sink1.type = hbase
tier1.sinks.sink1.table = host_table
tier1.sinks.sink1.columnFamily = host_info
tier1.sinks.sink1.serializer = org.apache.flume.sink.hbase.RegexHbaseEventSerializer
tier1.sinks.sink1.serializer.regex= ^(w+),(w+),(w+),(w+),(w+)$
tier1.sinks.sink1.serializer.rowKeyIndex = 0
tier1.sinks.sink1.serializer.colNames= ROW_KEY,o,z,w,d
tier1.sinks.sink1.batchSize = 50
tier1.sinks.sink1.zookeeperQuorum = 127.0.0.1:2181
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正则表达式不正确,匹配不了数据,才导致hbase数据无法写入
你好, 我也遇到了同样的问题, 请问这个最后是怎么解决的, 正则表达式我使用 Java 程序验证了, 可以取出数据, 如下
"name":"(.*?)".*?"content":"(.*?)".*?"timestamp":(1[0-9]{12})
目前使用从 JSON 中取出数据存入 HBase, 原始JSON 样例:
{"name":"this-is-a-name","content":"this is a test string for flume writting into hbase","timestamp":1574737747250}
多谢赐教