CentOS7 安装Hadoop 3.1.3 伪集群

本文详细介绍了如何在CentOS7上安装配置Hadoop 3.1.3的伪集群。内容包括前置环境配置如修改ip、主机名、关闭防火墙、安装JDK,下载安装Hadoop,以及一系列的配置文件修改,如core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml。最后,文章还提到了如何启动HDFS和YARN,并测试Hadoop环境,包括访问HDFS和YARN的管理页面。

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

继上次我们在机器中配置好了CentOS7,这次我们来配置实验环境
这次我们要来安装Hadoop伪集群

Hadoop 介绍

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算

Hadoop 安装配置

前置实验环境:CentOS 7

Hadoop下载链接:(可以从Apache官网下载,不过我嫌太慢了,直接到清华镜像站里下载)
Hadoop 3.1.3: /apache/hadoop/common/hadoop-3.1.3 - 清华镜像站

参考:
https://zhuanlan.zhihu.com/p/45166521
https://zhuanlan.zhihu.com/p/73461795

前置环境配置

修改ip地址

在虚拟机的命令行中输入下面的命令,即使用vim编辑器修改网卡的配置文件

$ vim /etc/sysconfig/network-scripts/ifcfg-ens33

配置如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=55f92893-e87e-44fd-b89b-d6d813407263
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.52.130
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8

重启网卡使配置生效

$ sudo service network restart 
修改主机名

CentOS 7可以使用hostnamectl命令,直接修改主机名

hostnamectl set-hostname magic
修改ip地址和主机名的映射关系

用vim编辑器修改/etc/hosts文件

$ vim /etc/hosts

添加一行新的映射,然后保存退出

192.168.52.130 magic
关闭防火墙

CentOS 7的防火墙服务为firewalld,不再使用IPtables了

systemctl stop firewalld      #关闭防火墙服务网
systemctl disable firewalld   #设置防火墙服务开机不启动
安装JDK

Hadoop 3.x要求JDK的版本必须是java 8,下载地址:jdk-8u161-linux-x64.tar.gz

$ sudo mv jdk-8u251-linux-x64.tar.gz /usr/local/
$ sudo tar -zxvf jdk-8u251-linux-x64.tar.gz 
$ # set environment
$ vim /etc/profile

在profile里添加以下环境变量

export JAVA_HOME=/usr/local/jdk1.8.0_251
export PATH=$PATH:$JAVA_HOME/bin

然后重新加载环境变量

$ source /etc/profile

下载安装Hadoop

$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.3/
$ mkdir /hadoop
$ tar -zxvf hadoop-3.1.3.tar.gz -C /hadoop/
$ cd /hadoop/hadoop-3.1.3/

修改配置文件

在hadoop安装目录下有一个etc目录,里面存放着hadoop的配置文件(注意不要和linux的/etc搞混)

在我们这个实例中,etc位于/hadoop/hadoop-3.1.3/etc/hadoop,如下

在这里插入图片描述

[user@localhost hadoop]$ pwd
/hadoop/hadoop-3.1.3/etc/hadoop
[user@localhost hadoop]$ ll
total 172
-rw-r--r--. 1 user user  8260 Sep 12  2019 capacity-scheduler.xml
-rw-r--r--. 1 user user  1335 Sep 12  2019 configuration.xsl
-rw-r--r--. 1 user user  1940 Sep 12  2019 container-executor.cfg
-rw-r--r--. 1 user user   774 Sep 12  2019 core-site.xml
-rw-r--r--. 1 user user  3999 Sep 12  2019 hadoop-env.cmd
-rw-r--r--. 1 user user 15903 Sep 12  2019 hadoop-env.sh
-rw-r--r--. 1 user user  3323 Sep 12  2019 hadoop-metrics2.properties
-rw-r--r--. 1 user user 11392 Sep 12  2019 hadoop-policy.xml
-rw-r--r--. 1 user user  3414 Sep 12  2019 hadoop-user-functions.sh.example
-rw-r--r--. 1 user user   775 Sep 12  2019 hdfs-site.xml
-rw-r--r--. 1 user user  1484 Sep 12  2019 httpfs-env.sh
-rw-r--r--. 1 user user  1657 Sep 12  2019 httpfs-log4j.properties
-rw-r--r--. 1 user user    21 Sep 12  2019 httpfs-signature.secret
-rw-r--r--. 1 user user   620 Sep 12  2019 httpfs-site.xml
-rw-r--r--. 1 user user  3518 Sep 12  2019 kms-acls.xml
-rw-r--r--. 1 user user  1351 Sep 12  2019 kms-env.sh
-rw-r--r--. 1 user user  1747 Sep 12  2019 kms-log4j.properties
-rw-r--r--. 1 user user   682 Sep 12  2019 kms-site.xml
-rw-r--r--. 1 user user 13326 Sep 12  2019 log4j.properties
-rw-r--r--. 1 user user   951 Sep 12  2019 mapred-env.cmd
-rw-r--r--. 1 user user  1764 Sep 12  2019 mapred-env.sh
-rw-r--r--. 1 user user  4113 Sep 12  2019 mapred-queues.xml.template
-rw-r--r--. 1 user user   758 Sep 12  2019 mapred-site.xml
drwxr-xr-x. 2 user user    24 Sep 12  2019 shellprofile.d
-rw-r--r--. 1 user user  2316 Sep 12  2019 ssl-client.xml.example
-rw-r--r--. 1 user user  2697 Sep 12  2019 ssl-server.xml.example
-rw-r--r--. 1 user user  2642 Sep 12  2019 user_ec_policies.xml.template
-rw-r--r--. 1 user user    10 Sep 12  2019 workers
-rw-r--r--. 1 user user  2250 Sep 12  2019 yarn-env.cmd
-rw-r--r--. 1 user user  6056 Sep 12  2019 yarn-env.sh
-rw-r--r--. 1 user user  2591 Sep 12  2019 yarnservice-log4j.properties
-rw-r--r--. 1 user user   690 Sep 12  2019 yarn-site.xml
[user@localhost hadoop]$ 

修改Hadoop的环境变量配置文件

hadoop-env.sh是Hadoop的环境变量配置文件,需要在该配置文件中指定JAVA_HOME的路径,使用vi编辑器修改该配置文件,然后保存退出

$ vim hadoop-env.sh

大约55行左右,可以在这里设置变量JAVA_HOME

env

###
# Generic settings for HADOOP
###

# Technically, the only required environment variable is JAVA_HOME.
# All others are optional.  However, the defaults are probably not
# preferred.  Many sites configure these options outside of Hadoop,
# such as in /etc/profile.d

# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/usr/local/jdk1.8.0_251

修改Hadoop的核心配置文件

core-site.xml是Hadoop的核心配置文件,里面可以配置HDFS(Hadoop分布式文件系统)的NameNode的地址和数据存储目录,使用vi编辑器修改该配置文件,然后保存退出

$ vim core-site.xml

修改内容如下:

<configuration>
    <!-- 指定hdfs的nameservice的地址为magic,端口为9000 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://magic:9000</value>
    </property>
    <!-- 指定hadoop存储数据的目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop/data</value>
    </property>
</configuration>

修改HDFS的配置文件

hdfs-site.xml是HDFS的配置文件,由于当前在一台机器上配置的Hadoop伪分布式,所以这里修改HDFS的副本为1即数据只保存一份,使用vi编辑器修改该配置文件,然后保存退出

vi hdfs-site.xml

具体修改内容如下:

<configuration>
    <!-- HDFS的副本为1,即数据只保存一份 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

修改MapReduce的配置文件

mapred-site.xml里面可以配置,指定MapReduce框架运行在YARN资源调度系统上,使用vim编辑器修改该配置文件,然后保存退出

yarn是一个依赖管理工具

$ vim mapred-site.xml

具体修改内容如下:

<configuration>
    <!-- 指定MapReduce运行在YARN上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改YRAR的配置文件

yarn-site.xml是配置YARN的相关配置的文件,使用vi编辑器修改该配置文件,然后保存退出

$ vim yarn-site.xml

具体修改内容如下:

<configuration>
<!-- Site specific YARN configuration properties -->
    <!-- 分别指定ResouceManager的地址 -->
    <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>magic</value>
    </property>
    <!-- 分别指定MapReduce的方式 -->
    <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
    </property>
</configuration>

将Hadoop的命令添加到系统环境变量

将Hadoop的bin和sbin目录下的命令添加到系统环境变量,这样在执行Hadoop相关的命令是,就可以在任何目录下执行了,使用vi编辑器修改/etc/proflie配置文件,在文件的最后添加环境变量,然后保存退出

$ vim /etc/profile

具体修改内容如下:

export JAVA_HOME=/usr/local/jdk1.8.0_161
export HADOOP_HOME=/bigdata/hadoop-3.1.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

重新加载环境变量,在命令行中执行如下命令

$ source /etc/profile

初始化Hadoop HDFS文件系统

上面五个配置文件修改完成后,就可以初始化HDFS文件系统了,在命令行中执行下面的命令

$ hdfs namenode -format

看到如下信息,代表NameNode被成功初始化

在这里插入图片描述

INFO common.Storage: Storage directory /hadoop/data/dfs/name has been successfully formatted.

在命令行中先执行启动HDFS的命令

$ start-dfs.sh

执行后发现有如下错误

[user@localhost hadoop]$ start-dfs.sh
Starting namenodes on [magic]
magic: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Starting datanodes
localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Starting secondary namenodes [magic]
magic: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[user@localhost hadoop]$ 

这个错误是因为没有配置SSH免密码登录的问题,所以配置SSH免密码登录

$ ssh-keygen -t rsa

回车执行该命令后再接着三个回车(密钥的存储位置,是否加密、确定密码) ,然后将公钥拷贝给自己

$ ssh-copy-id localhost
$ ssh localhost # try to login without password

假如直接ssh登陆成功,说明配置完成

这时我们再次用命令start-dfs.sh启动hdfs,发现启动成功

利用jps命令可以查看hdfs是否启动成功

[user@localhost hadoop]$ start-dfs.sh
Starting namenodes on [magic]
Starting datanodes
Starting secondary namenodes [magic]
[user@localhost hadoop]$ jps
24225 Jps
24083 SecondaryNameNode
23717 NameNode
23882 DataNode
[user@localhost hadoop]$ 

执行jps命令后多了NameNodeDataNodeSecondaryNameNode进程,说明HDFS启动成功

在这里插入图片描述

在启动YARN `` start-yarn.sh` 可以正常启动,并且执行jps命令后多了ResourceManager、NodeManager进程,说明YARN启动成功!

在这里插入图片描述

[user@localhost hadoop]$ start-yarn.sh
Starting resourcemanager
Starting nodemanagers
[user@localhost hadoop]$ jps
24083 SecondaryNameNode
23717 NameNode
24856 Jps
23882 DataNode
24397 ResourceManager
24527 NodeManager
[user@localhost hadoop]$ 

测试Hadoop环境

附上hdfs常用端口配置:https://blog.csdn.net/wulantian/article/details/50843811

使用浏览器可以访问hdfs管理界面

192.168.52.130:50070

刚开始照教程访问的是50070端口,但是连接失败

查到最后,发现是Hadoop 3.x以前的采用50070端口,3.x以后的版本采用9870端口,这里是个小坑

不过其他人这时连不上,大都都是防火墙没有放开

192.168.52.130:9870
打开Hadoop YARN的管理页面

使用浏览器访问yarn管理界面:

http://magic:8088/

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值