Flume NG之Agent部署和sink配置HDFS且吐槽6miu博客及客服态度

    xiaoxiao2021-03-26  18

    实在是想对csdn博客吐槽,一天到晚要么发布不了,发布成功的居然还时不时看不到文章内容(空白的),有时还打不开博客,问客服就说换浏览器。我真想和csdn客服说,你妹的,你知不知道我是码农啊,初步的问题诊断是会的,如果不是怀疑csdn博客服务端问题,我会找你。

    这篇文章是重复http://blog.csdn.net/fjssharpsword/article/details/60136224,因为这个时不时打开是空白,而摘要确有内容,有时又能正常打开。昨天下午5:20多分,和csdn客服说,然后妹纸居然下班了,不理会人了,这个客服态度经常是推卸责任,然后就是不理你,我也是醉了。实在是csdn博客坚持这么久,不想换一家。

    先重复发布吧,还好之前有保存原稿,现在重新发布:

    1、Flume     flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力。   flume的数据流由事件(Event)贯穿始终,事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息。Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中;Channel看作是一个缓冲区,它将保存事件直到Sink处理完该事件;Sink负责持久化日志或者把事件推向另一个Source。    flume的一些核心概念:    1)Agent:使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。    2)Client:生产数据,运行在一个独立的线程。    3)Source :从Client收集数据,传递给Channel。    4)Sink : 从Channel收集数据,运行在一个独立线程。    5)Channel  :连接 sources 和 sinks ,这个有点像一个队列。    6)Events : 可以是日志记录、 avro 对象等。

    下面的部署和配置参照:http://flume.apache.org/FlumeUserGuide.html 2、Flume Agent部署 1)下载并解压jdk-7u67-linux-x64.gz,到/home/flume/     #cd /tmp     #tar -xzvf jdk-7u67-linux-x64.gz     #cp -r /tmp/jdk1.7.0_67  /home/flume/         2)下载并解压apache-flume-1.7.0-bin.tar.gz,到/home/flume/     #tar -xzvf /tmp/apache-flume-1.7.0-bin.tar.gz  -C /home/flume/ 3) 修改flume-env.sh 配置文件,设置JAVA_HOME变量     #cd /home/flume/apache-flume-1.7.0-bin/conf     #cp flume-env.sh.template flume-env.sh     #vi flume-env.sh      添加export JAVA_HOME=/home/flume/jdk1.7.0_67          FLUME_CLASSPATH="/home/flume/apache-flume-1.7.0-bin" 3、配置flume-conf.properties文件     #cd /home/flume/apache-flume-1.7.0-bin/conf     #cp flume-conf.properties.template flume-conf.properties         1)查找FTP文件本地路径    #cat /etc/vsftpd/vsftpd.conf     找到user_config_dir=/etc/vsftpd/user_config_dir    #ls -l /etc/vsftpd/user_config_dir      查看下面具体ftp用户的配置文件,如用户名是user;    #cat /etc/vsftpd/user_config_dir/user      找到local_root=/data/user,即为ftp本地文件目录;     将/data/user配置到source。    2)Hadoop环境配置      引入hadoop-common-2.7.3.2.5.3.0-37.jar、commons-configuration-1.6.jar、          hadoop-auth-2.7.3.2.5.3.0-37.jar、hadoop-hdfs-2.7.3.2.5.3.0-37.jar、          htrace-core-3.1.0-incubating.jar、commons-io-2.4.jar到apache-flume-1.7.0-bin/lib下      引入core-site.xml和hdfs-site.xml到apache-flume-1.7.0-bin/conf下;      namenode要在/etc/hosts上配置对应的IP地址;      spoolDir的hdfs上目录要读写权限:      #hadoop fs -chown -R mapred:hadoop /tmp/flume      #hadoop fs -chmod -R 777 /tmp/flume             3)#vi flume-conf.properties 配置如下

         #agent agent.sources=se agent.sinks=sk agent.channels=ch #set source se agent.sources.se.type=spooldir agent.sources.se.spoolDir=/data/kaitong/gz/20170303/ agent.sources.se.channels=ch agent.sources.se.fileHeader = false #set sink sk agent.sinks.sk.type=hdfs agent.sinks.sk.hdfs.path=hdfs://namenode49:8020/tmp/flume/ agent.sinks.sk.channel=ch agent.sinks.sk.hdfs.filePrefix = flume- agent.sinks.sk.hdfs.round = true agent.sinks.sk.hdfs.roundValue = 10 agent.sinks.sk.hdfs.roundUnit = minute agent.sinks.sk.hdfs.useLocalTimeStamp = true #set channel ch # Use a channel which buffers events in memory agent.channels.ch.type = memory agent.channels.ch.capacity = 1000 agent.channels.ch.transactionCapacity = 100 4、启动Flume Agent并测试    #cd /home/flume/apache-flume-1.7.0-bin/    #bin/flume-ng agent -n agent -c conf -f conf/flume-conf.properties  -Dflume.root.logger=INFO,console 5、后续工作:    1)如果集群通过kerberos认证的话,要配置kerberos认证;      agent.sinks.sk.hdfs.kerberosPrincipal = etl/host      agent.sinks.sk.hdfs.kerberosKeytab = /tmp/etl.app.keytab    2)Flume支持引入第三方jar包 ,自定义拦截器,可将Flume采集到的数据进行序列化、结构化等预处理,最后每条数据生成一条Event数据返回。

    转载请注明原文地址: https://ju.6miu.com/read-600081.html

    最新回复(0)