Flume(二十一)Memory Channel

Memory Channel是将收集来的数据临时存储到内存队列中,如果不指定,那么该队列默认大小是100,即最多允许在队列中存储100条数据。如果队列被占满,那么后来的数据就会被阻塞(即Source收集到的数据就无法放入队列中,产生rollback回滚),直到队列中有位置被空出。

实际过程中,这个值一般会调大,一般会调节为10W~30W,如果数据量较大,那么也可以考虑调节为50W。需要注意的是,Memory Channel是将数据临时存储在内存中,所以是不可靠的,但是数据的读写速度相对较快,因此适用于要求速度但是不要求可靠性的场景。

Channel可以批量接受Source的数据,也可将数据批量发送给Sink,transactionCapacity 属性,默认每一批数据是100条,实际过程中一般会把这个值调整为1000-3000。如果channel的容量为50W,那么此时一般将批量调节为5000

Flume(二十一)Memory Channel_第1张图片

1.编写配置文件

a1.sources=r1

a1.channels=c1

a1.sinks=k1

#配置r1的输入源为netcat

a1.sources.r1.type=netcat

a1.sources.r1.bind = m1
a1.sources.r1.port= 9999

#配置channels的类型为memory

a1.channels.c1.type=memory

a1.channels.c1.capacity=100000

a1.channels.c1.transactionCapacity

你可能感兴趣的:(#,flume,flume,大数据)