在kafka的默认配置下,限制了数据传输的大小(默认情况下为1M) 网络数据采集与提取,有时候会超过这个1M限制
一.修改kafka的配置文件
1、知道自己的数据量大概范围,联系大数据运维,修改对应的topic配置。
推送数据时,需要知道kafka的结果,代码如下:
future = producer.send(topic, json.dumps(item).encode('utf-8'))
result = future.get(timeout= 10)
print(result)
复制代码
或者
producer.send(topic, json.dumps(item).encode('utf-8')).get()
复制代码
2、测算大小
import sys
sys.getsizeof(json_raw)
>>> 2252688
if sys.getsizeof(json_raw) > 1048576:
logger.error("联系大数据运维,从1M,调大这个项目的kafka topic容量")
复制代码
二、修改程序中的kafka配置
1、数据采集生产者
producer = KafkaProducer(
bootstrap_servers=self.kafka_servers,
max_request_size=10485760, # 10M 联系大数据运维修改配置
buffer_memory=10485760, # 10M
compression_type='gzip'
)
复制代码
2、大数据入hive消费者
设定最大20M