kafka导入hbase
Last updated
Was this helpful?
Last updated
Was this helpful?
kafka接入hbase
实现从kafka消费数据,并将数据写入hbase。
该任务是一个storm toplogy 实时任务。 使用前请确保 jstorm 已经安装,且运行状态正常。
参考 基本信息设置
参考 调度设置
参数配置如下图所示: kafka 接入hbase 参数设置分成三个部分:kafka配置,hbase 配置,topology 配置信息。
消息中间件主题 kafka topic 在创建任务前,需要确保topic已经存在,系统不会创建对应的topic。
消息中间件消费组 kafka消费组 可以随意指定,但需要确保消费组全局唯一。
kafka集群broker 列表 kafka broker 列表,格式为 ip1:port,ip2:port ip地址为Kafka Broker 服务所在节点ip port kafka 开放给client 连接端口,可以参考kafka broker 服务配置。
HBase表名
格式为dbName:tableName ,如:hbase_autotest:auto_kafka_hbase
HBase行主键
每次插入一条记录,会根据配置的行主键信息生成行主键,格式${topic}:#{abc}:${1}。
topic 为kafka 主题,
#{}内容( 如:abc)为随意指定的一个固定值,可以方便查询。
最后一个参数${n}为 消息被分隔符切分得到的数组下标所对应的值(n 是整数)。
假如现在从kafka 集群 主题为firstTopic 消费了一条内容为“a,b,c,d”的记录,设置分割符为 “,” ,行主键设置是${topic}:#{ABC}:${1}。则这条记录插入hbase ,生成的主键为 主题为firstTopicABCb。
HBase列簇 列簇1名:列1名|列1值,列2名|列2值;列簇2名:列3名|列3值,列4名|列4值。 比如:s1:#{name}|${0};s2:#{age}|${1} ${n} 其中n 为整数,为消费消息被切分之后,组成的数组所在索引对应的值。
HBase字段描述 字段名1,字段类型1,字段备注1:字段名2,字段类型2,字段备注2,比如:name,STRING,desc:age,STRING,desc。 当前只支持STRING类型。
分隔符 切分消息使用的分隔符。
Zookeeper根节点 为hbase 在zk 上的根目录, 默认为:/hbase-unsecure
Work进程数 该任务所占storm 集群的槽位,默认为1.
Spout线程数 设定spout 启动的线程数
Bolt线程数 设定bolt 启动线程数
kafka消费线程数 设定kafka 消费线程数
消息中间件主题: kafka_export_hbase 消息中间件消费组:kafka_export_hbase kafka集群broker list:10.254.83.70:6668 HBase表名:hbase_autotest:auto_kafka_hbase HBase行主键:${topic}:#{cd}:${1} HBase列簇: s1:#{name}|${0};s2:#{age}|${1} HBase字段描述:name,STRING,desc:age,STRING,desc 分隔符:, Zookeeper根节点:/hbase-unsecure Work进程数: 1 Spout线程数: 1 Bolt线程数: 1 kafka消费线程数:1