����λ�ã���ҳ > �����̳� > �̳� > ���������Hadoop��IntelliJ IDEAԶ�����ӷ�������Hadoop����WordCount

���������Hadoop��IntelliJ IDEAԶ�����ӷ�������Hadoop����WordCount

��Դ������������|��ʱ�䣺2024-11-16 10:27:12 |���Ķ���99��|�� ��ǩ�� Te a T DC ���� �� El C in ���� �� ������ EA Intel word �� |����������

������������һ�Ĵ����ݣ���Ϊһ��Hadoop�����֣���Ҳ����������̽�ָ��ӵĵײ�ԭ������ˣ���ƪ���µ��ص�����Ǵ�ʵ�ʲ���������ʵ���ĽǶȳ�����������һ���˽������Ӧ�õĻ������̡����ǽ�ͨ��һ������İ�������WordCounter��������������š�����˵�����������Ŀ���Ǵ�һ���ı��ļ��ж�ȡÿһ

������������һ�Ĵ����ݣ���Ϊһ��Hadoop�����֣���Ҳ����������̽�ָ��ӵĵײ�ԭ������ˣ���ƪ���µ��ص�����Ǵ�ʵ�ʲ���������ʵ���ĽǶȳ�����������һ���˽������Ӧ�õĻ������̡����ǽ�ͨ��һ������İ�������WordCounter��������������š�����˵�����������Ŀ���Ǵ�һ���ı��ļ��ж�ȡÿһ�У�ͳ�����е��ʳ��ֵ�Ƶ�ʣ��������һ��ͳ�ƽ���������Ͽ�����������ƺ����ѣ��Ͼ������ڱ�����Java����Ϳ��Ժ����ɵ�ʵ�֡�

Ȼ����ʵ�����������˼򵥡���Ȼ�����ܹ���һ̨�������ͨ���򵥵�Java����������Ƶ����񣬵��ڴ����ݵij����£�������ԶԶ����һ̨�����ܹ���������������ʱ����������һ̨�����ļ�����Դ���޷�Ӧ���Ӵ���������������Ƿֲ�ʽ����ʹ洢��������Ҫ�����ڡ��ֲ�ʽ���㽫������Ϊ��������񣬲����ö�̨����Эͬ�������Ӷ�ʵ�ָ�Ч�����������ݣ����ֲ�ʽ�洢����Խ������зֲ��洢�ڶ���ڵ��ϣ�������ݴ洢�ͷ��ʵ�ƿ����

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

��ˣ�ͨ������Ľ��ܣ���ϣ���ܹ�����Ҵ�һ���򵥵����ӳ���������������ݴ�������ν���Hadoop�����ķֲ�ʽ��ܣ�����Ч�ؽ������ݼ���ʹ洢��

����׼��

Hadoop��װ

�����Ҳ�̫ϲ���ڱ��� Windows ϵͳ�Ͻ��а�װ����Ϊ���ػ�����ͨ������ۺܶ಻��Ҫ���ļ������ã����ܻ�Ӱ��ϵͳ�ĸɾ��������ȡ���ˣ���ʾ���ص㽫������ Linux ������Ϊ���Ļ����ϣ�ͨ�� Docker ʵ�ֿ��ٲ���

���ǽ����ñ���������һ��ʽ��װ��ֻ��ͨ���򵥵IJ��������������������̣���ȥ�ֶ���������鷳���ð�װ��ø��ӱ�ݺͿ��١�

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

���Ŷ˿�

���ϵͳ�����Ѿ����⿪���˲��ֶ˿ڣ����� 9870 ���ڷ��� Web UI ���棬����һ����Ҫ�Ķ˿� 8020 ��û�п��š�����˿���������Ҫͨ�����ص� IntelliJ IDEA �������Ӻ�ʹ�õģ���˱����ֶ����ж�������ã�ȷ���ö˿��ܹ��������ʡ�����������Բο�����ʾ��ͼ�������ã��Ա�˳��������ӡ�

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

������Ѿ��ɹ�������������ã���ô��ʱ��Ӧ���ܹ�˳�����ʲ��鿴 Web ҳ�档��ͼ��ʾ��

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

��Ŀ����

������Ŀ

���ǿ���ֱ�Ӵ���һ���µ���Ŀ����������Ŀ�����ֶ�������ص���Ŀ��Ϣ������ groupId �� artifactId �� version �Ȼ������á�Ϊ��ȷ�������Ժ��ȶ��ԣ�����ѡ��ʹ�� JDK 8 ��Ϊ���������汾��

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

���ȣ������������鿴һ����Ŀ���ļ�Ŀ¼�ṹ���Ա��������Ŀ����֯��ʽ���ļ��ֲ���һ���������˽⡣

tree /f ����ֱ������

����input
��      test.txt
����output
����src
��  ����main
��  ��  ����java
��  ��  ��  ����org
��  ��  ��      ����xiaoyu
��  ��  ��              InputCountMapper.java
��  ��  ��              Main.java
��  ��  ��              WordsCounterReducer.java
��  ��  ��
��  ��  ����resources
��  ��          core-site.xml
��  ��          log4j.xml

�����������ǽ�ʵ�ִ������еľ���ʾ������"Hello, World!" ����Ҳ��������ͨ����˵�� WordCounter��Ϊ��ʵ��������ܣ����ȣ�������Ҫ��д MapReduce ������ Map �׶Σ���Ҫ�������ǽ�������ļ����н����������ݷֽⲢת�����й��ɵĸ�ʽ�����磬���ʺ�����ִ����ļ�ֵ�ԣ������ţ��� Reduce �׶Σ����ǻ�� Map �׶���������ݽ��л��ܺ�ͳ�ƣ����յõ�������Ҫ��ͳ�ƽ��������ÿ�����ʵij��ִ�����

���⣬���ǻ���Ҫ��дһ�������ࡪ��Job �࣬�������ú����� MapReduce ����ȷ�� Map �� Reduce �׶ε������ܹ�˳�����С�ͨ�����������̵�ʵ�֣����Ǿ������һ�������� WordCounter ���򣬴Ӷ������� MapReduce �ĺ���˼����Ӧ�á�

pom����

����û��ʲô��˵�ģ�ֱ����������������ɣ�


    org.apache.hadoop
    hadoop-common
    3.2.0


    org.apache.hadoop
    hadoop-hdfs
    3.2.0


    log4j
    log4j
    1.2.17


    org.apache.hadoop
    hadoop-client
    3.2.0




    org.apache.hadoop
    hadoop-mapreduce-client-core
    3.2.0


    org.apache.hadoop
    hadoop-mapreduce-client-common
    3.2.0

core-site.xml

�������õ�����Զ��Hadoop����������Ϣ��




    
        fs.defaultFS
        hdfs://���Լ���ip:8020
     

test.txt

���Ǵ˴���Ҫ����ʾΪ������˲�����Ҫ�����dz�����ļ���Ϊ�˼���ʾ���̣����ڴ˽��ṩ��һ�������ݡ�

xiaoyu xiaoyu
cuicui ntfgh
hanhan dfb
yy yy
asd dfg
123 43g
nmao awriojd

InputCountMapper

��������һ��InputCountMapper�ࡣ��������:

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;

public class InputCountMapper extends Mapper {
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    @Override
    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        String line = value.toString().trim();
        for (int i = 0; i < line.split(" ").length; i++) {
            word.set(line.split(" ")[i]);
            context.write(word, one);
        }
    }
}

��Hadoop��MapReduce����У�д����ʵ����Լ򵥵ģ��ؼ�������ȷ����Ͷ��巺�͡�����Ҫ����һ�� Mapper �࣬���������������Ϊ�䶨���ĸ��������͡�����������У�ÿ�����������һ�ԣ��γ�K-V����ֵ�ԣ��ṹ���������������˵���������ݵ�K-V������ LongWritable-Text ��������ݵ�K-V���Ͷ���Ϊ Text-IntWritable ������� LongWritable �� Text �� IntWritable �ȶ���Hadoop�Զ�����������ͣ����Ǵ����˲�ͬ�����ݸ�ʽ�����͡����� String ��Hadoop�б��滻�� Text ����������������ͨ�����ں������ Writable ��׺��

������������ Mapper ��������ʽ�������Ѿ��ڴ����ж����˸�ʽ���͡�Ȼ������Ҫע����ǣ�������д�� map ������û��ֱ�ӷ���ֵ���෴�� Mapper ���ͨ�� Context �����Ķ������������ս����

��ˣ�����ֻ��Ҫȷ���� map �����н���ʽ��������ݴ��� Context ��Ȼ�󽻸� Reducer �������ɡ�

WordsCounterReducer

��һ���Ĵ������£�

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

import java.io.IOException;

public class WordsCounterReducer extends Reducer {
    @Override
    protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException {
        int sum = 0;
        for (IntWritable val : values) {
            sum += val.get();
        }
        context.write(key, new IntWritable(sum));
    }
}

��Hadoop��MapReduce����У� Reduce �׶ε�д��Ҳ��ѭ�̶�ģʽ�����ȣ�������Ҫ���� Reducer �࣬��������ĸ����Ͳ����������� Mapper �׶Ρ����ĸ����Ͱ��������ֵ�����͡�����ֵ���͡������ֵ�����͡��Լ����ֵ���͡�

�� Reduce �׶Σ��������ݵĸ�ʽ�������仯����������ֵ�IJ��֣�ͨ������ Iterable ���͵ļ��ϡ�����仯��ԭ���ǣ� Mapper �׶δ���ʱ������ͨ����ÿ�����ʵij��ִ�����������ͳ����Ϣ����Ϊ1���� Context �����磬������ Mapper �׶��������ʡ�xiaoyu��ʱ������ÿ�ζ������һ�� (xiaoyu, 1) �ļ�ֵ�ԡ������������ʡ�xiaoyu�������������г��ֶ�Σ� Context �����Щ��ֵ�Ժϲ���һ�� Iterable ���ϣ����� (xiaoyu, [1, 1]) ����ʾ�õ��ʳ��������Ρ�

����������У� Reduce �׶εIJ����dz��򵥣�ֻ��Ҫ��ÿ�� Iterable �����е�ֵ�����ۼӼ��ɡ����磬���� xiaoyu �����뼯�� (xiaoyu, [1, 1]) ������ֻ��Ҫ�������е� 1 ֵ�ۼ��������ó����յĽ��2��

Main

���������Ҫ����һ��Job���������£�

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.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class Main {
    static {
        try {
            System.load("E:\\hadoop.dll");//������þ��Ե�ַ��binĿ¼�µ�hadoop.dll�ļ�·��
        } catch (UnsatisfiedLinkError e) {
            System.err.println("Native code library failed to load.\n" + e);
            System.exit(1);
        }
    }


    public static void main(String[] args) throws Exception{
        Configuration conf = new Configuration(); 
        Job job = Job.getInstance(conf, "wordCounter"); 
        job.setJarByClass(Main.class);
        job.setMapperClass(InputCountMapper.class);
        job.setReducerClass(WordsCounterReducer.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        FileInputFormat.addInputPath(job, new Path("file:///E:/hadoop/test/input"));
        FileOutputFormat.setOutputPath(job, new Path("file:///E:/hadoop/test/output"));

        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

�õģ�������չʾ����һ����ȫ�̶���д��������ʵ�ʲ��������У���Ҫ�ر�ע����ǣ����DZ���ͨ�� Windows ����������Զ�̵� Hadoop ��Ⱥ������ز�������������л������ܶ�DZ�ڵ�����Ϳӣ������������á����ӡ�Ȩ�޵ȷ��档

���������ҽ���һ�����������Щ���������⣬ϣ����Ϊ����ṩһЩʵ�ʵIJο���ָ����������Ҹ�˳������ɲ�����

���ѽ��

Ŀ¼������

����㲢�����Ա��� Windows Ŀ¼Ϊ����������Զ�̷������ϵ�Ŀ¼Ϊ�����в�������ô����ܻ�����������µ�д����

FileInputFormat.addInputPath(job, new Path("/input"));
FileOutputFormat.setOutputPath(job, new Path("/output"));

��ô������������£����DZ����ȴ����������ص�����Ŀ¼��input��������Ҫ�ر�ע����ǣ�������ǰ�������Ŀ¼��output������Ϊ Hadoop ��������ҵʱ���Զ�������Ŀ¼�������Ŀ¼�Ѵ��ڣ��ᵼ����ҵִ��ʧ�ܡ���ˣ�ֻ��Ҫ���� Docker ������ֱ��ִ�����������˳����ʼ������

hdfs dfs -mkdir /input

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

��Ȼ������һ�ָ��򵥵ķ�ʽ������ֱ��ͨ��ͼ�ν�����ҳ���ϴ������Ŀ¼����Դ������������Բο����²��裬��ͼ��ʾ��

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

Permission denied

������������������ Job ����ʱ��ϵͳ�������һ�����Դ������Ŀ¼��output����Ȼ�������ڵ�ǰ�û���û���㹻��Ȩ�������д˲�������˻�������������µ�Ȩ�޴�����ʾ�� Permission denied: user=yu, access=WRITE, inode="/":root:supergroup:drwxr-xr-x ���ô�����ζ�ŵ�ǰ�û���yu����ͼ�ڸ�Ŀ¼�´���Ŀ¼���ļ��������ڸ�Ŀ¼��Ȩ������Ϊֻ�й���Ա��root������д�룬��ͨ�û��޷�����д�������Ӷ�������ҵִ��ʧ�ܡ�

����������Ҫ����docker������ִ���������

hadoop fs -chmod 777 /

���������ϾͿ���˳����������ˡ��������������ֱ�ӵ������鿴 output Ŀ¼�µ��ļ����ݡ�������Ҫע����ǣ���������û�����þ���� IP ��ַ������ڽ����ļ�����ʱ������Ҫ�ֶ����ļ��е� IP ��ַ�滻Ϊ���Լ���ʵ�� IP ��ַ������ȷ�����ع����ܹ�˳�����в��ɹ���ȡ������ļ���

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

������org.apache.hadoop.io.nativeio.NativeIO$Windows

��������ͨ��������ȱ�� hadoop.dll �ļ����µġ��� Windows ϵͳ������ Hadoop ʱ�� hadoop.dll ���� winutils.exe �DZ���������ļ�����Ϊ�����ṩ�� Hadoop �� Windows ������ı��ش���֧�ֺ�ִ�л�����

Ϊ��ȷ��˳�����У�����Ҫ���ض�Ӧ�汾�� hadoop.dll ���� winutils.exe �ļ����Ѿ�Ϊ��׼�����˶�� Hadoop �汾��Ӧ����Щ�ļ������е��ļ������Դ������������أ� https://github.com/cdarlint/winutils

��������ֻ����һ��hadoop.dll��Ϊ�˲��������ԣ�ֱ���ڴ�������д����

static {
  try {
      System.load("E:\\hadoop.dll");//������þ��Ե�ַ��binĿ¼�µ�hadoop.dll�ļ�·��
  } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
  }
}

�����Ȼ�����⣬�Ǿ�������windows�µ�wsl��ϵͳ��

ʹ��Windows + R��ݼ��򿪡����С��Ի���ִ��OptionalFeatures�򿪡�Windows ���ܡ���

��ѡ�������� Linux �� Windows ��ϵͳ���͡������ƽ̨����Ȼ������ȷ������

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

������

���ڳɹ��ܳ�����ˣ�����������У�����Ľ���ǰ���Ĭ�ϵ�˳���������ģ���Ȼ�������ʽ�ǿ��Ը�����Ҫ�����Զ���ġ���������ο�����������Ȥ��ʵ���Ͽ��������˽Ⲣ����������ơ�

Áã»ù´¡ÈëÃÅHadoop£ºIntelliJ IDEAÔ¶³ÌÁ¬½Ó·þÎñÆ÷ÖÐHadoopÔËÐÐWordCount

�ܽ�

ͨ������ķ��������Ǽ򵥵��˽��˴����ݴ�����һ�������Ӧ�á���WordCounter����ͨ��Hadoop��ܵ�ʵ����չʾ�����ʹ��MapReduce���зֲ�ʽ���㡣��Ȼ�����Ͽ���WordCounter��һ����Լ򵥵ij��򣬵���ȴ��ʾ�˴����ݴ����еĺ���˼�롣

�Ӱ�װ���õ���д���룬����һ�����߹���Hadoop��Ⱥ�Ĵ���̣�ϣ��ͨ����ƪ���£����ܶԴ�����Ӧ�ÿ������ر���Hadoop����µ�MapReduce��̣����һЩ�����Ͱ����������ݵ������Ӵ�����ӣ���ÿһ��СС��ʵ������������������������ż�������һ����


����Ŭ����С�꣬һ�� Java �������ũ��DZ���о��� AI �����İ��ء����Ȱ�����������������Կ�Դ�����������顣ͬʱҲ��һλ��Ѷ�ƴ���֮�ǡ�������ר�Ҳ�������Ϊ������ר�ҡ�����������ߡ�

? �ҽ����߷������ڼ�����·�ϵĸ���̽���뾭�飬ϣ����Ϊ���ѧϰ��ɳ�����һЩ�����������

? ��ӭ��עŬ����С�꣡?

С���Ƽ��Ķ�

�������������Ľ�Ϊ������Ϣ����������������ͬ���޹۵��֤ʵ��������

Te v1.4
Te v1.4
���ͣ���������������Ӫ״̬����ʽ��Ӫ�������ԣ����� ����

��Ϸ����

��Ϸ���

��Ϸ��Ƶ

��Ϸ����

��Ϸ�

TeChewingum��������һ��ģ�ⴥ�ֽ�����������Ϸ����Ϸ�����������ɰ���СŮ������ҿ��Բ������ֶ���
a 1.0
a 1.0
���ͣ���������������Ӫ״̬����ʽ��Ӫ�������ԣ����� ����

��Ϸ����

��Ϸ���

��Ϸ��Ƶ

��Ϸ����

��Ϸ�

��alittletotheleft������������һ��ܻ�ӭ����������������Ϸ����ҵ������Ƕ��ճ������еĸ���������

�����Ƶ����

����

ͬ������

����

ɨ��ά�����������ֻ��汾��

ɨ��ά����������΢�Ź��ںţ�

��վ�������������������ϴ��������ַ���İ�Ȩ���뷢�ʼ�[email protected]

��ICP��2022002427��-10 �湫��������43070202000427��© 2013~2025 haote.com ������