大数据:Hadoop3.x集群搭建


Hadoop 简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。
在这里插入图片描述

HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。

HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

一,Hadoop 安装环境搭建

环境配置

需要搭建三个节点:1个主节点,2个从节点。在配置前需要配置好虚拟机网络静态IP,同步时间,关闭防火墙和使用Linux SSH(安全Sheel)。按照下面设立的Linux环境提供的步骤,本次采用的系统为centos-7-x86_64、单核、2GB内存。其三个节点分别取名为master、slave1和slave2。

(1)配置虚拟机网络模式

1.虚拟机网络模式设置为NET模式。选中master节点,右击,在弹出的快捷菜单中选“设置”命令。在“虚拟机设置-硬件-网络适配器”中进行设置。
在这里插入图片描述

2.使用命令reboot重启系统。

(2)配置虚拟机静态IP

1.配置虚拟机网络同样的网段,选择“编辑”——“虚拟网络编辑器”命令进行配置。
在这里插入图片描述

2.进入编辑器之后,设置DHCP的子网IP为192.168.130.128~254。
在这里插入图片描述
3.NAT设置网关为192.168.130.2
在这里插入图片描述

4.配置centos 7系统的静态ip。

(1) 修改主机名

命令1:hostnamectl set hostname master
命令2:vi /etc/sysconfig/network

修改内容如下:

#created by anaconda
NETWORKING=yes
HOSTNAME=master

(2) 修改IP地址

  • 修改网卡配置

命令:vi /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=583eeb6a-d778-4a01-8f70-f8077741b9e8
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.130.130
NETMASK=255.255.255.0
PREFIX=24
GATEWAY=192.168.130.2
DNS1=114.114.114.114
  • 重启网络服务

命令:systemctl restart network

(3) 修改IP地址和主机名的映射关系

命令:vi /etc/hosts

增添内容:

192.168.130.130 master
192.168.130.131 slave1
192.168.130.132 slave2
  • 防火墙操作

停止防火墙:systemctl stop firewalld.service
禁用防火墙:systemctl disable firewalld.service

(3)SSH设置和密钥生成

SSH设置需要在集群上执行不同的操作,如启动、停止和分布式守护Shell操作。进行身份验证不同的Hadoop用户,需要一种用于Hadoop的用户提供的公钥/私钥对,并使不同的用户共享。以下的命令用于生成使用SSH密钥值对。复制公钥id_rsa.pub为authorized_keys,并提供所有者,读写权限到authorized_keys文件。
命令:

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/ .ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

验证SSH:ssh 主机名

二,Java安装

Java是应用Hadoop和Hbase的主要决定条件。首先应该使用java -version命令检查java是否存在系统中。

安装步骤
1.可以通过访问以下链接下载jdk-8u211-linux-x64.tar.gz。https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
在这里插入图片描述

2.安装JDK。将下载的jdk-8u211-linux-x64.tar.gz(版本自选)文件上传到centos7系统目录/opt/software下。使用下面的命令提取到目录/opt/module中。

命令:tar -zxvf jdk-8u211-linux-x64.tar.gz -C /opt/module/

设置环境变量:vi /etc/profile

添加内容:

export JAVA_HOME=/opt/module/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin

刷新环境变量命令:source /etc/profile

测试安装是否成功:java -version

三,安装Hadoop

(1)下载安装hadoop

下载hadoop-3.3.4可以通过访问连接https://hadoop.apache.org/releases.html进行下载。将下载的hadoop-3.3.4.tar.gz上传到目录/opt/software下。通过以下命令解压到目录/opt/module中。
tar -zxvf hadoop-3.3.4.tar.gz -C /opt/module/

(2)配置hadoop环境变量

在/etc/profile文件最后追加相关内容:

命令:vi /etc/profile

追加内容如下:

#HADOOP_HOME
export HADOOOP_HOME=/ opt/module/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

(3)配置hadoop的hadoop-env.sh文件

修改hadoop-env-env.sh文件中JAVA_HOME路径:

export JAVA_HOME=/opt/jdk1.8.0_221

四,配置hadoop的集群

集群的部署规划,如下表。将HDFS集群中NameNode设置在salve0节点。SecondaryNameNode设置在slave2节点。YARN集群中ResourceManager设置在slave1节点。这样分开设计的目的是为了避免一个节点宕机,全部工作不能进行下去的问题。

——masterslave1slave2
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
YARNNodeManagerResourceManager NodeManagerNodeManager

(1)配置以下文件

1.core-site.xml文件

<configuration>
    <!--用来指定hdfs的老大-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!--用来指定hadoop运行时产生文件的存放目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-3.3.4/tmp</value>
    </property>    
</configuration>

2.hdfs-site.xml文件

<configuration>
    <!--设置名称节点的目录-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop-3.3.4/tmp/namenode</value>
    </property>
    <!--设置数据节点的目录-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop-3.3.4/tmp/datanode</value>
    </property>
    <!--设置辅助名称节点-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <!--hdfs web的地址,默认为9870,可不配置-->
    <!--注意如果使用hadoop2,默认为50070-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>0.0.0.0:9870</value>
    </property>
    <!--副本数,默认为3,可不配置-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--是否启用hdfs权限,当值为false时,代表关闭-->
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
</configuration>

3.workers文件

master
slave1
slave2

4.yarn-env.sh文件

export JAVA_HOME=/opt/jdk1.8.0_221
export HADOOP_HOME=/opt/hadoop-3.3.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

5.yarn-site.xml文件

<configuration>
    <!--配置资源管理器:集群master-->
    <property>        
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <!--配置节点管理器上运行的附加服务-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!--关闭虚拟内存检测,在虚拟机环境中不做配置会报错-->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

6.mapred-env.sh文件

export JAVA_HOME=/opt/jdk1.8.0_221

7.mapred_site.xml文件

<configuration>
    <!--配置MR资源调度框架YARN-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
</configuration>

(2)在集群上分发以上所有文件

(1)将master虚拟机上的Hadoop分发到slave1和slave2虚拟机上。

虚拟机slave1:

scp -r $HADOOP_HOME root@slave1:$HADOOP_HOME

虚拟机slave2:

scp -r $HADOOP_HOME root@slave2:$HADOOP_HOME

(2)将master虚拟机上环境分发到slave1和slave2虚拟机上。

虚拟机slave1:

scp /etc/profile root@slave1:/etc/profile

虚拟机slave2:

scp /etc/profile root@slave2:/etc/profile

(3)在slave1和slave2虚拟机上分别执行下列命令让环境变量生效。

source /etc/profile

五,Hadoop集群启动

1.如果是第一次启动集群,需要格式化NameNode:
命令:hdfs namenode -format

在这里插入图片描述

2.启动HDFS:start-dfs.sh
在这里插入图片描述
输入:jps
在这里插入图片描述

3.停止HDFS:stop-dfs.sh
在这里插入图片描述

4.启动Yarn:start-yarn.sh
在这里插入图片描述
输入:jps
在这里插入图片描述

4.停止Yarn:stop-yarn.sh
在这里插入图片描述

注:NameNode和ResourceManager不是同一台机器,不能在NameNode上启动Yarn,应该在ResourceManager所在的机器slave1上启动Yarn。

至此,Hadoop安装配置完毕。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁辰兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值