私が使用するログ形式は JSON で、15 個のキーと値のペアがあります。
{"k1":"v1","k2":"v2","k3":"v3","k4":"v4","k5":"v5","k6":"v6","k7":"v7","k8":"v8","k9":"v9","k10":"v10","k11":"v11","k12":"v12","k13":"v13","k14":"v14","k15":"v15"}
次の構成は、Flume コレクター ノードがログを解析して HBase に保存するためのものです。
* Source
collectorSource(35853)
* Sink
regexAll("\\{\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\",\"([^\"]*)\":\"([^\"]*)\"\\}", "k1", "v1", "k2", "v2", "k3", "v3", "k4", "v4", "k5", "v5", "k6", "v6", "k7", "v7", "k8", "v8", "k9", "v9", "k10", "v10", "k11", "v11", "k12", "v12", "k13", "v13", "k14", "v14", "k15", "v15")
hbase("accesslog", "%{nanos}", "colfam", "%{k1}", "%{v1}", "colfam", "%{k2}", "%{v2}", "colfam", "%{k3}", "%{v3}", "colfam", "%{k4}", "%{v4}", "colfam", "%{k5}", "%{v5}", "colfam", "%{k6}", "%{v6}", "colfam", "%{k7}", "%{v7}", "colfam", "%{k8}", "%{v8}", "colfam", "%{k9}", "%{v9}", "colfam", "%{k10}", "%{v10}", "colfam", "%{k11}", "%{v11}", "colfam", "%{k12}", "%{v12}", "colfam", "%{k13}", "%{v13}", "colfam", "%{k14}", "%{v14}", "colfam", "%{k15}", "%{v15}")
これらのキーと値のスタイルのログを HBase に効率的に保存するには、もっと良い方法があると思います。
HBase シンク用に選択したログ形式は何ですか?
シンクを から に変更するhbase()
予定ですが、その前に、より効率的な生ログ形式に関するアドバイスと、およびシンクattr2hbase()
のヒントを得たいと思います。hbase()
attr2hbase()