MapReduce分布式计算及其应用

news/2024/10/14 23:22:46

实验名称:MapReduce分布式计算及其应用

实验内容

Hadoop是一个能够对大量数据进行分布式处理的软件框架,已被广泛应用到各个领域,Hadoop框架最核心的设计是分布式文件系统(HDFS)、分布式计算框架(MapReduce)和集群资源管理系统(YARN)。本实验要求实现如下内容。

1.搭建分布式Hadoop集群环境,采用伪分布式或完全分布式模式。

2.应用MapReduce模型,实现词频统计。

3.应用MapReduce模型,对电影数据分析,实现用户喜好评定。(选作)

实验环境

  • Windows 10
  • VMware Workstation 16 Pro
  • Ubuntu 20.04 LTS
  • Docker V1.26
  • Docker Image:(Hadoop镜像)
  • registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop

实验过程

Hoop实验环境所使用的工具搭建过程。

拉取Docker镜像,创建Docker容器

Hoop实验环境搭建过程

通过终端进入Docker容器:

  1. 关闭防火墙 systemctl stop iptables.service
  2. 设置主机名 vi /etc/sysconfig/network
  3. 添加映射关系 vi /etc/hosts
  4. 配置Hadoop文件
    1. core.site.xml
    2. hdfs-site.xml
    3. mapred-site.xml
    4. yarn-site.xml
  5. 启动Hadoop /usr/local/hadoop/sbin/start-all.sh
  6. 验证配置

成功访问Web配置页面:

 

 

应用的实现过程,包括步骤及测试结果

  1. hadoop fs -mkdir /input 在HDFS中创建文件
  2. cd /usr/local/hadoop 进入目录
  3. touch in.txt 创建文件
  4. vi in.txt 打开文件,添加信息(之后求出现次数)
  5. hadoop fs -put in.txt /input/ 文件添加到HDFS的 /input/下
  6. cd share/hadoop/mapreduce 切换目录
  7. hadoop jar hadoop-mapreduce-examples-2.7.6.jar \ 使用
  8. wordcount /input /output 执行
  9. hadoop fs -cat /output/part-r-00000 查看结果

也可以自己生成jar包,发布到Hadoop运行:
编译、打包 Hadoop MapReduce 程序,我们将 Hadoop 的 classhpath 信息添加到 CLASSPATH 变量中,在 ~/.bashrc 中增加如下几行:

export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_CLASSPATH=$(hadoop classpath)

执行 source ~/.bashrc 使变量生效,接着就可以通过 javac 命令编译。

javac -classpath $HADOOP_CLASSPATH -d . JobMain.java WordCountMapper.java WordCountReducer.java

打包成一个 Jar 文件:

jar -cvf wordcount.jar -C . .

运行Hadoop程序:

hadoop jar wordcount.jar hit.dstOS.lab2.JobMain /input/in.txt /output/wordcount/

项目实现过程中遇到的问题及解决方案

编译Hadoop程序时,Java报错:package org.apache.hadoop.conf does not exist

这是需要确保Hadoop 的相关依赖,根据报告上文的配置,可以解决该问题。

运行Hadoop程序报错:

Exception in thread "main" java.lang.ClassNotFoundException: JobMain

这是因为Hadoop 找不到 JobMain 类,由于类路径或包结构不正确造成的。

正确的运行命令,应该指定jar包的类路径(要明确包结构)。

例如我的包结构是package hit.dstOS.lab2;

那么,运行命令指定的类路径就是 hit.dstOS.lab2.JobMain。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

数据库初步概念

1.初步学习数据库概念并安装MySQL MySQL控制台:2.sql语言: 分类: DDL 数据定义语言,用来定义数据库对象:数据库、表、列等 DML 数据操作语言,用来对数据库中表的数据进行增删改 DQL 数据查询语言,用来查询数据库中表的记录(数据) DCL 数据控制语言,用来定义数据库的访…

Flowable 常用类及其作用

ProcessEngineConfiguration 和 ProcessEngineProcessEngineConfiguration:流程引擎配置类。 ProcessEngine:流程引擎。ProcessEngineConfiguration 封装 ProcessEngine 的配置信息,ProcessEngine 由具体的 ProcessEngineConfiguration 实例化。 public class HolidayReques…

win7证书问题

安装证书即可, https://www.microsoft.com/pkiops/Docs/Repository.htm留待后查,同时方便他人 联系我:renhanlinbsl@163.com

第八次作业

1、利用宽字节注入实现“库名-表名”的注入过程,写清楚注入步骤; 爆库名: 在宽字节注入框输入kobe%df union select database(),version()#语句爆库名和版本号burp抓包,将URL编码后的%的%25中的数字25删掉爆出库名爆表名: 在宽字节注入框输入kobe%df union select 1,table_…

Apache Kafka各Api模块说明

Kafka API微信公众号:阿俊的学习记录空间 小红书:ArnoZhang wordpress:arnozhang1994 博客园:arnozhang CSDN:ArnoZhang1994Kafka 包含五个核心 API:Producer API 允许应用程序将数据流发送到 Kafka 集群中的topic。 Consumer API 允许应用程序从 Kafka 集群中的topic读取…

IDEA如何用maven打包(界面和命令两种方式)

前言 我们在使用IDEA开发时,如果是springboot项目的话,一般是用maven来管理我们的依赖的。然后,当我们开发完成之后,就需要打包部署了。那么,我们应该如何打包呢? 如何打包(jar包) 首先,我们点击右侧的maven侧边栏,然后点击里面的【clean】,先将以前的包清理掉。然后…