正如同微博中的#标记一样,twitter中有很多#hashtag,那么出现次数越多的hashtag的内容自然也正是人们大量讨论的话题了。

而所需处理的twitter数据庞大,并且不断高速增加,自然不能以一般的方法进行分析计算。因为考虑采用hadoop。


首先需应用mapreduce分解该计算方法使得能用大量node同时独立计算。twitter采用Cassandra存储数据,格式类似hashtable,为“key-value”。

由于每条推特和每条微博一样,限定字数140。因此可以设置每条推特都是单独的一行string。


找到top trend热门的hashtag的步骤即:

1.处理输入的tweets entry,找出每条推特里的#hashtag

2.数hashtag的数量

3.sort结果找出数量最多的hashtag


Mapper:

将每条输入string中得hashtag找出来。

@Override
public void map(LongWritable key, Text value, Context context) throws IOException, 
   InterruptedException {
        String line = value.toString();
        StringTokenizer tokenizer = new StringTokenizer(line);
        while (tokenizer.hasMoreTokens()) {
         String token = tokenizer.nextToken();
       if(token.startsW