Java代码统计网站中不同省份用户的访问数_java

一、需求

针对log日志中给定的信息,统计网站中不同省份用户的访问数

二、编程代码

package org.apache.hadoop.studyhdfs.mapreduce;
import java.io.IOException;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Mapper.Context;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import org.jboss.netty.util.internal.StringUtil;
public class ProvinceCountMapReduce extends Configured implements Tool {
//1.map
/*
* <KEYIN,VALUEIN,KEYOUT,VALUEOUT>
*/
public static class WordCountMapper extends Mapper<LongWritable,Text,IntWritable,IntWritable>{
private IntWritable mapOutputKey =new IntWritable();
private IntWritable mapOutputValue =new IntWritable(1);
@Override
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
//get lineValue
String lineValue =value.toString();
//split
String[] strs =lineValue.split("\t");
//line blank
String url=strs[1];
String provinceIdValue =strs[23];
//guolv
if(strs.length < 30 || StringUtils.isBlank(provinceIdValue) || StringUtils.isBlank(url)){
return;
}
int provinceId =Integer.MAX_VALUE;
try {
provinceId=Integer.valueOf(provinceIdValue);
} catch (Exception e) {
return;
}
if(provinceId == Integer.MAX_VALUE){
return;
}
mapOutputKey.set(provinceId);
context.write(mapOutputKey, mapOutputValue);
}
}
//2.reduce
public static class WordCountReduce extends Reducer<IntWritable,IntWritable,IntWritable,IntWritable>{
private IntWritable outputValue =new IntWritable();
@Override
public void reduce(IntWritable key, Iterable<IntWritable> values,Context context)
throws IOException, InterruptedException {
//to do
int sum = 0;
for(IntWritable value:values){
sum +=value.get();
}
outputValue.set(sum);
context.write(key, outputValue);
}
}
public int run(String[] args) throws Exception{
//1.get Configuration
Configuration conf =super.getConf();
//2.create job
Job job =Job.getInstance(conf, this.getClass().getSimpleName());
job.setJarByClass(ProvinceCountMapReduce.class);
//3.set job
//3.1 set input
Path inputPath =new Path(args[0]);
FileInputFormat.addInputPath(job, inputPath);
//3.2 set mapper
job.setMapperClass(WordCountMapper.class);
job.setMapOutputKeyClass(IntWritable.class);
job.setMapOutputValueClass(IntWritable.class);
//3.3 set reduce
job.setReducerClass(WordCountReduce.class);
job.setOutputKeyClass(IntWritable.class);
job.setOutputValueClass(IntWritable.class);
//3.4 set input
Path outputPath =new Path(args[1]);
FileOutputFormat.setOutputPath(job, outputPath);
//4.submmit
boolean isSuccess =job.waitForCompletion(true);
return isSuccess?0:1;
}
public static void main(String[] args) throws Exception {
args =new String[]{
"hdfs://Hadoop-senior02.beifeng.com:8020/input/2015082818",
"hdfs://Hadoop-senior02.beifeng.com:8020/output15/"
};
Configuration conf =new Configuration();
conf.set("mapreduce.map.output.compress", "true");
int status=ToolRunner.run(conf, new ProvinceCountMapReduce() , args);
System.exit(status);
}
} 

3、运行结果

1)运行代码:bin/hdfs dfs -text /output15/par*

2)运行结果:

1 3527
2 1672
3 511
4 325
5 776
6 661
7 95
8 80
9 183
10 93
11 135
12 289
13 264
14 374
15 163
16 419
17 306
18 272
19 226
20 2861
21 124
22 38
23 96
24 100
25 20
26 157
27 49
28 21
29 85
30 42
32 173

以上所述是小编给大家介绍的Java代码统计网站中不同省份用户的访问数的相关介绍,希望对大家有所帮助,在此小编也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索统计网站
用户访问数
nginx 统计访问数、nginx 统计每秒访问数、统计搜索引擎访问数、java统计在线用户、java统计用户在线时间,以便于您获取更多的相关知识。

时间: 2024-08-18 07:25:52

Java代码统计网站中不同省份用户的访问数_java的相关文章

如何从统计数据中分析出用户体验度好坏

每当说起用户体验,确实很让站长们伤脑筋,因为这个玩意既摸不清.看不到.道不明的,当你认为网站的用户体验应该很好时,上天却给你开个玩笑;当你觉得自己更新的内容,用户也应该喜欢时,上天再次给你开个玩笑.而就用户体验的好坏而言,其实只要你抓住关键点也能分析得知.每个网站都应该装有统计工具吧,而这个工具就是让咱们掌握网站详细情况的一大利器,包括分析出网站的用户体验度的好坏.那么针对这个工具,咱们应该从哪些方面进行分析用户体验度的好坏呢?今天笔者来谈谈这个问题. 一.网站IP与PV值的比例 一个网站的用户

关于java代码调用页面中javascript代码

问题描述 关于java代码调用页面中javascript代码,如何调用,这方面的参考资料,各位能否推荐下?... 解决方案 解决方案二:为什么要调用页面中的那些代码?如果你把层次分的很清楚,就不存在这些问题.解决方案三:有的时候,实现一个功能,javascript更方便,java代码只要调用一下就可以,解决方案四:importnetscape.javascript.JSObject;JSObjectwindow=null;window=JSObject.getWindow(this);windo

图片-请问:怎么用java代码实现word中的超链接?如图中的形式,当点击目录时,出现目录的信息

问题描述 请问:怎么用java代码实现word中的超链接?如图中的形式,当点击目录时,出现目录的信息 解决方案 应该就是点一个东西,然后把翻到第多少页. 解决方案二: 找插件实现

网站中那些令用户抓狂的细节

  生活和现实总有许多无奈,当我们访问互联网的时候,这些负面情绪往往很容易被放大.上到各种负面新闻,下到浏览器卡顿,我们很容易陷入抓狂的状态无法自拔.所以,对于网页设计师而言,应当尽量避免出现那些让用户纠结抓狂的细节.接下来我们总结了10项最令用户抓狂的细节,以及相应的解决方案. 1.无法提交的表单 好象在世界范围内,这个问题是被反映最多也是最令人无法忍受的问题.用户在搜索框内输入内容,眨眼之间没了;坛友在论坛中激扬文字,写下1000字的精彩吐槽,暗爽之下,提交内容,结果突然间页面一片空白,一切

浅谈如何从统计数据中分析出用户忠诚度

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 统计数据分析一直是站长特别头疼的工作,毕竟谁也不喜欢对着一堆冷冰冰的数字一直看,但是不对统计数据进行仔细的分析就不知道网站的详细情况.比如每天的老访客有多少,网站是一次性访客多还是老访客多等等关于网站情况的数据.所以,即使是冷冰冰的数据,站长也做好面对的准备.当然通过分析统计数据还能找到一个网站最看重的因素,那就是用户体验度.那么对于用户体验

单点登陆如何使各个网站中的相同用户同时过期

问题描述 单点登陆如何使各个系统中的相同用户同时过期现在在跨域的三个网站之间用ticket方式做单点登录单点登录服务器如何感知登陆用户是否活跃,某用户在一个网站过期,如何通知单点登录服务器ticket和其他网站通知过期?请大家指点 解决方案 解决方案二:所谓单点登陆,应该有一个独立的登陆服务器,其他服务器都去这个服务器上验证是否已经登陆,而不是将用户名写入各自的session你现在的方式是,在一个服务器上登陆之后,跳转到其他服务器的时候会再模拟登陆一次,这其实不是"单点登陆"解决方案三

java统计字符串中重复字符出现次数的方法_java

本文实例讲述了java统计字符串中重复字符出现次数的方法.分享给大家供大家参考,具体如下: package com; import org.junit.Test; /** * 统计一个字符串的重复字符出现的次数 * * @author zdw * */ public class StringTest { @Test public void test() { String s = "fdfaacceeeeeeeeeeeegghikkkkkoooo"; count(s); } public

一段java代码在myeclipse中输出的是乱码,求解决办法

问题描述 以下JAVA代码运行后,会输出乱码.然而,将http://www.1soccer.com/oddsindex/index/换成http://www.310win.com/info/match/Zucai.aspx?typeID=1&issueNum=2015027,输出却正常.以上网页的代码都是UTF-8的.求解决办法.谢谢.importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamR

java识别一篇文章中某单词出现个数的方法_java

本文实例讲述了java识别一篇文章中某单词出现个数的方法.分享给大家供大家参考.具体如下: 1. java代码: import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.StringTokenizer; import java.util.regex.Matche