主要是做个笔记,记录一下自己学习实现的过程(参考了一些博文),同时留给大家做参考
1、首先搭建Hadoop全分布模式集群,参考博主 码仙♥ 的博客,链接如下 : Hadoop环境搭建_码仙♥的博客-CSDN博客
2、直接在master本地根目录下创建一个项目的文件夹,写一个java源文件:
cd
mkdir wordcount
cd wordcount
vim WordCount.java
3、按i键打开编辑,粘贴下面的代码,按esc,然后输入 :wq 保存退出
import java.io.IOException;
import java.util.StringTokenizer;
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;
public class WordCount {
public static class TokenizerMapper
extends Mapper
(当前wordcount文件夹)
4、启动hadoop
cd /opt/hadoop/hadoop/sbin
start-all.sh
5、 修改.bashrc文件,添加Hadoop 的classhpath 路径(据我理解,这一步让我们的WordCount可以使用Mapper、Reducer等作为基类)
cd
vim .bashrc
(.bashrc文件是隐藏文件,如果在根目录下查看需要使用ls -a)
在文件末尾添加如下两行:(路径根据你安装hadoop时的路径可能有所不同)
export HADOOP_HOME="/opt/hadoop/hadoop"
export CLASSPATH="$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH"
保存退出,运行以下代码,使配置生效
source .bashrc
6、编译并打包WordCount程序
先编译(编译不过的话,看看源码有没有粘全)
cd
cd wordcount
javac WordCount.java
(当前wordcount文件夹)
在当前wordcount目录输入命令,把class文件打包成jar:
jar -cvf WordCount.jar WordCount*.class
(当前wordcount文件夹)
jar命令具体用法可见:
Jar命令使用_Apple-yeran的博客-CSDN博客_往jar包添加文件
7、在hdfs上搞一个输入文件
hdfs用法参考:
【hadoop系列】Hadoop HDFS命令_我去图书馆了的博客-CSDN博客_hadoop查看hdfs目录
在本地创建一个file0文件:
cd
cd wordcount
vim file0
自己写点英文就行,我写的是下面的:
I am your father!
No! No!
That's not true!
That's impossible!
然后你的wordcount文件夹下就多了一个file0文件,我先把它传到hdfs上
先在hdfs上建一个input文件夹,再把file0从本地传上去
cd
hadoop fs -mkdir /wc
hadoop fs -mkdir /wc/input
hadoop fs -copyFromLocal ~/wordcount/file0 /wc/input
输入下面的代码应该能看到
hadoop fs -ls /wc/input
8、运行
OK!然后就可以跑了
cd
hadoop jar ~/wordcount/WordCount.jar WordCount /wc/input /wc/output
运行结果会自动存储在hdfs的/wc/output文件夹里,注意运行前不要提前建这个文件夹,不然会报错!
hadoop 用MapReduce运行jar的命令可以参考:
hadoop jar 命令 执行MapReduce 任务_柱子z的博客-CSDN博客
(有这玩意儿应该就是成了)
9、看一下运行结果
hadoop fs -cat /wc/output/part-r-00000
捏麻麻地终于写完了! ( •̀ ω •́ )y
如果有错误欢迎指正!
参考文章:
代码取自——Mapreduce官方教程
Apache Hadoop 3.3.4 – MapReduce Tutorial
本文主要参考了 银晗 dalao的博客
Hadoop完全分布式实现WordCount_银晗的博客-CSDN博客_hadoop实现wordcount
其他参考文章已在文中注出!(●'◡'●)