hadoop - 以高吞吐量在 HDFS 上进行流式数据写入

标签 hadoop hdfs spark-streaming read-write throughput

我有来自大量传感器(> 500)的数据流,我需要将这些数据写入我的 HDFS。传感器几乎每 1 秒发送一次数据,每个推送数据的大小约为 300B。问题是我已经体验到,每当我开始使用附加模式在 HDFS 上推送很多东西时,它就会开始引发许多异常并卡住。我需要找到一种方法来处理每秒如此大量的写入,比如采用一个中间层来存储数据,然后慢慢将它们推送到 HDFS 中。我不知道是否有任何数据库可以解决这个问题,如果可以,哪个是最好的?

更新:我环顾四周,很难理解不同解决方案的局限性和潜力。

  • 显然,作为 Kafka 的技术可以处理“来自数千个客户端每秒数百兆字节的读取和写入”。
  • 还有其他技术,其中一些基于 Kafka 本身,如 Confluent ,但我还不清楚它是如何改进写作的。
  • 然后,还有其他框架,称为“日志记录层”(或多或少),它们提供了这种管理写入的中间层。大多数广告产品是FluentdLogstash .
  • 最后,Spark 作为流组件,Spark Streaming ,它应该以某种方式管理大量数据的流式传输。

  • 现在,我的问题是是否有人曾经处理过类似的问题,这可能是我的案例的一个很好的解决方案。

    最佳答案

    我无法帮助您提高 HDFS 吞吐量,但由于您提到了中间层,我将列出一些与 Spark 结合使用的常用数据存储,这些数据存储通常提供高写入(我认为您也在尝试使用 Spark?)。我怀疑大多数或全部都能够写回 HDFS。

  • SnappyData
  • MemSQL
  • Cassandra
  • Ignite
  • HBase
  • Redis

  • 什么是“最好的”是一个意见问题,通常在 StackOverflow 上不受欢迎。但是,通过一些挖掘,您可以找到基准测试和其他基准测试。

    关于hadoop - 以高吞吐量在 HDFS 上进行流式数据写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37945616/

    相关文章:

    hadoop - 如何使用sqoop从hadoop加载数据到solr?

    apache-spark - 获取 : Error importing Spark Modules : No module named 'pyspark.streaming.kafka'

    performance - Spark Streaming 调度延迟的恢复技术

    apache-spark - SPARK YARN:无法从客户端发送作业(org.apache.hadoop.ipc.Client-重试连接到服务器:0.0.0.0/0.0.0.0:8032)

    java - Hadoop 文件系统 shell 在成功执行后返回 -1

    java - 如何在java客户端获取HDFS服务器的元数据信息?

    java - Kafka Spark Streaming LocationStrategies java类def未找到异常

    hadoop - 集群重启后获取Hadoop集群上已执行的作业列表

    apache - 为什么 Apache Avro 使用 JSON 来定义模式?

    hadoop - 如何在运行 copyFromLocal 命令时更改复制因子?