在Hadoop调用MapReduce分析文件中单词出现个数

本文详细介绍了在Hadoop环境下使用MapReduce分析文件中单词出现次数的步骤,包括Hadoop的安装配置、HDFS的操作、Eclipse中开发和运行MapReduce程序,以及如何设置运行参数以避免错误。
摘要由CSDN通过智能技术生成

在Hadoop调用MapReduce分析文件中单词出现个数

运行环境

实验需要在Oracle VM virtual box中安装Hadoop

Hadoop的基本配置

Hadoop基本安装配置主要包括以下几个步骤:
• 创建Hadoop用户
• SSH登录权限设置
• 安装Java环境
• 单机安装配置
• 伪分布式安装配置

Hadoop安装完成后, 更新apt以便进行后续的软件安装。通过按 ctrl+alt+t 打开终端窗口,执行命令:

sudo apt-get update,输入密码后可开始更新,完成后如下图所示:

sudo apt-get update

在这里插入图片描述
由于后续需要更改配置文件,所以需要安装vim,输入sudo apt-get install vim开始安装
结果如下:

sudo apt-get install vim

在这里插入图片描述
下面进行SSH登录权限设置:
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

sudo adp-get install openssh-server

在这里插入图片描述
安装完毕后可以输入:ssh localhost 登录到本机:(由于之前进行过设置所以不用输入密码等操作)

ssh localhost

在这里插入图片描述
接下来需要安装JAVA环境(已安装),安装完成后可以通过输入:java -version查看是否安装成功。

java -version

在这里插入图片描述
Hadoop安装完后,可以在根目录终端输入: ./bin/Hadoop version 查看安装情况:

./bin/Hadoop version

在这里插入图片描述
接下来需要进行hadoop伪分布式配置:
需要在hadoop配置文件夹 /usr/local/hadoop/etc/hadoop/ 中修改2个配置文件 core-site.xmlhdfs-site.xml
gedit打开 core-site.xml,在**< configuration > < /configuration >**中间添加配置,如下图:
在这里插入图片描述
用gedit打开配置文件: hdfs-site.xml ,操作如下:
在这里插入图片描述
修改完配置文件之后,执行namenode的格式化,输入代码:./bin/hdfs namenode -format后出现下图的“successfully formatted” 说明成功:

./bin/hdfs namenode -format

在这里插入图片描述
格式化后需要开启NameNode和DataNode守护进程,输入代码
cd /user/local/Hadoop
./sbin/start-dfs.sh
启动完成后,可以通过命令jps来判断是否成功,如果成功会列出如下进程:“NameNode”、“DataNode”、“SecondaryNameNode”。

cd /user/local/Hadoop
./sbin/start-dfs.sh

在这里插入图片描述
接下来要运行hadoop伪分布式实例
由于伪分布式读取的是HDFS上面的数据,如果要使用HDFS,首先需要在HDFS中创建用户目录:./bin/hdfs dfs -mkdir -p /user/Hadoop
接着将./etc/hadoop中的xml文件作为输入文件复制到分布式文件系统中的 /user/hadoop/input 中。命令如下:

./bin/hdfs dfs -mkdir input

./bin/hdfs dfs -put ./etc/hadoop/*.xml input

复制完成后,可以通过如下命令查看文件列表:

./bin/hdfs dfs -ls input

在这里插入图片描述
运行程序时,输出目录不能存在
运行 Hadoop 程序时,为了防止覆盖结果,程序指定的输出目录(如 output)不能存在,否则会提示错误,因此运行前需要先删除输出目录。在实际开发应用程序时,可考虑在程序中加上如下代码,能在每次运行时自动删除输出目录,避免繁琐的命令行操作:

Configuration conf = new Configuration();
Job job = new Job(conf); /*
删除输出目录 */
Path outputPath = new Path(args[1]);
outputPath.getFileSystem(conf).delete(outputPath, true);

若要关闭 Hadoop,则运行

/sbin/stop-dfs.sh

注意

下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行 ./sbin/start-dfs.sh 就可以

./sbin/start-dfs.sh

HADOOP的配置到这里就基本结束了

HDFS

要调用MapReduce对文件中各个单词出现的次数进行统计,需要将文件上传到HDFS中所以接下来进行对HDFS的使用。

第一次使用HDFS时,首先要在HDFS中创建用户目录,命令如下:

cd /usr/local/hadoop
./bin/hdfs dfs –mkdir –p /user/Hadoop

创建后也能够通过命令**./bin/hdfs dfs -ls** 查看HDFS中与当前hadoop对于的用户目录下的内容

./bin/hdfs dfs -ls

在这里插入图片描述
由于后面需要上传本地文件到HDFS中,所以我们使用**./bin/hdfs dfs -mkdir input新建一个input目录。
然后可以使用如下命令把本地文件系统的
/home/Hadoop/文件名.txt上传到HDFS中的当前用户目录的input目录下,即上传到HDFS的/user/Hadoop/input**目录下。

./bin/hdfs dfs -put /home/hadooppride and prejudice.txt input

上传后可以通过ls命令查看文件是否成功上传到HDFS中。

./bin/hdfs dfs -ls input

在这里插入图片描述
将文件成功上传到HDFS之后,可以使用命令来查看文件的内容

./bin/hdfs dfs -cat input/test.txt(文件名)

在这里插入图片描述
要想调用MapReduce程序对文件字数进行统计,有两种方法,一种是使用Eclipse编译运行MapReduce程序,另一种是使用命令行编译打包运行自己的MapReduce程序。

我们以Eclipse为例,首先在Ubuntu Kyilin软件中心中搜索Eclipse后进行安装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值