第四天
理论部分:
老师详细介绍了Flume系统,
- 它是一个分布式的开源的日志系统,用于收集数据,同时也可以对数据进行简单的处理;
- Flume只适用于系统日志的采集,并不合适和大量数据的实时采集;
- 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配置成功