zoukankan      html  css  js  c++  java
  • 暑期实训day4

    总结:今天上午主要学习了反射机制,学到了一些反射的基本原理,就是通过字符串得到想要获得的类,学到了一些经验:在框架构建过程中出现ClassNotFound,大多数是没有加载架包,最大的对象是Object,最大的类是Class。同时学习了两种JDBC的封装方法。下午主要学了MapReduce,学会了配置MapReduce,在linux中运行MapReduce的简单的统计单词的例子,同时了解了MapReduce的工作原理。会学会了在Eclipse下进行简单的MapReduce工作。

    MyMap.java:

    public class MyMap extends Mapper<LongWritable, Text, Text, IntWritable> {
    @Override
    protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, IntWritable>.Context context)
    throws IOException, InterruptedException {
    // TODO Auto-generated method stub
    String line=value.toString();
    String[] words=line.split(" ");
    for (String word : words) {
    context.write(new Text(word.trim()), new IntWritable(1));
    }
    }
    }

    MyReduce.java:

    public class MyReduce extends Reducer<Text, IntWritable, Text, IntWritable> {
    @Override
    protected void reduce(Text key, Iterable<IntWritable> values,
    Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedException {
    // TODO Auto-generated method stub
    int sum=0;
    for (IntWritable intWritable : values) {
    sum+=intWritable.get();
    }
    context.write(key, new IntWritable(sum));
    }
    }

    MyJob.java:

    public class MyJob extends Configured implements Tool{

    public static void main(String[] args) throws Exception {
    MyJob myJob=new MyJob();
    ToolRunner.run(myJob, null);
    }
    @Override
    public int run(String[] args) throws Exception {
    // TODO Auto-generated method stub
    Configuration conf=new Configuration();
    conf.set("fs.defaultFS", "hdfs://192.168.80.141:9000");
    Job job=Job.getInstance(conf);
    job.setJarByClass(MyJob.class);
    job.setMapperClass(MyMap.class);
    job.setReducerClass(MyReduce.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path("/hadoop/hadoop.txt"));
    FileOutputFormat.setOutputPath(job, new Path("/hadoop/out"));
    job.waitForCompletion(true);
    return 0;
    }

    }

    遇到的问题:通过Eclipse把项目部署到linux的Tomcat下,结果部署上去之后,输入IP地址后不能进入Tomcat界面,经过查找Tomcat的目录发现wabapp目录下的ROOT里面原来的文件不见了,变成了之前部署上去的项目,导致不能进入Tomcat,最后使用命令把文件删除,重新导入了Tomcat的原来的ROOT文件,最后成功解决此问题。但是部署项目到linux的Tomcat下还是不能实现,有待解决,不知道为什么会覆盖原来的ROOT项目。还有在运行MapReduce的统计单词数目的小例子的时候运行了十几分钟最后出现了Timeout的异常,最后查到是运行计算时间超时了,最后的解决办法是把虚拟机的内存调大从512M到1G,最后解决了这个问题。

    思维导图:

  • 相关阅读:
    POJ3889Fractal Streets
    POJ3263 Tallest Cow
    tyvjP1288 飘飘乎居士取能量块
    洛谷P3369 【模板】普通平衡树(Treap/SBT)
    洛谷P1063 能量项链 [2006NOIP提高组]
    洛谷P1541 乌龟棋 [2010NOIP提高组]
    POJ3322 Bloxorz I
    BZOJ1218:[HNOI2003]激光炸弹
    TyvjP1266 费解的开关
    洛谷P3070 [USACO13JAN]岛游记Island Travels
  • 原文地址:https://www.cnblogs.com/lhj1017/p/9301593.html
Copyright © 2011-2022 走看看