如何将AWS EC2上的Kafka流数据存储到指定挂载的第二块数据卷
解决方案
操作步骤
- 确认次卷挂载路径的写入权限
你的次卷已经成功挂载到/opt/data/datadir1路径,先执行命令确认运行Kafka消费命令的用户拥有该目录的写入权限:
# 查看目录权限属性 ls -ld /opt/data/datadir1 # 若无写入权限,替换为实际运行命令的用户名(如EC2默认的ec2-user)执行赋权 sudo chown -R 你的用户名:你的用户名 /opt/data/datadir1
- 修改消费命令的输出路径
将原命令中tee后的相对路径output.txt替换为次卷挂载目录下的绝对路径即可,修改后的命令示例:
bin/kafka-console-consumer.sh --topic my_kafka_topic --from-beginning --bootstrap-server "my_dns:9092" | tee /opt/data/datadir1/output.txt
验证存储位置
完成写入后执行以下命令,即可确认文件是否存储在次卷:
df /opt/data/datadir1/output.txt
若输出结果的Filesystem列显示为/dev/nvme1n1,说明存储位置符合预期。
可选优化
如果需要长时间运行消费任务避免终端断开导致进程中断,可以将命令放到nohup后台运行:
nohup bin/kafka-console-consumer.sh --topic my_kafka_topic --from-beginning --bootstrap-server "my_dns:9092" | tee /opt/data/datadir1/output.txt &
内容的提问来源于stack exchange,提问作者Tristan Tran
相关产品推荐
相关产品推荐

