Hadoop(CentOS)安装及MapReduce实现数据去重

news2024/10/6 6:40:32

Hadoop(CentOS)安装及MapReduce实现数据去重

1. JDK安装

1.1 资源下载:

  • 下载地址:https://pan.quark.cn/s/17d7266205f9

    • hadoop的安装 包

    • java jdk安装包

    • eclipse连接hadoop工具

  • 所学其他工具可自行在官网下载

    • centos下载地址:https://www.centos.org/centos-linux/
    • Vmware虚拟机官网下载地址:
      • Vmware下载:https://www.vmware.com/products/workstation-pro.html
      • 下载之后安装完成,到输入密钥的地方时候,可以直接在百度上搜一个,超简单的啦!

1.2 虚拟机网络配置

Vmware配置及 xshell连接:https://zjxweb.github.io/#/techBlog/vmware/

  1. 先输入ip addr 查看ip的内容,发现没有ip 地址,所以进行ip的配置。需要先关闭网络管理器,之后要开启网络。请添加图片描述

  2. 在编辑中找到虚拟网络编辑器,查看ip 地址的范围,查看子网掩码以及网关。

请添加图片描述
请添加图片描述
![请添加图片描述](https://img-blog.csdnimg.cn/a82486e822d34ff3a01627853cbf3b34.png请添加图片描述

  1. 输入命令,修改相关配置

    • vim /etc/sysconfig/network-scripts/ifcfg-ens33 
      

请添加图片描述

 > 上面图片由于截图时间问题,有些对不上,各位按照自己的配置来!!!!
  • 设置完成之后,开启网络,输入ip addr查看ip地址,发现ip地址已经有了,之后ping www.baidu.com 查看是否可以连接外网。(暂停 Ctrl+Z)

1.2.1 防火墙关闭

  • [zjx@localhost ~] systemctl stop firewalld
    [zjx@localhost ~] systemctl disable firewalld.service
    

1.3 JDK安装

1.3.1 卸载虚拟机自带的JDK

  • 注意:如果你的虚拟机是最小化安装不需要执行这一步。

  • [zjx@localhost ~] rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps 
    
    • rpm -qa:查询所安装的所有rpm软件包
    • grep -i:忽略大小写
    • xargs -n1:表示每次只传递一个参数
    • rpm -e –nodeps:强制卸载软件
  • 如果没有rpm请安装

    • [zjx@localhost ~] yum install rpm
      
  • 重启虚拟机

    • [zjx@localhost ~] reboot
      

1.3.2 使用 rz从xshell上传所需的包

lrzsz这个软件,可以让我们直接从linux上,下载和上传文件的操作
yum install -y lrzsz

1.3.3 JDK安装过程

  1. 新建目录(按自己的来)

    cd /home
    mkdir software && cd software
    rz
    上传包到此目录下
    
  2. 解压

    [zjx@localhost software]$ tar zxvf jdk-8u171-linux-x64.tar.gz 
    
  3. .新建/etc/profile.d/my_env.sh文件

    sudo vim /etc/profile.d/my_env.sh
    
  4. 添加如下内容

    #JAVA_HOME
    export JAVA_HOME=/home/software/jdk1.8.0_171
    export PATH=$PATH:$JAVA_HOME/bin
    
  5. source一下/etc/profile文件,让新的环境变量PATH生效

    source /etc/profile
    
  6. 测试JDK是否安装成功

    java -version
    

在这里插入图片描述

2. Hadoop安装

# 切换到software目录
cd /home/software
rz #上传hadoop
[root@localhost software]# tar zxvf hadoop-2.7.7.tar.gz
  • 将Hadoop添加到环境变量

    1. 将Hadoop添加到环境变量

      sudo vim /etc/profile.d/my_env.sh
      
    2. 在my_env.sh文件末尾添加如下内容

      export HADOOP_HOME=/home/software/hadoop-2.7.7
      export PATH=$PATH:$HADOOP_HOME/bin
      export PATH=$PATH:$HADOOP_HOME/sbin
      
    3. source一下/etc/profile文件,让新的环境变量PATH生效

      source /etc/profile
      
    4. 测试是否安装成功

      [root@localhost software]# hadoop version
      Hadoop 2.7.7
      
    5. hadoop 目录介绍

      • bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
      • etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
      • lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
      • sbin目录:存放启动或停止Hadoop相关服务的脚本
      • share目录:存放Hadoop的依赖jar包、文档、和官方案例

3. Hadoop运行模式

  • Hadoop官方网站:http://hadoop.apache.org
  • Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
    • 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
    • 伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
    • 完全分布式模式:多台服务器组成分布式环境。生产环境使用。

4. hadoop伪分布式配置

  • 接下来是hadoop伪分布式配置。Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

  • Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

cd /home/software/hadoop-2.7.7/etc/hadoop
vim core-site.xml
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

注意:这里可能会报权限错误的问题,所以说我们要分配权限

cd /home/software/hadoop-2.7.7/etc/hadoop
chmod +w core-site.xml
  • 接着配置hdfs文件
cd /home/software/hadoop-2.7.7/etc/hadoop
vim hdfs-site.xml
chmod +w core-site.xml
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>
  • Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,

  • 需要删除 core-site.xml 中的配置项。

  • 配置完成后,执行 NameNode 的格式化:

    cd /home/software/hadoop-2.7.7
    ./bin/hdfs namenode -format
    
  • 接着开启 NameNode 和 DataNode 守护进程。

cd /home/software/hadoop-2.7.7
./sbin/start-dfs.sh
  • 或者使用all来开启/结束hadoop全部进程

    cd /home/software/hadoop-2.7.7
    ./sbin/start-all.sh
    ./sbin/stop-all.sh
    
  • 启动完成后,可以通过命令 jps 来判断是否成功启动

    jps
    

在这里插入图片描述

5. Linux系统下eclipse中配置Hadoop插件

  • rz工具将下载好的 hadoop-eclipse-plugin-2.7.3 传输到eclipse目录下的plugins文件夹下即可.

5.1 开始配置

  1. cd到eclipse目录下,输入命令./eclipse 打开eclipse

    • eclipse安装简单说明一下吧

      下载-> 解压-> cd 进去解压的目录 -> ./eclipse

  2. 依次点击:顶部菜单栏的Window → Open Perspective → Other…→ Map/Reduce → OK 出现如下界面即说明操作正确

在这里插入图片描述

  1. 如果打开eclipse是该界面,点击图中指向的按钮即可

在这里插入图片描述

  1. 接着点击Map/Reduce Locations,在下方空白处单击右键 → 点击New Hadoop location…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V0bxGere-1686796551430)(./src/10.png)]

自定义一个Location name,接着将Host中的内容修改为你的master节点的IP地址,右边的Port改为9000 (这是因为在你的core-site.xml配置文件中配置的端口号为9000)

  1. 然后点击上图中黑色箭头指向的Advanced parameters,出现如下界面,滚动鼠标滚轮下拉找到 hadoop.tmp.dir,修改后面的路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HNDFkrmj-1686796551430)(./src/11.png)]

找hadoop.tmp.dir路径的方法:
打开一个新的终端,cd到(以笔者为例)cd /home/software/hadoop-2.7.7/etc/hadoop/ 路径下面,输入命令vim core-site.xml 打开配置文件,就可以找到你的hadoop.tmp.dir相应的路径

  • 完成后点击finish即可,若出现类似如下界面,则说明成功了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-95KEqVlT-1686796551431)(./src/12.png)]

:在这之前要先将Hadoop集群启动,否则将会失败

6. MapReduce实现数组去重

  • [root@localhost zjx]# cd /home/software/hadoop-2.7.7/
    vim file1.txt
    vim file2.txt
    
  • file1.txt

    • 2012-3-1 a
      2012-3-2 b
      2012-3-3 c
      2012-3-4 d
      2012-3-5 a
      2012-3-6 b
      2012-3-7 c
      2012-3-3 c
      
  • file2.txt

    • 2012-3-3 b
      2012-3-4 d
      2012-3-5 a
      2012-3-6 c
      2012-3-7 d
      2012-3-3 c
      

6.1 开始啦

  • 先在HDFS创建DateRemove文件夹

  • cd /home/software/hadoop-2.7.7/
    ./bin/hdfs dfs -mkdir /user/hadoop/DateRemove # 如果报错请运行这个 ./bin/hdfs dfs -mkdir -p /user/hadoop/DateRemove
    
  • 用ls查看文件是否创建成功

./bin/hdfs dfs -ls /user/hadoop

+ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oHx4Q53D-1686796551431)(./src/13.png)]

  • 在HDFS下创建一个名称为DateRemove/input的目录

    • ./bin/hdfs dfs -mkdir /user/hadoop/DateRemove/input
      
  • 将file1.txt和file2.txt传到hdfs的/user/hadoop/DateRemove/input文件夹中

    • ./bin/hdfs dfs -put ./file1.txt  /user/hadoop/DateRemove/input
      ./bin/hdfs dfs -put ./file2.txt  /user/hadoop/DateRemove/input
      ./bin/hdfs dfs -ls  /user/hadoop/DateRemove/input
      

    + [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZzBS54mh-1686796551431)(./src/14.png)]

6.2 在Linux下的eclipse中创建一个MapReduce工程

6.2.1 开始创建MapReduce

  1. 配置Hadoop路径

    • 依次点击:顶部菜单栏的Window → Preferences,出现如下界面:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fhDc1JQJ-1686796551431)(./src/15.png)]

选择左边的 Hadoop Map/Reduce,点击右边Browse…,选择Hadoop文件夹的路径即可

  1. 创建工程
    依次点击:顶部菜单栏的File → New → Project,出现如下界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j0VpJ9FE-1686796551432)(./src/16.png)]

选择Map/Reduce Project,点击右下方 Next> 然后输入项目名称wordcount,点击右下方 Next>,再点击Finish,创建项目。此时插件会把hadoop根目录和lib目录下的所有jar包自动导入

  1. 按照如下目录创建你自己的目录

"E:\study\zjxWeb.github.io\docs\techBlog\hadoop\src\17.png"

  1. DedupMapper.java
package Data_De_duplication;

import java.io.IOException;

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

public class DedupMapper extends Mapper<LongWritable, Text, Text, NullWritable> {

    private static Text field = new Text();  

    @Override  
    protected void map(LongWritable key, Text value, Context context)  
            throws IOException, InterruptedException {  

        field = value;  
        context.write(field, NullWritable.get());  

    }  

}
  1. DedupReducer.java
package Data_De_duplication;

import java.io.IOException;

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

public class DedupReducer extends Reducer<Text, NullWritable, Text, NullWritable>{
    @Override  
    protected void reduce(Text key, Iterable<NullWritable> values,  
            Context context) throws IOException, InterruptedException {  

        context.write(key, NullWritable.get());  

    }  

}
  1. DedupRunner.java
package Data_De_duplication;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.NullWritable;
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 DedupRunner {
    public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf);

        job.setJarByClass(DedupRunner.class);

        job.setMapperClass(DedupMapper.class);
        job.setReducerClass(DedupReducer.class);

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

        FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/DateRemove/input"));
        
        // 指定处理完成之后的结果所保存的位置
        FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/DateRemove/output"));

        job.waitForCompletion(true);

    }
}

  1. 点击刚创建的DedupRunner.java,选择Run As -> Run Configurations,设置运行时的相关参数如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h0i1zcpr-1686796551432)(./src/18.png)]

  1. run起来吧

在这里插入图片描述

在这里插入图片描述

hdfs://localhost:9000/user/hadoop/DateRemove/input
hdfs://localhost:9000/user/hadoop/DateRemove/output
  1. 结果

请添加图片描述

参考链接(感谢各位大佬的博客)

  1. Hadoop集群的配置:https://blog.csdn.net/qq_54542910/article/details/127366061

  2. 虚拟机安装Hadoop https://blog.csdn.net/qq_54542910/article/details/127364777?spm=1001.2014.3001.5501

  3. Hadoop 安装与配置:https://blog.csdn.net/weixin_43571612/article/details/129168659

  4. 大数据之Hadoop3.x 运行环境搭建(手把手搭建集群):https://blog.csdn.net/yuan2019035055/article/details/120901871

  5. 大数据之Hadoop学习(十二)对数据文件中的数据进行去重基于(MapReduce编程):https://blog.csdn.net/qq_42585108/article/details/105982486?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-105982486-blog-40559781.235v38pc_relevant_anti_vip&spm=1001.2101.3001.4242.1&utm_relevant_index=3

  6. Linux系统下eclipse中配置Hadoop插件:https://blog.csdn.net/hxhRxz/article/details/105030871?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-105030871-blog-49561361.235v38pc_relevant_anti_vip&spm=1001.2101.3001.4242.1&utm_relevant_index=3

  7. 在Linux下的eclipse中创建一个MapReduce工程:https://blog.csdn.net/hxhRxz/article/details/105053119?spm=1001.2014.3001.5502

  8. Centos之上传下载命令rz和sz-yellowcong:https://dandelioncloud.cn/article/details/1530902039366483969

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

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

相关文章

Verilog 高级知识点

目录 Verilog 高级知识点 1、阻塞赋值&#xff08;Blocking&#xff09; 2、非阻塞赋值&#xff08;Non-Blocking&#xff09; 3 、assign 和 always 区别 4、什么是 latch Verilog 高级知识点 本节给大家介绍一些高级的知识点。高级知识点包括阻塞赋值和非阻塞赋值、assi…

合宙Air724UG Cat.1模块硬件设计指南--ADC接口

ADC接口 简介 ADC(Analog-to-Digital Converter) 指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。 合宙Cat.1模块ADC接口主要用来检测模拟电压信号量&#xff0c;用于电池电压检测&#xff0c;温湿度检测&#xff0c;TDS检测等应用。 特性 ADC精度&#…

华为OD机试真题 JavaScript 实现【素数之积】【2022Q4 100分】

一、题目描述 RSA加密算法在网络安全世界中无处不在&#xff0c;它利用了极大整数因数分解的困难度&#xff0c;数据越大&#xff0c;安全系数越高。 给定一个32位正整数&#xff0c;请对其进行因数分解&#xff0c;找出是哪两个素数的乘积。 二、输入描述 一个正整数num …

【自动文摘】BART实现finetune及evaluate

文章目录 BART介绍下游任务 fine tune BART介绍 我最近在看自动文摘相关的预训练模型&#xff0c;BART模型是2019-2020左右提出来的&#xff0c;首先介绍下它的基本情况。 论文&#xff1a;https://arxiv.org/abs/1910.13461 github&#xff1a; fairseq例子&#xff1a;http…

Efficient Global 2D-3D Matching for Camera Localization in a Large-Scale 3D Map

文章目录 Efficient Global 2D-3D Matching for Camera Localization in a Large-Scale 3D Map1. 相似源码choose_solution.pyeight_point.pyepipolar_match.py Efficient Global 2D-3D Matching for Camera Localization in a Large-Scale 3D Map 1. 相似源码 由于paper并没…

ChatGPT带火的提示工程师,构造自己的提示语

ChatGPT是一个大语言模型&#xff0c;学过全球几乎公开的大部分有效知识库&#xff0c;它什么都懂。 ChatGPT的风靡&#xff0c;爆火了一个年薪百万的提示工程师这个新就业岗位。 提示工程师&#xff0c;也就是AI训练师&#xff0c;即通过与AI交互写出相关提示&#xff0c;以帮…

Spring Boot进阶(48):SpringBoot之集成WebSocket及使用说明 | 超级详细,建议收藏

1. 前言&#x1f525; 对于很多小伙伴来说&#xff0c;项目现在都普遍前后端分离&#xff0c;各干各的事儿&#xff0c;在前后端进行服务调用才会有大面积的碰头&#xff0c;后端接口数据格式发生变更要通知前端&#xff0c;相反&#xff0c;前端有变化要告诉后端&#xff0c;这…

【这小文章绝了!】一文看穿,MATLAB | 数组与矩阵超详细入门进阶必须看

目录 介绍 一、数组的创建和操作 通过 : 创建一维数组 通过logspace函数创建一维数组 通过linspace函数创建一维数组 二、数组的运算 数组的关系运算 数组的逻辑运算 三、矩阵 矩阵的构造 矩阵的下标引用 矩阵大小 四、矩阵元素的运算 矩阵的差分 矩阵运算 矩阵…

Spring Boot进阶(50):Spring Boot如何全局统一处理异常?| 超级详细,建议收藏

1. 前言&#x1f525; 今天和大家讨论的是Spring Boot如何统一处理异常。这里先说一下我们为什么需要全局统一处理异常&#xff1f;其实理由很简单&#xff0c;因为程序在运行的过程中&#xff0c;不可避免会产生各种各样的错误。比如说用户传过来的参数不正确&#xff0c;无法…

4端到端协议-4.2【实验】【计算机网络】

4端到端协议-4.2【实验】【计算机网络】 前言推荐4端到端协议4.2 TCP协议流捕获与TCP协议分析实验目的实验内容及实验环境实验原理实验过程实验过程演示 4.2.1实验章节测验一.单选题&#xff08;共5题,25.0分&#xff09;二.阅读理解&#xff08;共1题,70.0分&#xff09;三.填…

xxl-job核心源码解析

xxl-job源码解析 如何自研一个xxljob 注册服务调度服务RPC组件(基建&#xff0c;底层严重依赖)日志服务告警服务 系统架构 执行流程 各大调度中心对比 1&#xff09;服务端启动流程 首先找到配置类 XxlJobAdminConfig 可以发现该类实现 InitializingBean接口&#xff0c;…

openpose保姆级教程代码详细解析——训练部分

一&#xff1a;前言 OpenPose是一个基于深度学习的人体姿势估计库&#xff0c;它可以从图像或视频中准确地检测和估计人体的关键点和姿势信息。OpenPose的目标是将人体姿势估计变成一个实时、多人、准确的任务。它的原理部分已经在上一篇非常详细的讲解了——本节介绍训…

Dynamic .NET TWAIN 8.3.3 for NetCore Crack

用于 WinForms 和 WPF 应用程序的扫描仪和网络摄像头捕获 SDK 适用于 .NET 应用程序的简单高效的扫描和网络摄像头 SDK Dynamsoft 的 Dynamic .NET TWAIN 是一个基于 TWAIN 和 DirectShow 标准的 .NET 文档成像 SDK。它为扫描仪和网络摄像头软件开发提供了丰富、高效且…

修改依赖包下的子依赖版本,前端项目安全扫描出来的漏洞——解决过程

为什么要升级&#xff0c;如图云桌面&#xff08;相当于堡垒机-远程桌面&#xff09;的项目审查是大概基于node16版本进行扫描的&#xff0c;本来我方是通过降版本从14到12绕过大范围更新&#xff0c;但现在躲得过初一躲不过十五&#xff0c;如何更新 package-lock.json 中的一…

DAY24:二叉树(十四)二叉搜索树中的插入操作+删除二叉搜索树中的节点(二叉树结构修改难点)

文章目录 701.二叉搜索树中的插入操作思路递归法如何保证连接的节点就是空节点的父节点&#xff1f; 迭代法迭代法注意debug测试 450.删除二叉搜索树中的节点&#xff08;坑较多&#xff0c;注意复盘&#xff09;思路最开始的写法debug测试1.使用了释放后的空间ERROR: AddressS…

通知!2023年湖北住建厅七大员新考和继续教育要求有变化了?启程别

通知&#xff01;2023年湖北住建厅七大员新考和继续教育要求有变化了&#xff1f;启程别 湖北住建厅七大员新考以及继续教育的相关要求都即将有一些变化了目前在征集意见的阶段&#xff0c;具体实施等后续具体通知 对于新考的变化主要是&#xff1a; 1.由原先报名之后只需要完成…

Vue中如何进行颜色选择与调色板

Vue中如何进行颜色选择与调色板 颜色选择和调色板是Web开发中常用的功能&#xff0c;它们可以帮助用户选择或调整颜色。Vue作为一个流行的JavaScript框架&#xff0c;提供了一些工具和库&#xff0c;可以方便地实现颜色选择和调色板功能。本文将介绍如何在Vue中进行颜色选择和…

【aspose-words】Aspose.Words for Java模板语法详细剖析

文章目录 前言&#x1f34a;缘由aspose-words模板语法再了解 &#x1f3af;主要目标实现3大重点 &#x1f381;快速链接&#x1f348;猜你想问如何与狗哥联系进行探讨1.关注公众号【JavaDog程序狗】2.踩踩狗哥博客 &#x1f36f;猜你喜欢文章推荐 正文&#x1f34b;aspose-word…

mfc140.dll丢失的解决方法,解析mfc140.dll这个文件

其实大部分人在使用计算机过程中&#xff0c;您可能会遇到mfc140.dll丢失的错误提示。这个错误会导致一些应用程序无法正常运行&#xff0c;那么要如何解决这个问题呢&#xff1f;今天小编就来给大家详细的解析mfc140.dll这个文件以及教大家 mfc140.dll丢失的解决方法。 目录 …

【算法与数据结构】349、LeetCode两个数组的交集

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;使用了一个哈希数组记录nums1出现的数字&#xff0c;然后遍历nums2&#xff0c;找到hash数组为1的值就…