Hadoop入门之MapReduce实例二

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;
    }
}
发布了51 篇原创文章 · 获赞 44 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/vpqtxzmzezeqjj9977/article/details/81095355