Hadoop ApacheKafka是否将消息内部存储在HDFS或其他文件系统中

Hadoop ApacheKafka是否将消息内部存储在HDFS或其他文件系统中,hadoop,hdfs,apache-kafka,kafka-producer-api,kafka-python,Hadoop,Hdfs,Apache Kafka,Kafka Producer Api,Kafka Python,我们有一个在Kafka层测试数据的项目需求。因此JSON文件正在进入hadoop区域,kafka正在读取hadoop中的实时数据(原始JSON文件)。现在我必须测试从另一个系统发送的数据和卡夫卡读取的数据是否相同 我可以在卡夫卡验证数据吗?。卡夫卡是否在HDFS内部存储消息?。如果是,则它存储在与hive内部保存的文件结构类似的文件结构中,就像单个表的单个文件夹一样。Kafka将数据存储在本地文件中(即每个正在运行的代理的本地文件系统)。对于这些文件,Kafka使用自己的存储格式,该格式基于分区

我们有一个在Kafka层测试数据的项目需求。因此JSON文件正在进入hadoop区域,kafka正在读取hadoop中的实时数据(原始JSON文件)。现在我必须测试从另一个系统发送的数据和卡夫卡读取的数据是否相同


我可以在卡夫卡验证数据吗?。卡夫卡是否在HDFS内部存储消息?。如果是,则它存储在与hive内部保存的文件结构类似的文件结构中,就像单个表的单个文件夹一样。

Kafka将数据存储在本地文件中(即每个正在运行的代理的本地文件系统)。对于这些文件,Kafka使用自己的存储格式,该格式基于分区的仅附加日志抽象

可以通过参数
log.dir
配置本地存储目录。此配置针对每个代理单独进行,即每个代理可以使用不同的位置。默认值为
/tmp/kafka日志

此外,每个主题都有多个分区。分区是如何分布的,这是Kafka内部实现的一个细节。因此,你现在应该依靠它。要获取集群的当前状态,您可以请求有关主题和分区等的元数据(请参阅代码示例)。还请记住,分区是复制的,如果您写入,则始终需要写入分区前导(如果您创建
KafkaProducer
is,它将自动为您写入的每个分区找到前导)


有关更多信息,请浏览

Kafka将数据存储在本地文件中(即每个正在运行的代理的本地文件系统)。对于这些文件,Kafka使用自己的存储格式,该格式基于分区的仅附加日志抽象

可以通过参数
log.dir
配置本地存储目录。此配置针对每个代理单独进行,即每个代理可以使用不同的位置。默认值为
/tmp/kafka日志

此外,每个主题都有多个分区。分区是如何分布的,这是Kafka内部实现的一个细节。因此,你现在应该依靠它。要获取集群的当前状态,您可以请求有关主题和分区等的元数据(请参阅代码示例)。还请记住,分区是复制的,如果您写入,则始终需要写入分区前导(如果您创建
KafkaProducer
is,它将自动为您写入的每个分区找到前导)


有关更多信息,请浏览

我认为您可以,但您必须手动完成。您可以让kafka接收HDFS的任何输出。也许我的回答有点晚,这是在那之后出现的,但简单地说,我们可以做以下几点:

  • 假设所有服务器都在运行(检查合流 )
  • 创建连接器:

    name=hdfs-sink
    
    connector.class=io.confluent.connect.hdfs.HdfsSinkConnector
    
    tasks.max=1
    
    topics='your topic'
    
    hdfs.url=hdfs://localhost:9000
    
    flush.size=3
    
  • 注意:该方法假设您正在使用他们的平台 ()我没用过

  • 发射卡夫卡hdfs拖缆

此外,您可能会在其中找到更多有用的详细信息。

我认为您可以,但您必须手动完成。您可以让kafka接收HDFS的任何输出。也许我的回答有点晚,这是在那之后出现的,但简单地说,我们可以做以下几点:

  • 假设所有服务器都在运行(检查合流 )
  • 创建连接器:

    name=hdfs-sink
    
    connector.class=io.confluent.connect.hdfs.HdfsSinkConnector
    
    tasks.max=1
    
    topics='your topic'
    
    hdfs.url=hdfs://localhost:9000
    
    flush.size=3
    
  • 注意:该方法假设您正在使用他们的平台 ()我没用过

  • 发射卡夫卡hdfs拖缆

此外,您可能会在本文中找到更多有用的细节。

大多数初学者都会遇到这种情况。让我们首先了解一下,在大数据处理中看到的组件可能与Hadoop完全无关

纱线、MapReduce、HDFS是Hadoop的三个主要核心组件。Hive、Pig、OOOZIE、SQOOP、HBase等在Hadoop之上工作

像Kafka或Spark这样的框架并不依赖于Hadoop,它们是独立的实体。Spark支持Hadoop,就像纱线一样,可以用于Spark的集群模式,HDFS用于存储

卡夫卡作为一个独立的实体,同样可以与Spark合作。它将其消息存储在本地文件系统中

log.dirs=/tmp/kafka-logs
您可以在
$KAFKA_HOME/config/server.properties


希望这有帮助。

大多数初学者都会遇到这种情况。让我们首先了解一下,在大数据处理中看到的组件可能与Hadoop完全无关

纱线、MapReduce、HDFS是Hadoop的三个主要核心组件。Hive、Pig、OOOZIE、SQOOP、HBase等在Hadoop之上工作

像Kafka或Spark这样的框架并不依赖于Hadoop,它们是独立的实体。Spark支持Hadoop,就像纱线一样,可以用于Spark的集群模式,HDFS用于存储

卡夫卡作为一个独立的实体,同样可以与Spark合作。它将其消息存储在本地文件系统中

log.dirs=/tmp/kafka-logs
您可以在
$KAFKA_HOME/config/server.properties


希望这有帮助。

谢谢你的回答。请你详细说明一下,比如我可以检查文件中实际数据的确切物理位置。我扩展了我的答案。希望这有帮助。谢谢你的回答。请你详细说明一下,比如我可以检查文件中实际数据的确切物理位置。我扩展了我的答案。希望这有帮助。