基于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
    评论
1. 首先安装Java环境,Hadoop需要Java环境支持,可以使用yum命令安装: ``` yum install java-1.8.0-openjdk-devel.x86_64 ``` 2. 下载Hadoop安装包,可以从官网下载最新版本: ``` wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz ``` 3. 解压Hadoop安装包: ``` tar -zxvf hadoop-3.3.0.tar.gz ``` 4. 配置Hadoop环境变量,在/etc/profile文件中添加以下内容: ``` export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 然后执行以下命令使环境变量生效: ``` source /etc/profile ``` 5. 配置Hadoop分布式模式,修改以下配置文件: - /usr/local/hadoop/etc/hadoop/hadoop-env.sh ``` export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el7_9.x86_64 ``` - /usr/local/hadoop/etc/hadoop/core-site.xml ``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` - /usr/local/hadoop/etc/hadoop/hdfs-site.xml ``` <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop/hadoop_data/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop/hadoop_data/hdfs/datanode</value> </property> </configuration> ``` - /usr/local/hadoop/etc/hadoop/mapred-site.xml ``` <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` - /usr/local/hadoop/etc/hadoop/yarn-site.xml ``` <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>1</value> </property> </configuration> ``` 6. 格式化Hadoop文件系统,执行以下命令: ``` hdfs namenode -format ``` 7. 启动Hadoop服务,执行以下命令: ``` start-all.sh ``` 8. 查看Hadoop服务状态,执行以下命令: ``` jps ``` 如果输出以下内容,则表示Hadoop服务已经启动成功: ``` 12345 NameNode 23456 DataNode 34567 ResourceManager 45678 NodeManager 56789 Jps ``` 9. 访问Hadoop Web界面,打开浏览器,输入以下地址: ``` http://localhost:9870/ ``` 如果能够正常访问,则表示Hadoop分布式安装成功。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值