单机安装 hadoop 环境(Hadoop伪分布式安装)

任务描述:

作为某公司运维工程师,需在单机安装 hadoop 环境(Hadoop伪分布式安装)。本环节需要使用 root用户完成相关配置,具体部署要求如下:

1. 关闭虚拟机防火墙
2. 修改“/etc/hosts”文件,配置IP与主机名映射关系
3. 配置SSH免密登录
4. 解压JDK安装包到“/opt/”路径,并配置环境变量
5. 解压Hadoop安装包到“/opt/”路径,并配置环境变量
6. 修改Hadoop配置文件,并初始化Hadoop
7. 启动Hadoop,并用相关命令查看Hadoop进程启动情况。


答案:

步骤一:关闭防火墙

查看当前CentOS 7的防火墙状态:
显示为running时表示防火墙正在运行,可以通过下面的指令来关闭防火墙,便于之后程序
使用:
然后再次查看防火墙的状态:

步骤二:配置hosts文件

在配置Hadoop等软件的时候,我们需要频繁的指定当前虚拟机的IP地址到配置文件中,为
了方便,可以将虚拟机IP地址映射为自定义的名称(类似于网络中的DNS域名),在之后的
使用中,只需要使用自定义映射名称就可以代表虚拟机的IP地址了。
配置文件的路径为: /etc/hosts
在本次实验中,将当前的虚拟机IP地址映射为 hadoop,之后使用 hadoop 来替代虚拟机IP
地址。
查看当前虚拟机的IP地址:

ifconfig

[root@hadoop ~]# ifconfig (查看主机ip 及相关信息)

查看防火墙状态

[root@hadoop ~]# firewall-cmd --state
running

关闭防火墙

[root@hadoop ~]# systemctl stop firewalld.service

禁止防火墙开机自启动

[root@hadoop ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multiuser.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbusorg.fedoraproject.FirewallD1.service.
[root@hadoop ~]# firewall-cmd --state
not running

步骤三:配置免密登录

Hadoop以分布式方式(包括伪分布式和完全分布式)运行时,一般我们习惯使用 startdfs.sh 或 start-yarn 来启动HDFS和YARN,这些命令的实现:实在当前主机上启动对应
的进程,然后通过 ssh 远程登录的方式登录到其他主机上启动其他进程,在使用 ssh 登录
时,需要指定用户名和密码。如果不配置,会导致在运行程序的时候,频繁的跳出输出密码

打开 /etc/hosts 文件

vim /etc/hosts
的界面,甚至报错。所以需要进行配置免密登录,使得通过 ssh 远程登录时不需要指定密
码。
免密登录实现原理:假设有两台电脑A和电脑B,如果想让电脑A通过 ssh 免密登录到电脑B
上,此时需要 电脑A 先生成 公钥和私钥文件,然后将 私钥文件保存在自己电脑中,将公钥
文件拷贝到电脑B的指定文件中,下次电脑A就可以免密登录到电脑B上了。
生成公钥和私钥文件:
进入到 /root/.ssh/ 目录中,查看生成的公钥和私钥文件:
其中 id_rsa 为私钥文件,id_rsa.pub 为公钥文件。通过下面的指令实现 ssh 免密登录配
置(将公钥文件拷贝到指定的目录中):
ssh-keygen -t rsa
[root@hadoop ~]# cd /root/.ssh/
[root@hadoop .ssh]# ls
id_rsa id_rsa.pub
ssh-copy-id hadoop
第一次访问时,会出现询问信息,直接输入 yes 即可。公钥拷贝时,需要输入 目标主机
hadoop 的登录密码。
测试免密登录是否配置成功:
步骤四:解压JDK、配置环境变量
上传JDK安装包(Linux安装版)到Linux的 /opt 目录中。
使用下面的指令,解压JDK安装包:
[root@hadoop .ssh]# ssh hadoop
Last login: Mon Jun 6 07:23:46 2022 from 192.168.137.99
[root@hadoop ~]# exit
登出
Connection to hadoop closed.
[root@hadoop .ssh]#

进入 /opt 目录

[root@hadoop ~]# cd /opt/
[root@hadoop opt]# ls
jdk-8u11-linux-x64.tar.gz

解压jdk安装文件到 /opt

[root@hadoop opt]# tar -zxf jdk-8u11-linux-x64.tar.gz -C /opt/

解压完成之后,在 /opt/ 目录下有一个 jdk1.8.0_11的目录

[root@hadoop opt]# ls
jdk1.8.0_11
环境变量文件是 /etc/profile文件和/etc/profile.d目录下以.sh结尾的文件。所以,在
/etc/profile.d 目录下创建 mv_env.sh 文件,并添加如下所示的内容
保存退出。然后执行 source /etc/profile 指令,是的配置理解生效。
检查JDK环境变量配置是否生效:
至此环境变量配置成功。
步骤五:解压Hadoop、配置环境变量
上传Hadoop安装包(Hadoop-2.7.3.tar.gz)到Linux的 /opt 目录下。
使用下面的指令解压Hadoop安装包:

**/etc/profile.d 目录下创建并打开 `mv_env.sh` 文件**
[root@hadoop ~]# vim /etc/profile.d/mv_env.sh

配置jdk环境变量

export JAVA_HOME=/opt/jdk1.8.0_11

拼接系统 PATH 路径

export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
[root@hadoop ~]# java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
[root@hadoop ~]# tar -zxvf /opt/hadoop-2.7.3.tar.gz -C /opt/

解压完成之后,在/opt 目录下可以看到 hadoop-2.7.3 目录

[root@hadoop ~]# ls /opt
hadoop-2.7.3 jdk1.8.0_11

配置Hadoop环境变量

在 /etc/profile.d 目录中的 mv_env.sh 文件中将文件内容修改为如下所示的内容:
保存退出。然后执行 source /etc/profile 指令,是的配置理解生效。
检查hadoop环境变量配置是否生效:
步骤六:修改Hadoop配置文件,并初始化
Hadoop的配置文件存储在{HADOOP_HOME}/etc/hadoop/目录中,实际目录为
/opt/hadoop-2.7.3/etc/hadoop/
首先进入配置文件目录路径:
1. 配置 hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_11
export HADOOP_HOME=/opt/hadoop-2.7.3
export
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH:$HOME/b
in
source /etc/profile
[root@hadoop ~]# hadoop version
Hadoop 2.7.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r
baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on 2016-08-18T01:41Z
Compiled with protoc 2.5.0
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /opt/hadoop2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar
[root@hadoop ~]# cd /opt/hadoop-2.7.3/etc/hadoop/
[root@hadoop hadoop]#
保存退出。
2. 配置core-site.xml
保存退出。
3. 配置hdfs-site.xml
#打开hadoop-env.sh文件:
[root@hadoop hadoop]# vim hadoop-env.sh
#在文件的第25行处,编辑文件内容:
export JAVA_HOME=/opt/jdk1.8.0_11 #第25行处

打开core-site.xml文件:

[root@hadoop hadoop]# vim core-site.xml
<!-- 将<Configuration>标签中的内容修改如下所示:-->
<configuration>
<!-- 指定Hadoop使用的文件系统为HDFS,并指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop:9000</value>
</property>
<!-- 指定Hadoop运行时产生的文件存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.3/tmp/</value>
</property>
</configuration>

打开hdfs-site.xml文件:

[root@hadoop hadoop]# vim hdfs-site.xml
<!-- 将<Configuration>标签中的内容修改如下所示:-->
<configuration>
<!-- 指定文件副本数量 -->
<property>

esc+:wq保存退出。

4. 配置mapred-site.xml

mapred-site.xml文件在配置目录中没有,只有mapred-site.xml.template文件,所以需要拷
贝一份:
保存退出。
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 关闭权限检查 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
[root@hadoop hadoop]# cp mapred-site.xml.template mapred-site.xml

打开mapred-site.xml文件:

[root@hadoop hadoop]# vim mapred-site.xml
<!-- 将<Configuration>标签中的内容修改如下所示:-->
<configuration>
<!-- 指定MapReduce程序使用yarn组件协调 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5. 配置yarn-site.xml
保存退出。
6. 初始化HDFS
刚安装好Hadoop之后(或者安装完HDFS),想要使用,在第一次启动Hadoop之前必须要
进行格式化操作,用于生成HDFS文件系统的系统文件。
首先检查在格式化过程中,有没有报错信息。如果没有报错信息,然后检查如下三个地方:

打开yarn-site.xml文件:

[root@hadoop hadoop]# vim yarn-site.xml
<!-- 将<Configuration>标签中的内容修改如下所示:-->
<configuration>
<!-- 指定ResourceManager的主机名 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop</value>
</property>
<!-- 指定map和reduce阶段数据传输使用shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

格式化NameNode:

[root@hadoop ~]# hdfs namenode -format
步骤七:启动Hadoop,查询进程
1. 启动、暂停Hadoop
启动、暂停Hadoop中的所有进程(相当于单独启动HDFS+YARN):
第一次启动Hadoop时,会出现询问信息,直接输入yes即可。
启动、暂停HDFS文件系统:
启动、暂停YARN进程:
2. 查询Hadoop进程
使用 jps 指令可以查询Hadoop进程的启动情况。(只有在安装JDK之后,才可以使用该指
令)

启动测试

启动
[root@hadoop ~]# start-all.sh
暂停
[root@hadoop ~]# stop-all.sh
启动
[root@hadoop ~]# start-dfs.sh
暂停
[root@hadoop ~]# stop-dfs.sh
启动
[root@hadoop ~]# start-yarn.sh
暂停
[root@hadoop ~]# stop-yarn.sh

其中Jps表示Java的进程,只要在系统中安装了JDK,该进程就会显示;NameNode、
DataNode、SecondaryNameNode是HDFS的进程;ResourceManager、NodeManager是
YARN的进程。
出现以上6个进程,表示Hadoop安装、配置成功,如下:

[root@hadoop ~] # jps
Jps
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager

你可能感兴趣的:(hadoop,分布式,linux)