目标:
在Cloudera Manager中创建两个Flume的Agent,Agent1从local file中获取内容,写入到kafka的队列中。Agent2以Agent1的sink作为source,将数据从kafka中读取出来,写入到HDFS中。
注意
我的Cloudera Manager使用的是CDH5.8的Parcel,在这个版本中,Kafka使用的是0.9.0.0d 版本。Kakfa0.9与0.8的API有巨大的区别,了解这一点很重要,因为如果不了解这一点,盲目从网上copy相关Flume的Kafka配置,实验将不会成功。例如,如果Kafka的版本是0.8的版本,和Kafka连接会使用zookeep.connect,metadata.brokerList这样的参数,而在0.9.0.0的版本中,这些参数都不再支持,而使用bootstrap.servers这样的参数。
第一步,在Cloudera Manager中安装Flume,安装时指定两个Agent。这一步很简单。
第二步,创建一个新Role Group。默认情况下,所有的Agent都处于一个叫Agent Default Group的角色组中,处于同一角色组中的Agent共享相同的配置。但是在我们这个例子中,两个Agent要完成不同的工作,需要不同的配置。所有新建一个Role Group,并把其中一个Agent移到到这个新的Group中,如下图所示。