云计算安全实验-MapReduce安装与简单使用

这篇具有很好参考价值的文章主要介绍了云计算安全实验-MapReduce安装与简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装Hadoop

1. 创建Hadoop用户
创建用户命令如下:
sudo useradd -m hadoop -s /bin/bash
mapreduce安装,网络安全,mapreduce,云计算,安全
接着为 hadoop 用户设置密码
sudo passwd hadoop
mapreduce安装,网络安全,mapreduce,云计算,安全
然后为 hadoop 用户增加管理员权限:
sudo adduser hadoop sudo
mapreduce安装,网络安全,mapreduce,云计算,安全
切换用户为hadoop登录
su hadoop
mapreduce安装,网络安全,mapreduce,云计算,安全
2.更新apt和安装Vim编辑器

首先更新 apt:
sudo apt-get update
mapreduce安装,网络安全,mapreduce,云计算,安全
接着安装 Vim 编辑器:
sudo apt-get install vim
mapreduce安装,网络安全,mapreduce,云计算,安全
3.安装SSH和配置SSH无密码登录
Ubuntu 操作系统下默认已安装了 SSH 客户端,因此这里我们只需安装 SSH 服务端:

sudo apt-get install openssh-server
mapreduce安装,网络安全,mapreduce,云计算,安全
安装后,可使用以下命令登录本机:
ssh localhost
mapreduce安装,网络安全,mapreduce,云计算,安全
输入 yes 与用户密码,就可以登录到本机,详细输出如下:
mapreduce安装,网络安全,mapreduce,云计算,安全
接着我们退出 SSH 登录,
exit
mapreduce安装,网络安全,mapreduce,云计算,安全
配置无密码登录:
cd ~/.ssh/
ssh-keygen -t rsa
mapreduce安装,网络安全,mapreduce,云计算,安全
注意这里第二步要你输入文件名时不用输入,直接一路 Enter 选择默认值就好了!

cat ./id_rsa.pub >> ./authorized_keys
mapreduce安装,网络安全,mapreduce,云计算,安全
此时再用 ssh localhost 命令无需密码即可登录了。

4.安装Java环境

(1)安装JDK
对于 Hadoop3.1.3 及以上版本而言,需要使用 JDK1.8 或者更新的版本,这里我使用的 JDK 版本为1.8.0_301

在 /usr/lib 目录下创建 jvm 文件夹来保存 JDK 文件:
cd /usr/lib
sudo mkdir jvm
mapreduce安装,网络安全,mapreduce,云计算,安全
解压缩之前的 JDK 文件到上述目录中:
cd ~/Downloads
sudo tar -zxvf ./jdk-8u301-linux-x64.tar.gz -C /usr/lib/jvm
mapreduce安装,网络安全,mapreduce,云计算,安全
(2)配置JDK环境
使用 gedit 编辑器编辑环境变量:
sudo gedit ~/.bashrc
mapreduce安装,网络安全,mapreduce,云计算,安全

在文件末尾处添加以下几行内容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_301
export JRE_HOME= J A V A H O M E / j r e e x p o r t C L A S S P A T H = . : {JAVA_HOME}/jre export CLASSPATH=.: JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H = {JRE_HOME}/lib export PATH= JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH
mapreduce安装,网络安全,mapreduce,云计算,安全
保存并退出,接着使我们刚加入的环境变量生效:
source ~/.bashrc
mapreduce安装,网络安全,mapreduce,云计算,安全
(3)检验安装
输入以下命令:
java -version
mapreduce安装,网络安全,mapreduce,云计算,安全
5.安装单机Hadoop

(1)下载安装Hadoop
下载地址:Apache Hadoop,这里官网下载较快
我安装的 Hadoop 版本为3.2.3,下载好后,执行以下命令安装:

sudo tar -zxf ~/Downloads/hadoop-3.2.3.tar.gz -C /usr/local
mapreduce安装,网络安全,mapreduce,云计算,安全
修改目录名称:
cd /usr/local
sudo mv ./hadoop-3.2.2/ ./Hadoop
mapreduce安装,网络安全,mapreduce,云计算,安全
赋予可执行权限:
sudo chown -R hadoop ./hadoop
mapreduce安装,网络安全,mapreduce,云计算,安全
进入 hadoop 文件夹,查看安装的 Hadoop 版本信息:
cd ./hadoop
./bin/hadoop version

mapreduce安装,网络安全,mapreduce,云计算,安全
(2)运行示例
首先在 Hadoop 安装目录下新建 input 子目录:

cd /usr/local/hadoop
sudo mkdir input
mapreduce安装,网络安全,mapreduce,云计算,安全
复制 “/usr/local/hadoop/etc/hadoop” 中的配置文件到 input 目录下:
sudo cp ./etc/hadoop/*.xml ./input
mapreduce安装,网络安全,mapreduce,云计算,安全
执行以下代码运行 Grep 示例:
./bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.3.jar grep ./input ./output ‘dfs[a-z.]+’
mapreduce安装,网络安全,mapreduce,云计算,安全

执行完后,输入以下命令查看输出结果:
cat ./output/*
mapreduce安装,网络安全,mapreduce,云计算,安全
6.安装伪分布式Hadoop

修改配置文件 core-site.xml:vi ./etc/hadoop/core-site.xml
mapreduce安装,网络安全,mapreduce,云计算,安全
为xml中的configuration 标签添加如下内容:
mapreduce安装,网络安全,mapreduce,云计算,安全
同样的,修改配置文件 hdfs-site.xml:
vi ./etc/hadoop/hdfs-site.xml
mapreduce安装,网络安全,mapreduce,云计算,安全
为xml中的configuration 标签添加如下内容:
mapreduce安装,网络安全,mapreduce,云计算,安全
配置完成后,即可进行NameNode 的格式化:
mapreduce安装,网络安全,mapreduce,云计算,安全
然后开启 NameNode 和 DataNode 守护进程
./sbin/start-dfs.sh
mapreduce安装,网络安全,mapreduce,云计算,安全
启动完成后,可以通过命令jps来判断是否成功启动
mapreduce安装,网络安全,mapreduce,云计算,安全
二、计算词频最高的前K个词的词频

上传词频文件data.txt将其存放在input文件夹中
hdfs dfs -put /home/hadoop/cipin.txt input
mapreduce安装,网络安全,mapreduce,云计算,安全
实验程序源码如下:

package sy;
import java.io.IOException;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
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;
import org.apache.hadoop.util.GenericOptionsParser;
 
 
public class shiyan3 {
 
    public static class WsMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
        @Override
        public void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException {
            String[] split = value.toString().split(" ");
            for (String word : split) {
                context.write(new Text(word), new IntWritable(1));
            }
        }
    }
 
    public static class WsReducer extends Reducer<Text, IntWritable, Text, IntWritable>{
 
        Map<String,Integer> map=new HashMap<String, Integer>();
        public void reduce(Text key, Iterable<IntWritable> iter,Context conext) throws IOException, InterruptedException {
            int  count=0;
            for (IntWritable wordCount : iter) {
                count+=wordCount.get();
            }
            String name=key.toString();
            map.put(name, count);
        }
 
        @Override
        public void cleanup(Context context)throws IOException, InterruptedException {
 
            //这里将map.entrySet()转换成list
            List<Map.Entry<String,Integer>> list=new LinkedList<Map.Entry<String,Integer>>(map.entrySet());
            //通过比较器来实现排序
            Collections.sort(list,new Comparator<Map.Entry<String,Integer>>() {
 
                //降序排序
                @Override
                public int compare(Entry<String, Integer> arg0,Entry<String, Integer> arg1) {
                    return (int) (arg1.getValue() - arg0.getValue());
                }
            });
 
            for(int i=0;i<5;i++){
                context.write(new Text(list.get(i).getKey()), new IntWritable(list.get(i).getValue()));
            }
        }
    }
    public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
        Configuration conf = new Configuration();
        String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
        if (otherArgs.length != 2) {
            System.err.println("输入参数个数为:"+otherArgs.length+",Usage: wordcount <in> <out>");
            System.exit(2);//终止当前正在运行的java虚拟机
        }
        Job job = Job.getInstance(conf, "CleanUpJob");
        job.setJarByClass(shiyan3.class);
        job.setMapperClass(WsMapper.class);
        job.setReducerClass(WsReducer.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);
        for(int i = 0; i < otherArgs.length - 1; ++i) {
            FileInputFormat.addInputPath(job, new Path(otherArgs[i]));
        }
        FileOutputFormat.setOutputPath(job, new Path(otherArgs[otherArgs.length - 1]));
        System.exit(job.waitForCompletion(true)?0:1);
    }
}

其中的循环变量i可变,即为统计数K,这里设定为5

运行实验程序
hadoop jar shiyan3.jar /input/data.txt /output

mapreduce安装,网络安全,mapreduce,云计算,安全
显示运行结果
hdfs dfs -cat /output/part-r-00000
mapreduce安装,网络安全,mapreduce,云计算,安全文章来源地址https://www.toymoban.com/news/detail-841340.html

到了这里,关于云计算安全实验-MapReduce安装与简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实验三-MapReduce编程

    前提:安装好Hadoop 参考文章: MapReduce编程实践(Hadoop3.1.3)_厦大数据库实验室博客 实验要求 实验步骤         1. 启动Hadoop                   2. 上传本地文件至hdfs中         在hdfs中创建存放本地文件的文件夹         将文件上传至hdfs中           (上传结果

    2024年02月06日
    浏览(34)
  • 实验5:MapReduce 初级编程实践

    由于CSDN上传md文件总是会使图片失效 完整的实验文档地址如下: https://download.csdn.net/download/qq_36428822/85709497 实验内容与完成情况: (一)编程实现文件合并和去重操作 对于两个输入文件,即文件 A 和文件 B,请编写 MapReduce 程序,对两个文件进行合并, 并剔除其中重复的内

    2024年02月07日
    浏览(57)
  • 【智能大数据分析】实验1 MapReduce实验:单词计数

    在我之前的一篇博客中:云计算中的大数据处理:尝试HDFS和MapReduce的应用有过类似的操作,具体不会的可以去这篇博客中看看。 基于MapReduce思想,编写WordCount程序。 1.理解MapReduce编程思想; 2.会编写MapReduce版本WordCount; 3.会执行该程序; 4.自行分析执行过程。 MapReduce是一种

    2024年02月07日
    浏览(43)
  • HDFS+ MapReduce 数据处理与存储实验

    了解HDFS的基本特性及其适用场景; 熟悉HDFS Shell常用命令; 学习使用HDFS的Java API,编程实现HDFS常用功能; 了解MapReduce中“Map”和“Reduce”基本概念和主要思想; 掌握基本的MapReduce API编程,并实现合并、去重、排序等基本功能; 实验平台:基于实验一搭建的虚拟机Hadoop大数

    2023年04月23日
    浏览(65)
  • 大数据技术原理与应用实验4——MapReduce初级编程实践

    链接: 大数据技术原理与应用实验1——熟悉常用的HDFS操作 链接: 大数据技术原理与应用实验2——熟悉常用的Hbase操作 链接: 大数据技术原理与应用实验3——NoSQL和关系数据库的操作比较 (1)通过实验掌握基本的MapReduce编程方法; (2)掌握用MapReduce解决一些常见的数据处理

    2024年02月06日
    浏览(55)
  • 《大数据系统与编程》MapReduce程序实现词频统计实验报告

    MapReduce程序实现词频统计            实验目的 1) 理解Hadoop中MapReduce模块的处理逻辑; 2)熟悉MapReduce编程; 实验平台 操作系统:Linux 工具:Eclipse或者Intellij Idea等Java IDE 实验内容 1) 在电脑上新建文件夹input,并input文件夹中创建三个文本文件:file1.txt,file2.txt,file3.tx

    2024年02月09日
    浏览(40)
  • 大数据技术原理及应用课实验5 :MapReduce初级编程实践

    目录 一、实验目的 二、实验平台 三、实验步骤(每个步骤下均需有运行截图) (一)编程实现文件合并和去重操作 (二)编写程序实现对输入文件的排序 (三)对给定的表格进行信息挖掘 四、实验总结 五、优化及改进(选做) 实验5  MapReduce初级编程实践 1. 通过实验掌

    2024年01月21日
    浏览(48)
  • MapReduce分布式计算(二)

    原始数据File 1T数据被切分成块存放在HDFS上,每一个块有128M大小 数据块Block hdfs上数据存储的一个单元,同一个文件中块的大小都是相同的 因为数据存储到HDFS上不可变,所以有可能块的数量和集群的计算能力不匹配 我们需要一个动态调整本次参与计算节点数量的一个单位 切片

    2024年02月11日
    浏览(48)
  • MapReduce分布式计算(一)

    MapReduce是Hadoop系统核心组件之一,它是一种可用于大数据并行处理的计算模型、框架和平台,主要解决海量数据的计算,是目前分布式计算模型中应用较为广泛的一种。 练习: 计算a.txt文件中每个单词出现的次数 通过以上的方式 计算出来了a.txt文件中每个单词出现的次数,

    2024年02月11日
    浏览(49)
  • 实验5 MapReduce初级编程实践(3)——对给定的表格进行信息挖掘

    通过实验掌握基本的MapReduce编程方法; 掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。 操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04) Hadoop版本:3.1.3 下面给出一个child-parent的表格,要求挖掘其中的父子辈关系,给出祖孙辈关系的表格。

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包