dashenyyy
designerchen
采纳率0%
2018-05-28 01:59 阅读 3.2k

实时数据导入hdfs,怎么样缓解写入压力?

5

我现在的需求是用flume进行数据源监控和传输,kafka作为中间件作为写入压力缓冲,最后导入hdfs,为后面的大数据分析。刚才问了一个大神,他说kafka和hdfs之间用stream,想问问各位大神怎么设计缓解hdfs写入压力。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • feelcycle_07 默默悟问 2018-05-28 02:27

    flume可以直接接hdfs的,为什么要额外用kafka呢。参考下:
    https://www.cnblogs.com/cssdongl/p/6077311.html
    http://www.cnblogs.com/cnmenglang/p/6543927.html

    点赞 评论 复制链接分享
  • devmiao devmiao 2018-05-28 02:52

    参考:
    通过Kafka将数据从关系型数据库实时数据流导入到HDFS的Hive表中
    http://www.aboutyun.com/thread-19653-1-1.html
    https://blog.csdn.net/clerk0324/article/details/60580706

    点赞 评论 复制链接分享
  • dashenyyy designerchen 2018-05-28 03:02

    各位我想知道我用kafka作为中间件缓解写入压力对不对啊

    点赞 评论 复制链接分享
  • feelcycle_07 默默悟问 2018-05-28 06:44

    缓解压力的情况我能想到3种:
    1. 本身是非实时的写,写的时候IO峰值太高,要削峰,这样肯定是改成实时,或者延长写的时间,缩短不写的间隔;
    2. 本身是实时的写,整个时间比较平均,但是持续的占用IO可能也造成设备不稳定,或者有一些业务需要偶尔足够的IO空间无法满足。
    那就要考虑改成非实时;这样实际IO峰值更高,好处是给了设备一个缓冲的相对空闲的时间。
    3. 实时写的IO太高,想降低实时的IO。

    你如果现在用flume->hdfs,应该是实时的,你确定你是要改成非实时呢,还是其实是要降低实时的IO。要实时不变,只是想降低IO,要么中间做压缩,要么得加设备。

    单纯加kafka,其实是增加了数据的传输路径,增多了整个IO。

    点赞 评论 复制链接分享
  • jenwing jenwing 2018-05-28 08:12

    1、flume-kafka-hdfs ,增加kafka 削峰没错,但是架构上面,进入到hdfs,是非实时处理了,建议区分冷热数据,进入Kafka
    的数据是实时的热数据处理。 2、文件的存储格式可以压缩,另外就是可以用struct streaming或者spark streaming等进行批
    写入到hdfs

    点赞 评论 复制链接分享

相关推荐