提示
CAT 默认没有开启日志持久化,仅写入硬盘,这对中小型公司来说足够了,但如果需要持久化较大日志量,则可以开启HDFS持久化功能
本文作者:slankka
# CAT使用HDFS存储logview
# 配置说明
<hdfs id="logview" max-size="128M" server-uri="hdfs://dc1" base-dir="cat/logview"/>
1
server-uri是HDFS文件系统的URI,base-dir为cat/logview 实际上写入的路径为 hdfs://dc1/user/<cat>/cat/logview
注意请使用可以访问HDFS集群的Linux账户启动CAT Server,也就是keytab所对应的Linux账户。这里假设用户名是cat
# Kerberos
<properties>
<property name="hadoop.security.authentication" value="kerberos"/>
<property name="dfs.namenode.kerberos.principal" value="hdfs/YYY.XXX.COM"/>
<property name="dfs.cat.kerberos.principal" value="cat/xx.xx.xxx.xxx@YYY.XXX.COM"/>
<property name="dfs.cat.keytab.file" value="/path/to/keytab/cat.keytab_xx.xx.xxx.xxx"/>
<property name="java.security.krb5.realm" value="YYY.XXX.COM"/>
<property name="java.security.krb5.kdc" value="AA.BB.CC.DD"/>
</properties>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
注意:
name 中的cat 不需要替换,他是代码的固定配置名称。只需要改value的部分。
相关配置,可以查阅/etc/krb5.conf,或者询问集群运维。
# HDFS使用Nameservice:
注意当使用HDFS Nameservice时,例如server-uri="hdfs://dc1/"时,请将core-site.xml和hdfs-site.xml所在目录加入ClassPath,例如/etc/hadoop/conf/
export CLASSPATH=$CLASSPATH:/etc/hadoop/conf/
1
注意,对于tomcat,不要在start.sh内修改CLASSPATH,得按照catalina.sh中的注释要求,在同级目录下新建、修改setenv.sh文件
CAT 上传文件的Transaction为 System/UploadDump,可去CAT中查看是否成功。亦可以在HDFS中检查:
hadoop fs -ls hdfs://dc1/<cat account>/cat/logview
1