在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

伪分布模式hadoop如何运行java源程序

179次阅读
没有评论

共计 3814 个字符,预计需要花费 10 分钟才能阅读完成。

伪分布模式 hadoop 如何运行 java 源程序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

写好源代码之后,首先要编译:javac -classpath /usr/local/hadoop/hadoop-core-1.2.1.jar:/usr/local/hadoop/lib/commons-cli-1.2.jar count.java -d org 在 org 目录下生成三个 class 文件:count.class count\ Map.class count\ Reduce.class 之后将三个 class 文件打包:jar -cvf count.jar -C org/ . 之后在 hadoop 根目录下生成 count.jar 文件 创建分布式文件夹,并把要分析的数据放入之中:bin/hadoop fs -mkdir input bin/hadoop fs –put ~/Downloads/Gowalla_totalCheckins.txt input(~/Downloads/Gowalla_totalCheckins.txt 为我文件所在位置)通过 localhost:50070 可以查看:可以看到 txt 中的数据已经考到了 input 下。接下来运行程序:bin/hadoop jar count.jar count input output 运行完之后会发现:生成一个 output 文件夹,其下有三个文件,输出的信息保存在 part-r-00000 中 文件内容: 

196514 2020-07-24T13:45:06Z 53.3648119 -2.2723465833 145064 196514 2020-07-24T13:44:58Z 53.360511233 -2.276369017 1275991 

196514 2020-07-24T13:44:46Z 53.3653895945 -2.2754087046 376497 196514 2020-07-24T13:44:38Z 53.3663709833 -2.2700764333 98503 

196514 2020-07-24T13:44:26Z 53.3674087524 -2.2783813477 1043431 

196514 2020-07-24T13:44:08Z 53.3675663377 -2.278631763 881734 

196514 2020-07-24T13:43:18Z 53.3679640626 -2.2792943689 207763 196514 2020-07-24T13:41:10Z 53.364905 -2.270824 1042822 

其中第一列为用户 id,第二列为登录时间,第三列是用户的纬度,第四列我为用户的经度,第五列为用户的地址 id 本次程序是分析用户的登录时间,并分时间段进行统计。 

源代码:

!-- lang: java -- 
import java.io.IOException; 
import java.util.*; 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.Path; 
import org.apache.hadoop.io.IntWritable; 
import org.apache.hadoop.io.Text; 
import org.apache.hadoop.mapreduce.Job; 
import org.apache.hadoop.mapreduce.Mapper; 
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.GenericOptionsParser; 
public class count { 
public static class Map extends Mapper Object, Text, IntWritable, IntWritable  { 
 //  实现 map 函数  
  public void map(Object key, Text value, Context context)throws IOException, InterruptedException { 
 String line = value.toString(); 
  int k; 
 StringTokenizer itr = new StringTokenizer(line); 
 int i = 0; 
 int hour = 0,minute = 0,second = 0; 
    while (itr.hasMoreTokens()) { 
 String token = itr.nextToken(); 
  i++; 
 if(i == 2){ 
 int indexOfT = token.indexOf( T  
 int indexOfZ = token.indexOf(Z ,indexOfT + 1); 
   String substr = token.substring(indexOfT + 1,indexOfZ); 
 int blank1 = substr.indexOf( :  
 int blank2 = substr.indexOf(: ,blank1 + 1); 
 hour = Integer.parseInt(substr.substring(0,blank1),10); 
 minute = Integer.parseInt(substr.substring(blank1 + 1,blank2),10); 
 second = Integer.parseInt(substr.substring(blank2 + 1),10); 
 } 
    } 
   k = (hour * 60 * 60 + minute * 60 + second) / (3600 * 4) ; 
 context.write(new IntWritable( k ), new IntWritable(1)); 
  } 
} 
public static class Reduce extends Reducer  IntWritable, IntWritable, IntWritable, IntWritable  { 
  //  实现 reduce 函数  
 public void reduce(IntWritable key, Iterable IntWritable  values, Context context) 
  throws IOException, InterruptedException { 
 int sum = 0;  
 for(IntWritable val : values){ 
 sum += val.get(); } 
 context.write( key, new IntWritable(sum)); 
  } 
}  
public static void main(String[] args) throws Exception { 
 Configuration conf = new Configuration(); 
  String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); 
 if (otherArgs.length != 2) { 
  System.err.println( Usage: Multiple Table Join  in   out  
   System.exit(2); 
  } 
  Job job = new Job(conf,  count  
  job.setJarByClass(count.class); 
  //  设置 Map 和 Reduce 处理类  
  job.setMapperClass(Map.class); 
 job.setCombinerClass(Reduce.class); 
  job.setReducerClass(Reduce.class); 
  //  设置输出类型  
 job.setOutputKeyClass(IntWritable.class); 
  job.setOutputValueClass(IntWritable.class); 
  FileInputFormat.addInputPath(job, new Path(otherArgs[0])); 
  FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); 
  System.exit(job.waitForCompletion(true) ? 0 : 1); 
} 
 }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计3814字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产suv精品一区二区883 | av中文字幕潮喷人妻系列 | 在线观看国产成人av片 | 国产午夜视频在线 | 在厨房被c到高潮a毛片奶水 | 午夜dj在线观看免费视频 | 成人做爰69片免费看网站野花 | 日韩色欲人妻无码精品av | 尤里和露珠2韩剧在线观看中文版 | 吃奶呻吟打开双腿做受在线视频 | 一本色道无码不卡在线观看 | 精品动漫中文字幕一区二区三区 | 国产天堂| 人妻无码中文字幕免费视频蜜桃 | 国产精品国产三级在线... | 青青热久久久久综合精品 | 成人免费观看男女羞羞视频 | 天天爽夜夜爽夜夜爽 | 国产大尺度福利视频在线观看 | 黄色成人免费视频 | 久久精品只有这里有 | 毛片线看免费观看 | 精品欧美一区二区三区精品久久 | 咪咪色影院 | 精品国产免费观看久久久 | 欧美第一页草草影院 | 久久无码人妻一区二区三区午夜 | 四虎电影免费观看网站 | 新狼窝色av性久久久久久 | 成人免费视频视频在线不卡 | 大帝av在线一区二区三区 | 亚洲 欧美 日韩 小说 另类 | 亚洲欧美日韩国产专区一区 | 国产良妇出轨视频在线观看 | 亚洲 欧洲 自拍 另类 校园 | 伊在人亚洲香蕉精品区 | 国产精品资源站 | 欧美成人性高清观看 | 久久不见久久见免费影院 | 665566综合网 | 国产精久久一区二区三区 |