基于CentOS7的Hadoop3.1.3伪分布式配置

本文基于CenOs7操作系统,搭建了Hadoop开发环境


1.创建Hadoop用户

(1)创建hadoop用户

在这里插入图片描述

(2)为hadoop用户增加管理员权限

在这里插入图片描述
在这里插入图片描述

  • 【注】以下软件安装需保证系统处于联网状态

2.安装SSH、配置SSH无密码登陆

(1)检验是否安装SSH

集群、单节点模式都需要用到 SSH 登陆,一般情况下,CentOS 默认已安装了SSH client、SSH server,因此打开终端执行如下命令进行检验即可:
在这里插入图片描述

如上图所示,CentOS7已经默认装好了SSH client、SSH server。

(2)检验SSH是否可用

在这里插入图片描述

(3)设置SSH无密码登陆

1.利用ssh-keygen生成密钥

在这里插入图片描述

2.将密钥加入到授权中

在这里插入图片描述

3.修改文件权限

在这里插入图片描述

4.验证

在这里插入图片描述

如上图所示,设置过后,无需输入密码就可以直接登陆了。

3.安装Java环境

(1)安装JDK

在这里插入图片描述

安装成功:
在这里插入图片描述

注:通过上述命令安装OpenJDK,默认安装位置为/usr/lib/jvm/java-1.8.0-openjdk

(2)配置环境变量

在这里插入图片描述
在这里插入图片描述

(3)令环境变量生效

在这里插入图片描述

(4)检验是否设置正确

如果设置正确的话,$JAVA_HOME/bin/java -version 会输出 java 的版本信息,且和java -version 的输出结果一样,如下图所示:

在这里插入图片描述

4.安装Hadoop 3.1.3

(1)将Hadoop安装至/usr/local/

首先先从官网下载到Linux中,而后解压到/usr/local目录下;

在这里插入图片描述
而后将文件夹改名为hadoop。

在这里插入图片描述

(2)检查Hadoop是否可用

在这里插入图片描述

5.Hadoop伪分布式配置

Hadoop的运行方式是由配置文件决定的(运行Hadoop时会读取配置文件)。
伪分布式虽然只需要配置fs.defaultFS和dfs.replication就可以运行(官方教程如此),不过若没有配置hadoop.tmp.dir参数,则默认使用的临时目录为/tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行format才行。所以以下步骤进行了设置,同时也指定了 dfs.namenode.name.dir和dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

(1)设置Hadoop环境变量

在这里插入图片描述
在这里插入图片描述

令环境变量生效:
在这里插入图片描述

(2)修改Hadoop配置文件

1.修改/usr/local/hadoop/etc/hadoop/中的hadoop-env.sh

在这里插入图片描述

2.修改/usr/local/hadoop/etc/hadoop/中的core-site.xml

在这里插入图片描述
在这里插入图片描述

3.修改/usr/local/hadoop/etc/hadoop/中的hdfs-site.xml

在这里插入图片描述
在这里插入图片描述

4.修改/usr/local/hadoop/etc/hadoop/中的yarn-site.xml(其中的ip为本机IP)

在这里插入图片描述
在这里插入图片描述

5.修改/usr/local/hadoop/etc/hadoop/中的mapred-site.xml

在这里插入图片描述

(3)执行NameNode的格式化

在这里插入图片描述

会返回以下信息(节选):
在这里插入图片描述
在这里插入图片描述

(4)开启NameNode和DataNode守护进程

在这里插入图片描述

启动完成后,可以通过命令jps来判断是否成功启动,若成功启动则会列出如下进程:“NameNode”、”DataNode”和“SecondaryNameNode”
在这里插入图片描述

  • 【注1】以上hadoop启动过程中会遇到以下错误:

--------1.
在这里插入图片描述

解决措施:
在这里插入图片描述

--------2.
在这里插入图片描述

解决措施:
在/usr/local/hadoop/etc/hadoop/中的hadoop-env.sh增加以下信息:
在这里插入图片描述

  • 【注2】启动时可能会出现如下WARN提示:
    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN,提示可以忽略,并不会影响正常使用。若是想解决可以在~/.bashrc中添加如下环境变量:
    在这里插入图片描述

而后令该环境变量生效即可:
在这里插入图片描述

按照以上解决措施做完后,重新启动hadoop就可以得到干净而没有错误的界面了:
在这里插入图片描述

(5)访问Web管理界面

成功启动后,可以访问Web界面http://localhost:9870查看NameNode和Datanode信息,还可以在线查看HDFS中的文件。
在这里插入图片描述

  • 】若是无法进入,可以查看系统防火墙是否开启,若是开启状态,先将防火墙关闭,然后重新进入。另外:Hadoop3.1.3中HDFS为9870,YARN为18088。

6.启动YARN

YARN是从MapReduce中分离出来的,负责资源管理与任务调度。YARN运行于MapReduce之上,提供了高可用性、高扩展性。上述通过./sbin/start-dfs.sh启动Hadoop,仅仅是启动了MapReduce环境,我们可以启动YARN,让YARN来负责资源管理与任务调度。
启动之前需要修改mapred-site.xml和yarn-site.xml两个配置文件,在前面已经配置过了,所以这里直接启动:
在这里插入图片描述

7.运行Hadoop伪分布式实例

伪分布式读取的则是HDFS上的数据。要使用HDFS,则需按以下步骤进行:

(1)在HDFS中创建用户目录

在这里插入图片描述

  • 【注】“./bin/hadoop dfs”开头的Shell命令方式,实际上有三种shell命令方式。hadoop fs,hadoop dfs,hdfs dfs。hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统hadoop dfs只能适用于HDFS文件系统hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统

(2)将文件上传至HDFS

将./etc/hadoop中的xml文件作为输入文件复制到分布式文件系统中,即将/usr/local/hadoop/etc/hadoop复制到分布式文件系统中的/user/hadoop/input中。
在这里插入图片描述

(3)查看HDFS中的文件列表

在这里插入图片描述

(4)将结果输出到output文件夹

将input文件夹中的所有文件作为输入,筛选当中符合正则表达式dfs[a-z.]+的单词并统计出现的次数,最后输出结果到output文件夹中:
在这里插入图片描述

  • 【注】以上伪分布式运行MapReduce作业时会出现以下错误:

------1.failed on connection exception: java.net.ConnectException: 拒绝连接
在这里插入图片描述

解决措施:
出现以上情况是由于没有启动YARN的resourcemanager,所以为了以防出现上述错误,直接在运行MapReduce作业之前先将YARN启动,这样后就不会在出现以上错误了。
在这里插入图片描述

------2.org.apache.hadoop.mapreduce.v2.app.MRAppMaster错误:找不到或无法加载主类
解决措施:
在这里插入图片描述

在hadoop/etc/hadoop/yarn-site.xml添加以下:
在这里插入图片描述

(5)运行结果取回到本地

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值