【发布时间】:2015-07-22 14:08:05
【问题描述】:
flume 如何识别活动的 namenode 以便将数据写入 HDFS?如果没有高可用性 Hadoop,我们将在 flume.conf 中配置 namenode ip,以便将数据轻松定向到 HDFS。而在我们的例子中,Flume 应该识别活跃和备用的名称节点,因此数据应该被引导到活跃的名称节点。
【问题讨论】:
标签: hadoop hdfs flume high-availability
flume 如何识别活动的 namenode 以便将数据写入 HDFS?如果没有高可用性 Hadoop,我们将在 flume.conf 中配置 namenode ip,以便将数据轻松定向到 HDFS。而在我们的例子中,Flume 应该识别活跃和备用的名称节点,因此数据应该被引导到活跃的名称节点。
【问题讨论】:
标签: hadoop hdfs flume high-availability
AFAIK 这是不可能的直接方式。 HDFS sink 配置只能容纳一个 Namenode。
不过,我认为您可以配置两个 HDFS 接收器(和两个通道),每个通道都指向一个 Namenode。由于默认的Replicating Channel Selector,源将在两个通道中放置每个事件的副本。因此,每个接收器都会尝试自己持久化数据;指向备用Namenode的那个将不会持久化任何东西,直到活动的那个倒下并且备用成为活动的。
HTH!
【讨论】:
关于 Pilgrim 的回答,您只能将 hdfs-site.xml 配置文件放置到您的水槽类路径中。只需将此文件复制到 $APACHE_FLUME_HOME/conf/ 目录或将 FLUME_CLASSPATH="/where/is/your/hdfs-site.xml" 添加到 flume-env.sh
你必须确定 hadoop nameservice 配置适合这个。
【讨论】:
这对我有用(hadoop 2.7.1,flume 1.6.0): 将 hadoop *-site.xml 配置文件放置到您的水槽类路径中
不确定它们中的哪一个有效,我放置了 core-site、hdfs-site、yarn-site、mapred-site)但集群名称的设置在 core-site.xml 中
【讨论】: