Flume是一个分布式的日志收集系统,提供了很好的配置管理。今天分析一下页面提交配置的详细过程。
1,前台部分,首先,在flumeconfig.jsp页面中,提供了配置管理的表单,详细如下,
<h2>Configure a single node</h2>
<form method=post action="command.jsp">
<table>
<tr>
<td>Configure node:</td>
<td>
<select name="nodeChoice">
<option value="">Choose from list</option>
<% for (String s : FlumeMaster.getInstance().getKnownNodes()) {
%> <option value="<%= s %>"><%= s %></option>
<%
}
%>
</select>
</td>
</tr>
<tr>
<td>
or specify another node:
</td>
<td>
<input type="text" name="node" size=128 />
</td>
</tr>
<tr>
<td>Source: </td>
<td><input type="text" name="source" size=128/> </td>
</tr>
<tr>
<td>Sink:</td>
<td><input type="text" name="sink" size=128/> </td>
</tr>
<tr>
<td>
<input type="submit"/>
</td>
</tr>
</form>
</table>
当填好表单,并提交表单,该页面会跳转到command.jsp中进行处理,command.jsp详细如下:
<jsp:useBean id="cmd" class="com.cloudera.flume.master.ConfigCommand" scope="request"/>
<jsp:setProperty name="cmd" property="*"/>
<html>
<link rel="stylesheet" type="text/css" href="/flume.css">
<meta HTTP-EQUIV="REFRESH" content="5;url=flumeconfig.jsp"/>
<body>
<h2>Command received</h2>
You entered<br>
Node: <%= cmd.getNode() %> <br>
Source: <%= cmd.getSource() %> <br>
Sink: <%= cmd.getSink() %> <br>
<p>Please wait for a few seconds, and we'll redirect you back to
<a href="flumemaster.jsp">the Master overview</a>.
</body>
</html>
<%
FlumeMaster.getInstance().submit(cmd.toCommand());
%>
从command.jsp代码中,可以看出flumeconfig.jsp提交过来的表单值赋给了ConfigCommand对象cmd。然后,调用FlumeMaster对象提交该命令。其中,cmd.toCommand()代码如下:
public Command toCommand() {
return new Command("config", node != null ? node : nodeChoice, source, sink);
}
config是该命令的名称,后面是该命令的参数。将ConfigCommand对象转换成Command对象。在Flume的命令管理中,会将各种各样的不同的命令转换成Command对象,然后CommandManager对象管理这些Command,类似于Command是所有其他具体Command的超集,例如ConfigCommand,LoadConfigCommand等。
2,后台部分
后台部分从 FlumeMaster.getInstance().submit(cmd.toCommand());代码开始,从下面代码可以看出FlumeMaster将会调用CmmandManager对象来提交从前台提交过来的命令,并处理命令。
public long submit(Command cmd) {
return cmdman.submit(cmd); //cmdman其实是CommandManager对象
}
从以上分析可以看出,Flume的提交配置非常简单,清晰。下节将会讲解CommandManager。
分享到:
相关推荐
3. **运行**:提交 Spark Streaming 应用到 Spark 集群,开始监听 Flume 发送过来的数据,并实时处理来自 Kafka 的消息流。 总结,本实验报告详细介绍了如何将 Flume 作为数据源,通过 Kafka 中继,再由 Spark ...
在Flume 1.8版本中,它继续提供高效的数据流处理能力,为大数据分析和监控提供了强大的支持。这份“flume1.8文档中文完整翻译版”是官方英文文档的中文译本,旨在帮助中国用户更好地理解和使用Flume。 一、Flume...
Flume是一种分布式、高可靠和高...总的来说,Flume作为日志数据采集和传输的工具,具有分布式架构、高可靠性、高可用性、灵活的配置和插件扩展能力等特点,使其非常适合在大规模分布式系统中用于日志数据的管理和分析。
2. 创建 Flume Agent 配置文件 flume-telnet.conf。 3. 判断 44444 端口是否被占用。 4. 启动 Flume 配置文件。 5. 使用 telnet 工具向本机的 44444 端口发送内容。 4.2.2 案例二:实时读取本地文件到 HDFS ...
- 修改`conf/flume.conf`配置文件,根据实际需求设置Sources、Channels和Sinks。 - 配置数据源,例如从HTTP服务器获取日志,使用http source。 - 配置数据目标,如将数据发送到Kafka,使用kafka sink。 2. **...
3. Spark程序提交运行:如果Flume与Spark配合处理数据,需了解如何通过Spark提交Flume处理的Java或Scala程序。 五、监控与验证 1. 监控程序运行:通过FusionInsight Manager或其他监控工具查看Flume服务状态,监控...
大数据面试题 大数据面试题 涉及到...大数据面试题涵盖了HDFS、MapReduce、Hive、Flume、Spark和Kafka 等技术栈,涉及到数据存储、数据处理、数据分析和消息传输等多个方面,需要有深入的技术理解和实践经验。
这涉及到配置如Ganglia、Ambari Metrics、Flume等工具,以便及时发现和解决问题。 通过深入学习和实践Hadoop类库和配置文件的管理,开发者不仅能提升处理大数据的能力,还能更好地应对各种分布式计算挑战。Hadoop第...
- **Flume Sink Processors相关配置和案例分析**:介绍Flume Sink Processors的配置选项,并通过具体案例进行分析。 - **Flume Interceptors相关配置和案例分析**:介绍Flume Interceptors的功能,并通过案例分析其...
config ES logStash Flume 相关配置文件 mlib-text 机器学习分类测试相关数据 statistical-static-txt SparkSQL相关关联静态数据 ``分析内容`` 1.图计算 2.机器学习预测歌曲分类 3.评论词云 4.评论时间段 5...
在这个“大数据作业提交”中,学生可能需要完成一系列任务,例如编写Flume配置文件以实现数据流的定制化,设计并实现基于Hadoop MapReduce或Spark的批处理或流处理任务,或者通过Hive或Pig进行数据查询和分析。...
五、Spark提交任务时的参数配置:例如,`--master`定义Spark运行模式,`--executor-memory`指定Executor内存,`--num-executors`设置Executor数量等。 六、JAVA.util包:包含大量基础工具类,如ArrayList, HashMap,...
Flume是一个分布式、可靠且用于有效收集、聚合和移动大量日志数据的系统,它的组织架构灵活,可以根据需求配置多个源头和目的地,确保数据的稳定传输。 2. 数据清洗:数据清洗是分析过程中的关键步骤,系统根据分析...
- **定制 Flume Agent**:在 Flume 配置文件中定义一个新的 Sink,该 Sink 使用 Kudu Java API 将接收到的 Kafka 数据写入 Kudu 表。 通过以上步骤,我们可以构建一个实时数据采集、处理和分析的系统,使得数据从...
- **flumesource相关配置及测试**:配置不同的数据源(source)。 - **flumesink相关配置及测试**:配置不同的数据接收器(sink)。 - **flumeselector相关配置与案例分析**:使用选择器(selector)实现数据流的控制。 - ...
1. **配置文件**:通过编写详细的配置文件`dataCollect.conf`来实现对Flume的控制。 2. **执行命令**:使用`flume-ng agent --conf conf --conf-file job/dataCollect.conf --name a1 -Dflume.root.logger=INFO,...
- **集群配置**:包括NN、DN、ZK、Kafka、Flume、HBase、Hive、MySQL、Spark、ES、Sqoop、Canal和Azkaban等服务的分布和配置。 4. **高可用与优化**: - **NN和MySQL**:配置高可用,取消部分DN。 - **ZK和Kafka...
通过实战案例,深入解析Java Consumer与Producer的高级用法,包括手动提交Offset、数据回溯、自定义Partition等,让读者能够高效处理大规模数据流。同时,资源还详细讲解了Kafka的文件存储优化、零拷贝技术提升吞吐...
此外,还可以深入了解Hadoop生态系统中的其他项目,比如HBase(用于构建大规模分布式数据库)、Hive(用于进行数据仓库分析)、Sqoop(用于在Hadoop和关系型数据库之间传输数据)和Flume(用于收集、聚合和移动大量...
Flume集群配置需要考虑多个方面,包括source、channel、sink的类型和配置、数据流的拓扑结构、以及故障转移机制。集群模式下,需要设置多个Flume Agent并合理配置它们之间的通信。 Flume不采集Nginx日志,通过...