当前位置: 首页 > wzjs >正文

百度开户做网站2400单页网站seo如何优化

百度开户做网站2400,单页网站seo如何优化,大连网站建设详细流程,website是什么意思WordCount案例分析 给定一个路径,统计这个路径下所有的文件中的每一个单词的出现次数。 其中,需要我们去实现代码的部分是:map函数和reduce函数。它们各自的作用是: map函数的入参是kv结构,k是偏移量,v是一…

WordCount案例分析

给定一个路径,统计这个路径下所有的文件中的每一个单词的出现次数。

其中,需要我们去实现代码的部分是:map函数和reduce函数。它们各自的作用是:

map函数的入参是kv结构,k是偏移量,v是一行的具体内容。map函数的返回值格式也是kv结构,k是每个单词,v是数字1。

uce函数的入参是kv结构,k是单词,v是集合,每个元素值都是1。reduce函数的返回值格式也是kv结构,k是每个单词,v是汇总之后的数字。

WordCount案例实操-编码实现

准备maven工程,具体要求和之前的一致。具体操作如下:

1.新建一个空白项目

2.配置maven

3.创建三个类。

每个类的具体内容如下。

1.编写Mapper类

核心要点是:

  1. 继承Mapper类。约定泛型<keyIn,ValueIn,KeyOut,ValueOut>
  2. 重写map方法(keyIn, ValueIn,Content<KeyOut, Key>)

我们来看下代码。

package com.example.mapreduce;

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;

// 继承Mapper

public class WordCountMapper extends Mapper<LongWritable, Text, Text, LongWritable> {

    @Override

    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

        // 获取一行数据,用空格拆分为一个个单词

        String[] words = value.toString().split(" ");

        // 遍历单词,设置键值对,值为1

        for (String word : words) {

            context.write(new Text(word), new LongWritable(1));

        }

    }

}

代码说明:

  1. LongWritable是固定写法。它表示读取到一行的偏移量。
  2. LongWritable, Text是hadoop的数据类型。

编写Reducer类

核心要点是:

  1. 继承Reducer类。约定泛型<keyIn,ValueIn,KeyOut,ValueOut>
  2. 重写reduce方法(keyIn, Iterable<ValueIn>,Content<KeyOut, Key>)

代码如下:

package com.example.mapreduce;

import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

import java.io.IOException;

// 继承 reducer类
public class WordCountReducer extends Reducer<Text, LongWritable, Text, LongWritable> {
    @Override
    protected void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException {
        // 对 values中的值进行累加求和
        long sum = 0;
        for (LongWritable value : values) {
            sum += value.get();
        }
        // 输出结果
        context.write(key, new LongWritable(sum));
    }
}

请注意Mapper的来源,它是mapreduce.Mapper,而不是mapred.Mapper。后者是hadoop的老版本用法。

编写Driver驱动类

Driver类负责提交job。它的核心代码有7个步骤,属于固定写法。这七个步骤分别如下:

  1. 获取job对象
  2. 关联本地Driver类的jar
  3. 关联map和reduce
  4. 设置map的输出kv类型
  5. 设置reduce的输出kv类型
  6. 设置输入数据和输出结果的地址
  7. 提交job。

下面我们一起来编写这份代码。

参考代码如下。

package com.example.mapreduce;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Job;

import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import java.io.IOException;

public class WordCountDriver {

    // mapreduce的Driver

    // 提交job

    public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {

        // 1. 获取配置信息以及获取job对象

        Configuration conf = new Configuration();

        Job job = Job.getInstance(conf);

        // 2. 关联本地的jar

        job.setJarByClass(WordCountDriver.class);

        // 3. 关联Mapper和Reducer

        job.setMapperClass(WordCountMapper.class);

        job.setReducerClass(WordCountReducer.class);

        // 4. 设置Mapper输出的KV类型

        job.setMapOutputKeyClass(Text.class);

        job.setMapOutputValueClass(LongWritable.class);

        // 5. 设置最终输出KV类型

        job.setOutputKeyClass(Text.class);

        job.setOutputValueClass(LongWritable.class);

        // 6. 设置输入和输出路径。请确保wcinput是存在的,并且下面有待统计词频的单词文件。
        //                         output1会自动被创建,如果它已经存在,程序会报错!

        FileInputFormat.setInputPaths(job, new Path("D://vm//wcinput"));

        FileOutputFormat.setOutputPath(job, new Path("D://vm//output1"));

        // 7. 提交job

        boolean b = job.waitForCompletion(true);

        System.exit(b ? 0 : 1);

    }

}

WordCount代码运行

在本地运行代码,在本地查看效果。此时要注意,我们的程序并没有使用集群中的资源,在yarn中看不到运行的任务,我们也没有把结果保存在hdfs中。

http://www.dtcms.com/wzjs/488989.html

相关文章:

  • thinkphp和wordpress区别推广seo网站
  • 新媒体运营的发展前景seo5
  • 作文网下载流程优化
  • jsp网页成品免费下载优化大师电脑版官网
  • 1688电脑网页版深圳关键词排名优化系统
  • 数据做图网站有哪些免费b站推广软件
  • 旧网站怎么做301跳转广州谷歌推广
  • 上海网站建设熊掌号百度seo优化多少钱
  • 建设部网站燃气管理部门建立网站的几个步骤
  • 企业网站建设入账百度app官方下载安装
  • 榆林市住房和城市建设局网站如何做个人网站
  • 做网站申请个体户潮州seo建站
  • 网站后台上传文章为什么不显示常见的网站推广方法
  • 网站建设万户做一个官网要多少钱
  • 学做动态网站百度指数疫情
  • 网站对联广告html代码刷排名seo软件
  • 宾馆网站如何做会计分录seo搜索引擎优化介绍
  • 用js做的个人酷炫网站宁波微信推广平台哪个好
  • 自己做个微信小程序百度权重优化软件
  • 做网站需要域名 域名是啥朋友圈网络营销
  • 长春企业建站系统模板企业网站设计优化公司
  • wordpress酷黑主题排名优化公司哪家效果好
  • 合肥金融网站设计免费推广的app有哪些
  • 深圳本地做网站百度关键词投放
  • 建设局特种作业网站如何快速网络推广
  • 遵义网站建设哪家好优化网站建设seo
  • 南通网络科技的公司网站网络营销的现状和发展趋势
  • 企业网站尺寸手机百度app安装下载
  • 贵州最好的网站建设推广公司百度网址导航
  • 建网站的公司服务怎么联系百度推广