CentOS 7 系统虚拟机之搭建伪分布式Hadoop环境(超级完整版 没有之一)

完全分布式Hadoop的搭建,请见链接: link.
https://blog.csdn.net/qq_45720792/article/details/107299423

以下所有在终端上执行的操作均在root用户下完成!!!
su - //带环境配置文件切换为root用户

一、建立虚拟机

在VMware中新建1台虚拟机
1、主机名:hadp
2、镜像文件:Centos7
链接: link.
(https://pan.baidu.com/s/1pqGMlRwC-t5Qp5YF-aowuA 提取码:w3du)
3、内存建议为4G,CPU建议为2核
4、网络连接:NAT
5、记录各虚拟机IP
ip addr //适用于Centos7以上版本
ipconfig //适用于Centos7以下版本

二、配置静态网卡(IP)

虚拟机每次开机时都有可能更改IP,我们在搭建项目时,虚拟机的IP是不可以改变的。

vi /etc/sysconfig/network-scripts/ifcfg-ens33 //编辑网卡文件
该图是一个未修改的网卡文件(即默认网卡文件)

1、将BOOTPROTO的值(默认是dhcp)修改为static,即静态地址
2、添加IPADDR(IP地址)、NETMASK(子网掩码)、GATEWAY(网关)
IPADDR="192.168.137.152"
NETMASK="255.255.255.0"
GATEWAY="192.168.137.2"
DNS1=114.114.114.114
DNS2=119.29.29.29

vim操作不熟练的小可爱们,见链接: link.(https://blog.csdn.net/qq_45720792/article/details/107300929)

IPADDR:我们可以设置该虚拟机现在时刻的IP,此作用是保持该虚拟机IP不发生改变(查询IP的命令上文已提到);我们也可以设置一个我们想要的IP,便于理解和记忆(前提是该IP必须有效且未被占用)
NETMASK、GATEWAY:可以打开VMware→编辑→虚拟网络编辑器(→NET设置),进行查看(NETMASK、GATEWAY要与虚拟机的配置保持一致)

我们将ifcfg-ens33文件编辑后,如下:

3、重启网卡
service network restart //重启网卡,使设置生效

三、配置host文件

vi /etc/hosts在四台虚拟机上编辑hosts文件
该图是一个未修改的host文件(即默认host文件)

我们在hosts文件中增加以下内容:

192.168.137.100 hadp

我们将host文件编辑后,如下:

四、配置防火墙

systemctl status firewalld.service 查看防火墙状态
active(running) 防火墙为开启状态
inavtive(dead) 防火墙为关闭状态
systemctl disable firewalld.service禁止防火墙服务器
再次查看防火墙状态,确保为disavtive(dead)
reboot 重启CentOS系统,即时生效

防火墙为开启状态

防火墙为开启状态

五、Centos系统—jdk的安装

1、下载jdk

Windows系统中下载jdk文件

jdk-8u73-linux-x64.tar.gz
链接1: link.(https://pan.baidu.com/s/1cna38PQykYN03Hy_bUZ9pw 提取码:a42v)
链接2(oracle官网下载): link.(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

2、上传jdk

创建目录(置放安装文件)
mkdir -p /home/root/apps //在root目录下创建apps文件夹

将Windows系统中下载好的jdk-8u73-linux-x64.tar.gz上传至/home/root目录下

禁止!!!:此处严禁通过VMware tools工具,从Windows系统中将jdk安装包文件直接拖拽至虚拟机中,这个方法传输的文件很有可能都不完整,在解压的过程中将会出现如下异常提示

tar: 归档文件中异常的 EOF
tar: 归档文件中异常的 EOF
tar: Error is not recoverable: exiting now

这种方法通过后续的安装步骤,尽管jdk安装成功了,但显示的版本却是openjdk(Centos自带的jdk),这种情况就是安装出错,后续启动hadoop时将会出现路径上的问题

解决方法:使用Xftp上传jdk文件
链接: link.(https://pan.baidu.com/s/1oHCoCmxxLuTiE4JOyVZE6w 提取码:ntsi)

3、安装jdk

cd /home/root //进入root目录
tar -zxvf jdk-8u73-linux-x64.tar.gz -C apps // 将jdk解压至指定目录中(/home/root/apps)

4、配置jdk环境变量

vi /etc/profile //编辑/etc/profile文件
在文件的末尾设置JAVA环境变量(添加以下语句)
export JAVA_HOME=/home/root/apps/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
(jdk1.8.0_73,可在/home/root/apps路径下查看jdk的版本号,即文件夹名)

vim操作不熟练的小可爱们,见链接: link.(https://blog.csdn.net/qq_45720792/article/details/107300929)

source /etc/profile // 让修改后的/etc/profile文件立即生效
java -version //查看jdk版本信息
若版本信息与安装包一致,则安装成功

番外篇:

如果安装成openjdk,如何再调试为想要安装的jdk版本jdk1.8.0_73(即上传安装包的jdk版本)

1、查看jdk版本信息
java -version //查看jdk版本信息

此时显示的版本为:openjdk1.8.0_102
2、查找openjdk相关文件
rpm -qa |grep java //查出openjdk相关的文件

如图,我们可以看到相关文件有4个:

java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64

3、删除openjdk
rpm -e --nodeps+文件名 //删除该文件
把这4个openjdk都删除:
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64

4、查看jdk版本信息
java -version //查看jdk版本信息

此时,显示没有安装jdk

5、重新安装
我们将/home/root/apps/目录下的jdk1.8.0_73文件夹删除,可以用Xftp删除(可能会有残留,不过没事,我们重新解压时会覆盖它)
cd /home/root //进入root目录(若在该目录内,忽略该步)
tar -zxvf jdk-8u73-linux-x64.tar.gz -C apps // 将jdk重新解压至指定目录中(/home/root/apps)
source /etc/profile // 刷新/etc/profile文件
java -version //查看jdk版本信息
若版本信息与安装包一致,则安装成功

六、Centos系统—hadoop的安装

1、安装wget

yum install wget

2、下载hadoop安装包

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

3、安装hadoop

tar -xzvf hadoop-2.7.7.tar.gz -C /home/root/apps //将hadoop安装包解压到目录(apps)中
cd /home/root/apps //进入apps目录

4、配置Hadoop环境变量

vi /etc/profile //编辑/etc/profile文件
在文件的末尾设置JAVA环境变量(添加以下语句)
export HADOOP_HOME=/home/root/apps/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

vim操作不熟练的小可爱们,见链接: link.(https://blog.csdn.net/qq_45720792/article/details/107300929)

source /etc/profile // 让修改后的/etc/profile文件立即生效
hadoop //检查是否安装成功

七、配置SSH免密登录

生成公私钥

ssh-keygen -t rsa //生成公私钥
按三次回车键

执行完毕后,将在用户主目录下生成.ssh文件夹,其中包括公私钥文件。

发送公私钥

把公钥发送到服务器端(发送前要保证虚拟机服务器已通过root用户登录)
ssh-copy-id -i ~/.ssh/id_rsa.pub hadp //把公钥发送到hadp01

八、Hadoop集群配置

cd /home/root/apps/hadoop-2.7.7/etc/hadoop //进入工作目录

core-site.xml

vi core-site.xml //修改core-site.xml文件

该图是一个未修改的core-site.xml文件(即默认core-site.xml文件)

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadp:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/root/apps/hadoop-2.7.7/tmp</value>
</property>

修改后的效果图:

hdfs-site.xml

vi hdfs-site.xml //修改vi hdfs-site.xml文件

该图是一个未修改的hdfs-site.xml文件(即默认hdfs-site.xml文件)

 <property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.name.dir</name>
    <value>/root/hdfs/name</value>
</property>
<property>
    <name>dfs.data.dir</name>
    <value>/root/hdfs/data</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadp:50090</value>
</property>
<property>
    <name>dfs.namenode.secondary.https-address</name>
    <value>hadp:50091</value>
</property>

修改后的效果图:

mapred-site.xml

cp mapred-site.xml.template mapred-site.xml //根据模板创建mapred-site.xml文件
vi mapred-site.xml //修改mapred-site.xml文件

该图是一个未修改的mapred-site.xml文件(即默认mapred-site.xml文件)

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

修改后的效果图:

yarn-site.xml

vi yarn-site.xml //修改yarn-site.xml文件

该图是一个未修改的yarn-site.xml文件(即默认yarn-site.xml文件)

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadp</value>
</property>

修改后的效果图:

hadoop-env.sh

vi hadoop-env.sh //修改hadoop-env.sh文件

该图是一个未修改的hadoop-env.sh文件(即默认hadoop-env.sh文件)

将默认的export JAVA_HOME=${JAVA_HOME}
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_73

修改后的效果图:

yarn-env.sh

vi yarn-env.sh //修改yarn-env.sh文件

该图是一个未修改的hadoop-env.sh文件(即默认hadoop-env.sh文件)

将默认的# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_73
别忘记删除这一行最前面的#

修改后的效果图:

九、Hadoop的格式化与启动

格式化

cd /home/root/apps/hadoop-2.7.7/ //进入至hadoop目录下
bin/hadoop namenode -format //格式化namenode

hadoop version //查看Hadoop版本信息

启动

sbin/start-all.sh //启动Hadoop

在Windows中启动浏览器查看运行情况(即使用外网查询,IP+端口号)

YARN

YARN的Web端口号是8088
http://192.168.137.153:8088/

HDFS

HDFS的Web端口号是50070
http://192.168.137.153:50070/

常见错误:可以打开YARN或HDFS任意一端口,但另外一个无法打开,输入jps时,也可以看见相应的节点未开启
解决方法:重新格式化并重启

jps

jps //查看各个虚拟机节点启动的状况

十、Hadoop的停止

sbin/stop-all.sh //停止Hadoop

完全分布式Hadoop的搭建,请见链接: link.
https://blog.csdn.net/qq_45720792/article/details/107299423


版权声明:本文为qq_45720792原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。