package kpilog;
/* 数据类型:
* 110.6.179.88 - - [04/Jan/2012:00:00:02 +0800] "GET /forum.php?mod=attachment&aid=NTczNzU3fDFjNDdjZTgzfDEzMjI4NzgwMDV8MTMzOTc4MDB8MTEwMTcxMA%3D%3D&mobile=no HTTP/1.1" 200 172 "http://www.itpub.net/forum.php?mod=attachment&aid=NTczNzU3fDFjNDdjZTgzfDEzMjI4NzgwMDV8MTMzOTc4MDB8MTEwMTcxMA%3D%3D&mobile=yes" "Mozilla/5.0 (Linux; U; Android 2.2; zh-cn; ZTE-U V880 Build/FRF91) UC AppleWebKit/530+ (KHTML, like Gecko) Mobile Safari/530"
* */
public class KPI {
//默认为合法数据
private boolean is_validate=true;
//用户ipaddr
private String remote_addr;
//用户请求方式
private String request_time;
//客户端请求方式
private String request_method;
//请求页面
private String request_page;
//客户端请求协议版本
private String request_http;
//请求返回状态
private String request_status;
//客户端发送服务端的字节数
private String send_bytes;
//请求来源
private String request_source;
//用户信息
private String user_agent;
public boolean isIs_validate() {
return is_validate;
}
public void setIs_validate(boolean is_validate) {
this.is_validate = is_validate;
}
public String getRemote_addr() {
return remote_addr;
}
public void setRemote_addr(String remote_addr) {
this.remote_addr = remote_addr;
}
public String getRequest_time() {
return request_time;
}
public void setRequest_time(String request_time) {
this.request_time = request_time;
}
public String getRequest_method() {
return request_method;
}
public void setRequest_method(String request_method) {
this.request_method = request_method;
}
public String getRequest_page() {
return request_page;
}
public void setRequest_page(String request_page) {
this.request_page = request_page;
}
public String getRequest_http() {
return request_http;
}
public void setRequest_http(String request_http) {
this.request_http = request_http;
}
public String getRequest_status() {
return request_status;
}
public void setRequest_status(String request_status) {
this.request_status = request_status;
}
public String getSend_bytes() {
return send_bytes;
}
public void setSend_bytes(String send_bytes) {
this.send_bytes = send_bytes;
}
public String getRequest_source() {
return request_source;
}
public void setRequest_source(String request_source) {
this.request_source = request_source;
}
public String getUser_agent() {
return user_agent;
}
public void setUser_agent(String user_agent) {
this.user_agent = user_agent;
}
@Override
public String toString() {
return "KPI [remote_addr=" + remote_addr + ", request_time=" + request_time + ", request_method="
+ request_method + ", request_page=" + request_page + ", request_http=" + request_http
+ ", request_status=" + request_status + ", send_bytes=" + send_bytes + ", request_source="
+ request_source + ", user_agent=" + user_agent + "]";
}
public static KPI parse(String line) {
KPI kpi = new KPI();
String[] arr = line.split(" ");
if(arr.length == 23) {
kpi.setRemote_addr(arr[0]);
// arr[3]: [04/Jan/2012:00:00:02
kpi.setRequest_time(arr[3].substring(1));
kpi.setRequest_method(arr[5].replace("\"", ""));//kpi.setRequest_method(arr[5].substring(1));
///forum.php?mod=attachment&aid=NTczNzU3fDFjNDdjZTgzfDEzMjI4NzgwMDV8MTMzOTc4MDB8MTEwMTcxMA%3D%3D&mobile=no HTTP/1.1" 200 172 "http://www.itpub.net/forum.php?mod=attachment&aid=NTczNzU3fDFjNDdjZTgzfDEzMjI4NzgwMDV8MTMzOTc4MDB8MTEwMTcxMA%3D%3D&mobile=yes"
kpi.setRequest_page(arr[6]);
kpi.setRequest_http(arr[7].replace("\"", ""));// kpi.setRequest_http(arr[7].substring(0,arr[7].length()-1));
kpi.setRequest_status(arr[8]);
kpi.setSend_bytes(arr[9]);
kpi.setRequest_source(arr[10]);
kpi.setUser_agent(arr[11]);
if(!kpi.getRequest_status().equals("") &&
(Integer.parseInt(kpi.getRequest_status())>400)) {
kpi.setIs_validate(false);//标记为不合法数据
}
}else {
kpi.setIs_validate(false);
}
return kpi;
}
}
Hadoop入门之MapReduce实例二
猜你喜欢
转载自blog.csdn.net/vpqtxzmzezeqjj9977/article/details/81095355
今日推荐
周排行