目录
一、准备工作
1、Hadoop环境安装
2、Flume安装部署
二、采集数据到HDFS
1、配置任务文件
2、启动传输
3、查看是否同步成功
三、常见问题
1、运行flume-ng agent时报错com.google.common.base.Preconditions.checkArgument
2、ERR: File name has been re-used with different files
一、准备工作
1、Hadoop环境安装
【大数据入门核心技术-Hadoop】(五)Hadoop3.2.1非高可用集群搭建
【大数据入门核心技术-Hadoop】(六)Hadoop3.2.1高可用集群搭建
2、Flume安装部署
【大数据入门核心技术-Flume】(二)Flume安装部署
二、采集数据到HDFS
1、配置任务文件
cd ~
创建flume-hdfs.conf
vi flume-hdfs.conf
a1.sources=r1
a1.sinks=k1
a1.channels=c1
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/root/logs/
a1.sources.r1.fileHeader=true
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=hdfs://mycluster:8020/tmp/flume
a1.sinks.k1.hdfs.rollsize=1048760
a1.sinks.k1.hdfs.rollCount=0
a1.sinks.k1.hdfs.rollInterval=900
a1.sinks.k1.hdfs.useLocalTimeStamp=true
a1.channels.c1.type=file
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2、启动传输
使用 flume-ng agent 命令加载 flume-hdfs.conf 配置信息,启动 flume 传输数据。
3、查看是否同步成功
三、常见问题
1、运行flume-ng agent时报错com.google.common.base.Preconditions.checkArgument
问题原因:
guave版本不对, 解决方法, 删除低版本(hadoop或者hive), 复制高版本, 如下
解决办法:
ll $FLUME_HOME/lib/guava*; ll $HADOOP_HOME/share/hadoop/common/lib/guava*
-rw-r--r--. 1 root root 1648200 6月 27 2016 /usr/local/flume-1.8.0/lib/guava-11.0.2.jar
-rw-r--r--. 1 testuser supergroup 2747878 9月 10 2019 /usr/local/hadoop-3.2.1/share/hadoop/common/lib/guava-27.0-jre.jar
rm -f $FLUME_HOME/lib/guava-11.0.2.jar
cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $FLUME_HOME/lib/
2、ERR: File name has been re-used with different files
问题原因:
旧配置flume日志下已经存在*.COMPLETED文件
解决方法:
删除已经存在*.COMPLETED文件后,重启 flume-ng agent 命令即可