Centos7 安装Hadoop3 单机版本(伪分布式版本)

Posted 在奋斗的大道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7 安装Hadoop3 单机版本(伪分布式版本)相关的知识,希望对你有一定的参考价值。

环境版本

  • CentOS-7

  • JDK-8

  • Hadoop-3

CentOS-7 服务器设置

  1. 设置静态IP

查看IP配置在/etc/sysconfig/network-scripts/目录下的ifcfg-ens33文件中。

[root@Hadoop3-master sbin]# cd /etc/sysconfig/network-scripts
[root@Hadoop3-master network-scripts]# ll
总用量 232
-rw-r--r--. 1 root root   364 2月  12 2023 ifcfg-ens33
-rw-r--r--. 1 root root   254 5月  22 2020 ifcfg-lo
lrwxrwxrwx. 1 root root    24 2月  12 00:49 ifdown -> ../../../usr/sbin/ifdown
-rwxr-xr-x. 1 root root   654 5月  22 2020 ifdown-bnep
-rwxr-xr-x. 1 root root  6532 5月  22 2020 ifdown-eth
-rwxr-xr-x. 1 root root   781 5月  22 2020 ifdown-ippp
-rwxr-xr-x. 1 root root  4540 5月  22 2020 ifdown-ipv6

编辑 ifcfg-ens33 文件,配置静态IP

[root@Hadoop3-master network-scripts]# vi ifcfg-ens33

打开后,按 i 进入可编辑状态,将下面标红的进行修改或新增操作,

修改完成后,按ctrl+c退出可编辑状态,然后输入:wq保存退出,:q!不保存退出

重置网络

service network restart

查看当前IP地址

[root@Hadoop3-master network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:14:9a:83 brd ff:ff:ff:ff:ff:ff
    inet 192.168.43.11/24 brd 192.168.43.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::822:732d:a0e4:134a/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

修改 IP 地址后可能会遇到的问题

(1)物理机能 ping 通虚拟机,但是虚拟机 ping 不通物理机,一般都是因为物理机的防火墙问题,把防火墙关闭就行

(2)虚拟机能 Ping 通物理机,但是虚拟机 Ping 不通外网,一般都是因为 DNS 的设置有问题

(3)虚拟机 Ping www.baidu.com 显示域名未知等信息,一般查看 GATEWAY 和 DNS 设置是否正确

解决网络不通

编辑VMware设置网络,编辑→虚拟网络编辑器

重新启动虚拟机,检查虚拟机与物理主机是否能够ping通。

  1. 修改主机名

查看主机名

[root@Hadoop3-master network-scripts]# hostname
localhost

修改主机名

[root@Hadoop3-master network-scripts]# hostnamectl set-hostname Hadoop3-master
[root@Hadoop3-master network-scripts]# hostname
Hadoop3-master
  1. 关闭防火墙

[root@Hadoop3-master network-scripts]# systemctl start firewalld.service  #开启防火墙
[root@Hadoop3-master network-scripts]# systemctl restart firewalld.service #重启防火墙
[root@Hadoop3-master network-scripts]# systemctl stop firewalld.service #关闭防火墙
[root@Hadoop3-master network-scripts]# systemctl status firewalld.service # 防火墙状态

为了防止防火墙干挠,可以使用如下指令关闭防火墙

[root@Hadoop3-master network-scripts]# systemctl stop firewalld.service #关闭防火墙
[root@Hadoop3-master network-scripts]# systemctl disable firewalld.service # 开机禁用防火墙
  1. 禁用selinux

如果要永久关闭selinux 安全策略,可以修改/etc/selinux/config, 将SELINUX=enforcing 修改为SELINUX=disabled.

[root@Hadoop3-master network-scripts]# vi /etc/selinux/config
[root@Hadoop3-master network-scripts]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
  1. 设置SSH免密登入

Hadoop 各组件之间使用SSH登录,为了免密输入,可以设计SSH免密登录。详细步骤如下:

[root@Hadoop3-master network-scripts]# cd /root/.ssh  #进入秘钥存放目录
[root@Hadoop3-master network-scripts]# rm -rf *  #删除旧秘钥

使用ssh-keygen -t dsa 命令生成秘钥,在这个过程中需要多次回车键选取默认配置。

[root@Hadoop3-master network-scripts]# ssh-keygen -t dsa

将生成的秘钥文件id_dsa.pub 复制到SSH指定的秘钥文件中authorized_keys中。

[root@Hadoop3-master network-scripts]# cat id_dsa.pub >>authorized_keys

测试秘钥是否登入成功

[root@Hadoop3-master network-scripts]# ssh Hadoop3-master
  1. 重启

修改主机名等相关配置,必须重启主机

[root@Hadoop3-master network-scripts]# reboot

JDK 安装

将jdk-8u333-linux-x64.tar.gz,上传到CentOS-7的/usr/local 目录下

  • 解压

使用cd 命令切换至/usr/local 目录,然后使用tar -xvf jdk-8u333-linux-x64.tar.gz 解压。

[root@Hadoop3-master network-scripts]# cd /usr/local
[root@Hadoop3-master network-scripts]# tar -xvf jdk-8u333-linux-x64.tar.gz

使用mv 命令重命名解压后的文件夹jdk1.8.0_152 为jdk

[root@Hadoop3-master local]# mv jdk1.8.0_152/ jdk
  • 配置环境变量

将JDK的安装目录/usr/local/jdk 配置到/etc/profile的PATH环境变量中。


[root@Hadoop3-master network-scripts]# cat /etc/profile
# /etc/profile
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin
  • 使环境变量生效

/etc/profile 文件修改后需要重新用source命令执行一次才能使设置生效。

[root@Hadoop3-master network-scripts]# source /etc/profile
  • 测试

使用java -version 测试JDK版本。

[root@Hadoop3-master network-scripts]# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
[root@Hadoop3-master network-scripts]#

Hadoop3 安装

将hadoop-3.2.4.tar.gz,上传到CentOS-7的/usr/local 目录下.

  • 解压

使用cd 命令切换至/usr/local 目录,然后使用tar -xvf hadoop-3.2.4.tar.gz 解压文件。

[root@Hadoop3-master local]# cd /usr/local
[root@Hadoop3-master local]# tar -xvf hadoop-3.2.4.tar.gz 

使用mv 命令重命名解压后的文件夹hadoop3.2.4 为hadoop

[root@Hadoop3-master local]# mv hadoop3.2.4 hadoop 
  • 配置环境变量

将Hadoop 的安装目录/usr/local/hadoop 配置到/etc/profile 的PATH环境变量中。同时将Hadoop 各进程用户设置为root,并配置到/etc/profile

[root@Hadoop3-master network-scripts]# cat /etc/profile
# /etc/profile
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HDFS_NAMENODE=root
export HDFS_DATANODE=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
  • 使环境变量生效

/etc/profile 文件修改后需要重新用source命令执行一次才能使设置生效。

[root@Hadoop3-master network-scripts]# source /etc/profile
  • 配置hadoop-env.sh

切换至Hadoop配置文件所在目录/usr/local/hadoop/etc/hadoop,修改其中的hadoop-env.sh文件。指定JDK安装目录


# Many of the options here are built from the perspective that users
# may want to provide OVERWRITING values on the command line.
# For example:
#
JAVA_HOME=/usr/local/jdk   #JDK安装目录
  • 配置core-site.xml

切换至Hadoop配置文件所在目录/usr/local/hadoop/etc/hadoop,修改其中的core-site.xml文件。

配置HDFS的访问URL和端口

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Hadoop3-master:9000</value>
                <description>NameNode URI</description>
        </property>
</configuration>
  • 配置hdfs-site.xml

切换至Hadoop配置文件所在目录/usr/local/hadoop/etc/hadoop,修改其中的hdfs-site.xml文件。

配置NameNode和DataNode的元数据存储,以及NameNode和DataNode的访问URL和端口。

<configuration>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:///usr/local/hadoop/data/datanode</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:///usr/local/hadoop/data/namenode</value>
        </property>
        <property>
                <name>dfs.namenode.name.http-address</name>
                <value>Hadoop3-master:50070</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Hadoop3-master:50090</value>
        </property>
</configuration>
  • 配置yarn-site.xml

切换至Hadoop配置文件所在目录/usr/local/hadoop/etc/hadoop,修改其中的yarn-site.xml文件。

配置nodemanager和resourcemanager访问URL和端口。

<configuration>

<!-- Site specific YARN configuration properties -->
        <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.resource-tracker.address</name>
                <value>Hadoop3-master:8025</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>Hadoop3-master:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>Hadoop3-master:8050</value>
        </property>

Hadoop3 验证

  • 格式化

Hadoop 使用之前必须进行格式化,可以使用如下指令进行格式化:

[root@Hadoop3-master network-scripts]# hadoop namenode -format

如果在使用Hadoop的过程中出错,或者Hadoop 无法正常启动,可能需要重新格式化。

重新格式化的流程步骤:

  1. 停止Hadoop

  1. 删除Hadoop 下的data和logs文件夹

  1. 重新格式化

[root@Hadoop3-master network-scripts]# stop-all.sh
[root@Hadoop3-master network-scripts]# cd /usr/local/hadoop
[root@Hadoop3-master hadoop]# rm -rf data/ logs/
[root@Hadoop3-master hadoop]# hadoop namenode -format
  • 启动Hadoop

使用start-all.sh命令启动Hadoop的所有进程。

[root@Hadoop3-master hadoop]# start-all.sh

使用stop-all.sh命令停止Hadoop的所有进程。

[root@Hadoop3-master hadoop]# stop-all.sh
  • 查看Hadoop 相关进程

使用jps 查看Hadoop的相关进程。

[root@Hadoop3-master hadoop]# jps
68706 Jps
33415 DataNode
29803 ResourceManager
29486 SecondaryNameNode
33262 NameNode
  • 浏览文件

使用Hadoop 命令查看HDFS上得文件

[root@Hadoop3-master hadoop]# hadoop fs -ls /
  • 浏览器访问

打开浏览器,输入http://192.168.43.11:5007或者http://Hadoop3-master:50070,即可查看Hadoop 运行相关信息。

以上是关于Centos7 安装Hadoop3 单机版本(伪分布式版本)的主要内容,如果未能解决你的问题,请参考以下文章

在Redhat8.0上安装Hadoop3.1.3单机版

centos7.5+hadoop3.1.2实战图文攻略--2019持续更新

Hadoop3.1.3单机版安装Hive3.1.2(Redhat8.0)

spark 3.0.0 单机搭建

03Hadoop3与Centos7安装手册

centos7安装hadoop3.2.1集群