实训第四天

第四天

理论部分:

老师详细介绍了Flume系统,

  1. 它是一个分布式的开源的日志系统,用于收集数据,同时也可以对数据进行简单的处理;
  2. Flume只适用于系统日志的采集,并不合适和大量数据的实时采集;
  3. Flume架构图如下:

图 1Flume架构图

为了理解架构图,老师简单介绍了事物的四个性质:原子性(A),一致性,隔离性(I),持久性(D),完成事务后,将会一直保持下去。

 

一.Source的基本概念:Source负责接收events或通过特殊机制产生events,并将events批量放到一个或多个Channels。有驱动和轮询2种类型的Source。

a.驱动型source:是外部主动发送数据给Flume,驱动Flume接受数据。

b.轮询source:是Flume周期性主动去获取数据。

二.Channel位于Source和Sink之间, Channel的作用类似队列,用于临时缓存进来的events,当Sink成功地将events发送到下一跳的channel或最终目的,events从Channel移除。

  • Sink负责将events传输到下一跳或最终目的,成功完成后将events从channel移除。
  • 整个过程Source至channel支持事务,channel到sink支持事务。及事件采集或发送失

败,会重新采集或发送。

 

实验部分:

根据配置规划工具生成文件

图 2生成文件

打开WinSCP将生成文件上传到服务器:

图 3上传文件到服务器上

安装Flume客户端步骤:

首先解压Flume客户端使用命令,将文件复制到指定文件目录下cp/FusionInsight_Client/FusionInsight_V100R002C60SPC200_Flume_Client.tar /home/user01/

tar -xvf FusionInsight_V100R002C60SPC200_Flume_Client.tar

解压后得到两个文件:

FusionInsight_V100R002C60SPC200_Flume_ClientConfig.tar  和FusionInsight_V100R002C60SPC200_Flume_ClientConfig.tar.sha256

使用tar命令继续解压FusionInsight_V100R002C60SPC200_Flume_ClientConfig.tar,得到目录FusionInsight_V100R002C60SPC200_Flume_ClientConfig,如下图所示:

图 4目录FusionInsight_V100R002C60SPC200_Flume_ClientConfig

拷贝目录FusionInsight_V100R002C60SPC200_Flume_ClientConfig下的Flume,到/home/user01下,然后解压文件/home/user01/Flume/FusionInsight-Flume-1.6.0.tar.gz,

然后用命令ls查看当前路径下有哪些文件及文件夹,得到内容如下图所示:

图 5解压后产生的文件

获取krb5.conf和userkeytab文件,老师将两个文件的压缩包上传至tmp目录下,解压即可,使用命令: tar -xvf stu01_1542267344923_keytab.tar

图 6获取krb5.conf和user.keytab文件

 

 

 

 

在解压的flumetest目录下新建一个文件,并命名为jaas.conf,用命令touch jaas.conf,lvim jaas.conf,内容如下图所示:

图 7配置文件内容

接下来修改flume_env.sh文件里面的内容,内容如下:

-Djava.security.krb5.conf=/home/user01/flumetest/krb5.conf

-Djava.security.auth.login.config=/home/user01/flumetest/jaas.conf

-Dzookeeper.server.principal=zookeeper/hadoop.hadoop.com

-Dzookeeper.request.timeout=120000

JAVA_OPTS="-Xms2G -Xmx4G -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection  -verbose:gc -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=15 -XX:GCLogFileSize=1M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:${FLUME_GC_LOG_DIR}/Flume-Client-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Djava.security.krb5.conf=/home/user01/flumetest/krb5.conf -Djava.security.auth.login.config=/home/user01/flumetest/jaas.conf -Dzookeeper.server.principal=zookeeper/hadoop.hadoop.com -Dzookeeper.request.timeout=120000"

在已经安装好的HDFS客户端中,拷贝hdfs_client/HDFS/hadoop/etc/hadoop/目录下的hdfs-site.xml 和core-site.xml 到/home/user01/flumetest下;HBase客户端hbase_client/HBase/hbase/conf 下的hbase-site.xml 文件到/home/user01/flumetest下。

命令格式为‘cp ‘要复制的文件所在的目录’  ‘要移动到哪个文件的路径’’

 

安装客户端,使用命令 ./install.sh -d /home/user01/flume1 -f 192.168.20.102 -c ./properties.properties ,命令参数使用方法如下:

图 8参数使用方法

 

查看/home/user01/spooldir,出现“.flumespool”,表示配置成功:

图 9配置成功

猜你喜欢

转载自blog.csdn.net/weixin_41503009/article/details/84133712