背景
- 需要收集公司的app/web端埋点日志,需要搭建一套日志收集系统
- 采用 apache-flume-1.9.0版本;
- 服务器是AWS的裸机服务;
搭建步骤
- 因为服务器是裸机(即不包含任何Hadoop类的环境或者组件)
- 具体过程如下:
# 解压flume-1.9.0到指定路径
wget http://ftp.kddilabs.jp/infosystems/apache/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz
tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/server/
cd /opt/server/
# 修改flume名称
mv apache-flume-1.9.0-bin/ flume-1.9.0
# cd 到flume家目录
cd flume-1.9.0
# 创建data文件夹,用于存放flume元数据和checkpoint数据
mkdir data
mkdir logs
mkdir data/channel_data
mkdir data/checkpoint_data
# 以下操作为裸机状态下必选项
# 下载apache-hadoop-3.1.3
wget http://ftp.kddilabs.jp/infosystems/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
tar -zxvf hadoop-3.1.3.tar.gz
# 将hadoop-3.1.3/share/hadoop文件夹下common下jar复制到${flume-home}/lib
cd hadoop-3.1.3/share/hadoop
cp hadoop-*.jar /opt/server/flume-1.9.0/lib/
# 将hadoop-3.1.3/share/hadoop文件夹下common/lib下jar复制到${flume-home}/lib
cp lib/*.jar /opt/server/flume-1.9.0/lib/
# 将hadoop s3的jar包复制,裸机服务器必选项
cd hadoop-3.1.3/share/hadoop/tools/lib
cp hadoop-aws-3.1.3.jar /opt/server/flume-1.9.0/lib/
cp aws-java-sdk-bundle-1.11.271.jar /opt/server/flume-1.9.0/lib/
cp hadoop-aws-3.1.3.jar /opt/server/flume-1.9.0/lib/
# 到flume下lib包,删除guava-*.jar版本较低的jar
cd /opt/server/flume-1.9.0/lib/
rm -rf guava-11.0.2.jar
注意事项
- 因为部署flume的环境是裸机环境,需要将hadoop的lib/*.jar复制到flume的lib里面,要不然会报错;
- flume的运行需要依赖hadoop环境,如果服务器上有hadoop环境,则不需要进行hadoop下jar包的复制步骤;
- 在测试环境测试的时候,因为有hadoop环境,并没有报错,但是到了线上裸机环境就不行了,原来flume运行的时候需要hadoop的依赖,如果有hadoop环境,会读取hadoop的classpath;
- 记录一下这个裸机环境的flume搭建步骤---小李
flume的监控
- 使用flume需要考虑到对flume的监控,flume自带的监控有http和ganglia;
- ganglia的监控 参考博客使用Ganglia监控Flume
- 如果使用open-falcon方式监控,需要采用http方式: