通过flume将IDEA控制台信息上传到hdfs中

本文介绍如何配置IDEA中的Java程序,通过Flume将控制台输出的日志信息发送到HDFS中。具体步骤包括创建resources文件夹、编写Java日志程序、配置Flume监控文件夹及启动Flume等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

① IDEA中resources的创建和resources的文件参考:https://blog.youkuaiyun.com/YiXiao1997/article/details/96479211

②在main文件夹下创建java文件:代码如下

package pers.zzp.Demo;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;

public class LogC {
	//创建log对象,
	private static Logger log = Logger.getLogger(LogC.class.getName());
	
	public static void main(String[] args) throws InterruptedException {
     //日期时间格式化  
		SimpleDateFormat sdf = new SimpleDateFormat();// 格式化时间 
        sdf.applyPattern("yyyy-MM-dd HH:mm:ss a");// a为am/pm的标记
        //做成一个死循环
        while (true) {
        	   // 获取当前时间   
        	Date date = new Date();
        	//将日志打出
        	log.info("date:"+sdf.format(date));
        	//让线程休息1秒钟
			Thread.sleep(1000);
		}
	}
}

③ 启动Linux中的flume,conf文件:https://pan.baidu.com/s/1uy1x2MJk3skJfoxrRSooAg  提取码:clvu

                                                                          文件具体内容


#声明定义一个agent
a1.sources = r1
a1.sinks = k1 
a1.channels = c1

#定义监控目录的类型,spooldir
a1.sources.r1.type = spooldir

#定义监控的目录的绝对路径
a1.sources.r1.spoolDir = /usr/local/datainput

#是不是从头开始读取
a1.sources.r1.fileHeader = true

#定义sink
a1.sinks.k1.type = logger

#定义Channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
 
#
a1.sources.r1.channels = c1 
a1.sinks.k1.channel = c1

 ④启动flume :flume-ng agent -n a1 -c ../conf -f ./spooldirt.conf -Dflume.root.logger=DEBUG,console

 ⑤运行第二步中的java代码,这样就可以将IDEA中的控制台输出的信息存储到hdfs中

 

Flume是一个分布式、可靠、高可用的数据收集系统,常用于日志收集和数据移动。为了将CSV文件从本地导入HDFSHadoop分布式文件系统),你可以按照以下步骤操作: 1. **安装和配置Flume**: - 安装Apache Flume启动Agent节点,如Source、Channel和Sink组件。 - 确保你已经配置了HDFS Sink,它允许Flume将数据写入HDFS。 2. **创建Flume Source**: - 使用`TextFile`源(`org.apache.flume.source.textfile.TextFileSource`),它可以读取CSV文件。 - 配置Source,指定CSV文件的位置、编码(如果必要)、行分割符等属性。 ```xml <source> <exec> <command>cat /path/to/csv/file.csv</command> </exec> </source> ``` 3. **设置Flume Channel**: - 通常使用内存通道`MemorySink`(`org.apache.flume.sink记忆channel.MemoryChannel`)作为临时存储,然后流向HDFS Sink。 4. **配置HDFS Sink**: - 创建一个`HDFS` Sink,指定HDFS目录以及文件命名策略。 ```xml <sink> <hdfs> <configuration> <property> <name>fs.default.name</name> <value>hdfs://namenode:port</value> </property> <property> <name>hadoop.security.authentication</name> <value>simple</value> <!-- 根据集群安全模式选择 --> </property> <!-- 其他HDFS配置如:fileType、append等 --> </configuration> <path>/user/flume/${sys:timestamp}</path> </hdfs> </sink> ``` 5. **连接Source、Channel和Sink**: - 将上述Source和Sink关联起来,配置它们之间的关系。 6. **启动Flume Agent**: - 启动包含以上配置的Flume Agent,数据开始从CSV文件流往HDFS。 ```bash bin/flume-ng agent --conf-file conf/flume.conf --name my-flume-agent --master master:9090 start ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值