Hadoop日志分析工具——White Elephant
White Elephant 是一个Hadoop日志收集器和展示器,它提供了用户角度的Hadoop集群可视化。White Elephant 是全球最大的职业社交网站Linkedin开发的一套分析Hadoop作业日志的系统,完全开源。代码在GitHub上的链接https://github.com/linkedin/white-elephant。
不过White Elephant当前只支持hadoop1.0系列的jobhistory解析,暂时不支持hadoop2.0系列的版本。


快速入门
你可以在GitHub上的 White Elephant项目check out代码,或者下载最新的snapshot版本。
可以使用一些测试数据尝试这个服务:
cd server
ant
./startup.sh
然后访问 http://localhost:3000。它可能需要几分钟的时间加载测试数据。
服务端
服务端是一个JRuby的web应用,在生产环境中它可以部署到tomcat中,然后可以直接从Hadoop中读取收集到的数据。数据存储在 HyperSQL提供的 in-memory 类型的数据库中,图表由 Rickshaw提供。
开始使用
开始使用这个服务之前,首先需要设置环境:
cd server
ant
默认会做以下的事情:
- 安装JRuby 到 .rbenv下的本地目录
- 安装RubyRuby gems到上述目录
- 下载JAR包
- 在 data/usage下创建测试数据
这时候你可以通过下面的命令启动服务:
./startup.sh
你可以访问 http://localhost:3000,它可能需要几分钟的时间加载测试数据。
这里使用trinidad在开发环境中运行JRuby 网页应用。由于这是在开发模式,应用假设本地数据(在config.yml中指定的路径)可以使用。
配置
服务端的配置在config.yml中指定,你可以在sample_config.yml中查看示例。
当通过./startup.sh 运行在开发模式中时,sample_config.yml会被使用,并且它和 local目录下的配置一起生效。这里唯一的可配置参数是file_pattern,它指定了从本地加载数据的目录。
当打包成WAR并运行在生产模式下,使用hadoop下指定的配置,假设收集到的数据可用,下述配置必须指定:
file_pattern: 从Hadoop加载使用文件的全局的文件模式。
libs: 包含Hadoop JAR文件的目录 (加到classpath)。
conf_dir: 包含Hadoop配置的目录(加到 classpath)。
principal: 用户名用于访问安全的Hadop。
keytab: keytab 文件的路径,用于访问安全的Hadoop 。
White Elephant并不基于某个特定版本的Hadoop,所以JARs并不会打包到WAR包中。因此配置中必须指定到Hadoop JARs的路径。
部署
编译一个可以部署到tomcat的WAR文件:
ant war -Dconfig.path=<path-to-config>
你指定的配置文件config.yml将一起打包到WAR文件中。
Hadoop日志上传
hadoop/scripts/statsupload.pl脚本可以用于上传Hadoop日志文件到HDFS,主要就可以被处理了。
Hadoop 作业
一共两个Hadoop作业,都被一个作业执行器管理,并追踪需要的工作。
第一个作业是Hadoop日志解析器,它从存储在Hadoop中的文件读日志,解析出相应的信息,并以Avro的格式写出去。
第二个作业读取Avro格式的日志数据,并以小时为单位聚合,数据以Avro格式写出去,它本质上建立一共数据立方体,可以很容易的被wen应用加载到DB和查询。
配置
示例配置存储在 hadoop/config/jobs:
base.properties: 包括大多配置。
white-elephant-full-usage.job: 处理所有日志时被使用的作业文件。
white-elephant-incremental-usage.job: 处理增量日志时需要的作业文件。
base.properties文件包括White Elephant指定的配置,也包括Hadoop配置。所有Hadoop配置参数以hadoop-conf开头。两个job的配置项相同,当然其值需要根据作业配置。
Hadoop 日志
在base.properties中存在一个参数log.root。这是解析程序查找Hadoop日志的根目录。解析作业假设日志存储在Hadoop每天的目录下,目录格式如下:
<logs.root>/<cluster-name>/daily/<yyyy>/<MMdd>
例如,2013年1月23日的目录格式为:
/data/hadoop/logs/prod/daily/2013/0123
打包
创建一个包含所有文件的zip包可以通过下述命令生成:
ant zip -Djob.config.dir=<path-to-job-config-dir>
job.config.dir应该包含.properties和.job文件。
如果你使用 Azkaban作为你的作业调度器,则zip文件可以工作到base.propreties中指定的配置的时间。
运行
解压zip文件后可以运行run.sh脚本,这需要配置两个环境变量:
- HADOOP_CONF_DIR: Hadoop configuration directory
- HADOOP_LIB_DIR: Hadoop JARs directory
运行全量job:
./run.sh white-elephant-full-usage.job
运行增量job:
./run.sh white-elephant-incremental-usage.job
增量作业只处理增量数据,全量作业处理所有数据。
Hadoop日志分析工具——White Elephant的更多相关文章
- 【转】gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...
- GC之七--gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...
- 日志分析工具ELK配置详解
日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...
- GoAccess日志分析工具使用文档
----Sevck 2016/3/4 17:24:13 #1软件说明: GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不 ...
- 可视化日志分析工具Gltail的安装与使用
可视化日志分析工具Gltail的安装与使用 GlTail.rb 是一款带有浓郁的 Geek 风格的可视化日志分析工具,它采用 Ruby 技术构建,并利用 OpenGL 图形技术进行渲染,呈现 ...
- 强大的日志分析工具 -- NSLogger
转:http://www.cnblogs.com/yingkong1987/p/3329945.html 强大的日志分析工具 -- NSLogger 源码:https://github.com/fpi ...
- Log Parser 微软强大的日志分析工具
Log Parser(微软网站下载)是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件.XML 文件.CSV(逗号分隔符)文件,以及操作系统的事件日志.注册表.文件系统.A ...
- Mysql 配置慢查询日志(SlowQueryLog)以及使用日志分析工具
[ 查看系统关于慢查询的设置 ] mysql> show variables like '%slow%'; +---------------------------+-------------- ...
- 日志分析工具-ApexSQL介绍
原文:日志分析工具-ApexSQL介绍 使用场景:业务数据异常变化,通过代码分析不出来的时候,迫不得已需要通过日志来分析 下载地址:http://www.apexsql.com/Download.as ...
随机推荐
- HDUOJ -----1686
Oulipo Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- DP较为完整的知识
数位DP 这类题,才刚刚接触,记得去年网络赛,就有道这样的题,我完全不会, 对于这类题基本方法是,是利用数的位数来构造转移方程. 下面给出两篇论文的链接: <数位计数问题解法研究> < ...
- 入门Nginx
一.正向代理和反向代理 正向代理举例:翻越万里长城去游览墙外的景色 反向代理举例:负载均衡 正向代理和反向代理涉及三个主体: 请求方 代理 被请求方 正向代理中,代理跟请求方是一家子,请求方说要啥,代 ...
- 快速掌握activity的生命周期
activity的生命周期不管是在面试还是在工作中我们都会经常遇到,这当然也是非常基础的,基础也很重要哦,学会activity的生命周期对我们以后开发更健壮的程序会有很大帮助.下面来看一下Activi ...
- Linux命令-定时任务命令:crontab
linux定时任务命令相当于windows=>附件=>系统工具=>计划任务程序. 要想让linux定时任务生效,首先应该先启动crond服务,并且给这个服务设置开机自自动. 默认li ...
- .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序
.NET 跨平台RPC框架DotNettyRPC DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...
- springboot + logback 简介
转Spring Boot干货系列:(七)默认日志框架配置 分类: Spring Boot(139) 目录(?)[+] 后端编程嘟 2017-04-05 21:53 前言 今天来介绍下sprin ...
- 常用IP核
前言 记录自己用到的模块,随时补充. 主要分类: 一.常用模块 1-FIFO FIFO分为两种,一是输入输出时钟相同(Common clock)的 fifo ;二是输入输出时钟不相同(Independ ...
- Android开发6——布局中的wrap_content和fill_parent以及match_parent
一.言简意赅 fill_parent 是让控件宽或者高占全屏 wrap_content是让控件的高或宽仅仅把控件里的内容包裹住而不是全屏 二.分别来看 1 fill_parent 设置一个构件的布局 ...
- linux ssh_config和sshd_config配置文件
在远程管理linux系统基本上都要使用到ssh,原因很简单:telnet.FTP等传输方式是以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险.SSH(Secure Shell)目前较可 ...