正如同微博中的#标记一样,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