3.Hadoop集群搭建

cd /export/software/

rz 上传

解压操作

tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz -C /export/server/

添加软连接:

cd /export/server/

ln -s hadoop-3.3.0/ hadoop

    1. Hadoop安装包目录结构

解压hadoop-3.3.0-Centos7-64-with-snappy.tar.gz,目录结构如下:

binHadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。

etcHadoop配置文件所在的目录,包括core-site,xml、hdfs-site.xml、mapred-site.xml等从Hadoop1.0继承而来的配置文件和yarn-site.xml等Hadoop2.0新增的配置文件。

include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。

lib:该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。

libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。

sbinHadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本

shareHadoop各个模块编译后的jar包所在的目录,官方自带示例

    1. Hadoop配置文件修改

Hadoop安装主要就是配置文件的修改,一般在主节点进行修改,完毕后scp下发给其他各个从节点机器

      1. hadoop-env.sh

文件中设置的是Hadoop运行时需要的环境变量。JAVA_HOME是必须设置的,即使我们当前的系统中设置了JAVA_HOME,它也是不认识的,因为Hadoop即使是在本机上执行,它也是把当前的执行环境当成远程服务器。

cd /export/server/hadoop/etc/hadoop/

vim hadoop-env.sh

添加: 54

export JAVA_HOME=/export/server/jdk1.8.0_241/

#文件最后添加: 在第 439行下

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

      1. core-site.xml

hadoop的核心配置文件,有默认的配置项core-default.xml。

core-default.xml与core-site.xml的功能是一样的,如果在core-site.xml里没有配置的属性,则会自动会获取core-default.xml里的相同属性的值。

cd /export/server/hadoop/etc/hadoop/

vim core-site.xml

文件的configuration的标签中添加以下内容:

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://node1.itcast.cn:8020</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/export/data/hadoop</value>

    </property>

    <!-- 设置HDFS web UI用户身份 -->

    <property>

        <name>hadoop.http.staticuser.user</name>

        <value>root</value>

    </property>

    <!-- 整合hive -->

    <property>

        <name>hadoop.proxyuser.root.hosts</name>

        <value>*</value>

    </property>

    <property>

        <name>hadoop.proxyuser.root.groups</name>

        <value>*</value>

    </property>

      1. hdfs-site.xml

HDFS的核心配置文件,有默认的配置项hdfs-default.xml。

hdfs-default.xml与hdfs-site.xml的功能是一样的,如果在hdfs-site.xml里没有配置的属性,则会自动会获取hdfs-default.xml里的相同属性的值。

cd /export/server/hadoop/etc/hadoop/

vim hdfs-site.xml

文件的configuration的标签中添加以下内容:

    <!-- 指定secondarynamenode运行位置 -->

    <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>node2.itcast.cn:50090</value>

    </property>

      1. mapred-site.xml

MapReduce的核心配置文件,有默认的配置项mapred-default.xml。

mapred-default.xml与mapred-site.xml的功能是一样的,如果在mapred-site.xml里没有配置的属性,则会自动会获取mapred-default.xml里的相同属性的值。

cd /export/server/hadoop/etc/hadoop/

vim mapred-site.xml

文件的configuration的标签中添加以下内容:

    <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>

      1. yarn-site.xml

YARN的核心配置文件,有默认的配置项yarn-default.xml。

yarn-default.xml与yarn-site.xml的功能是一样的,如果在yarn-site.xml里没有配置的属性,则会自动会获取yarn-default.xml里的相同属性的值。

cd /export/server/hadoop/etc/hadoop/

vim yarn-site.xml

文件的configuration的标签中添加以下内容:

    <!-- 指定YARN的主角色(ResourceManager)的地址 -->

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>node1.itcast.cn</value>

    </property>

    <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序默认值:"" -->

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

    <!-- 是否将对容器实施物理内存限制 -->

    <property>

        <name>yarn.nodemanager.pmem-check-enabled</name>

        <value>false</value>

    </property>

    <!-- 是否将对容器实施虚拟内存限制。 -->

    <property>

        <name>yarn.nodemanager.vmem-check-enabled</name>

        <value>false</value>

    </property>

    <!-- 开启日志聚集 -->

    <property>

        <name>yarn.log-aggregation-enable</name>

        <value>true</value>

    </property>

    <!-- 设置yarn历史服务器地址 -->

    <property>

        <name>yarn.log.server.url</name>

        <value>http://node1.itcast.cn:19888/jobhistory/logs</value>

    </property>

    <!-- 保存的时间7天 -->

    <property>

        <name>yarn.log-aggregation.retain-seconds</name>

        <value>604800</value>

    </property>

      1. workers

workers文件里面记录的是集群主机名。主要作用是配合一键启动脚本如start-dfs.sh、stop-yarn.sh用来进行集群启动。这时候workers文件里面的主机标记的就是从节点角色所在的机器。

vim workers

清空内容后, 添加以下内容:

node1.itcast.cn

node2.itcast.cn

node3.itcast.cn

    1. scp同步安装包

cd /export/server

scp -r hadoop-3.3.0/ node2:$PWD

scp -r hadoop-3.3.0/ node3:$PWD

分发后, 需要在node2和node3上分别创建软连接

cd /export/server/

ln -s hadoop-3.3.0/ hadoop

在node1上进行了配置文件的修改,使用scp命令将修改好之后的安装包同步给集群中的其他节点。

    1. Hadoop环境变量

3台机器都需要配置环境变量文件。

vim /etc/profile

#HADOOP_HOME

export HADOOP_HOME=/export/server/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

    1. Hadoop集群启动、初体验
      1. 启动方式

要启动Hadoop集群,需要启动HDFS和YARN两个集群。

注意:首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的HDFS在物理上还是不存在的。

hadoop namenode -format

        1. 单节点逐个启动

在主节点上使用以下命令启动HDFS NameNode:

$HADOOP_HOME/bin/hdfs --daemon start namenode

在每个从节点上使用以下命令启动HDFS DataNode:

$HADOOP_HOME/bin/hdfs --daemon start datanode

在node2上使用以下命令启动HDFS SecondaryNameNode

$HADOOP_HOME/bin/hdfs --daemon start secondarynamenode

在主节点上使用以下命令启动YARN ResourceManager:

$HADOOP_HOME/bin/yarn --daemon start resourcemanager

在每个从节点上使用以下命令启动YARN nodemanager

$HADOOP_HOME/bin/yarn --daemon start nodemanager

如果想要停止某个节点上某个角色,只需要把命令中的start改为stop即可

        1. 脚本一键启动

如果配置了etc/hadoop/workers和ssh免密登录,则可以使用程序脚本启动所有Hadoop两个集群的相关进程,在主节点所设定的机器上执行。

hdfs:$HADOOP_PREFIX/sbin/start-dfs.sh

yarn: $HADOOP_PREFIX/sbin/start-yarn.sh

停止集群:stop-dfs.shstop-yarn.sh

同时还提供了完整的一键化脚本:

start-all.sh 和 stop-all.sh

    1. 启动后的效果

     

    1. 集群web-ui

一旦Hadoop集群启动并运行,可以通过web-ui进行集群查看,如下所述:

NameNode http://nn_host:port/ 默认9870.

ResourceManager http://rm_host:port/ 默认 8088.

 

    1. MapReduce jobHistory

JobHistory用来记录已经finished的mapreduce运行日志,日志信息存放于HDFS目录中,默认情况下没有开启此功能,需要在mapred-site.xml中配置并手动启动。

      1. 修改mapred-site.xml

cd /export/servers/hadoop-3.3.0/etc/hadoop

vim mapred-site.xml

MR JobHistory Server管理的日志的存放位置

<property>

        <name>mapreduce.jobhistory.address</name>

        <value>node1:10020</value>

    </property>

查看历史服务器已经运行完的Mapreduce作业记录的web地址,需要启动该服务才行

<property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>node1:19888</value>

    </property>

      1. 分发配置到其他机器

cd /export/servers/hadoop/etc/hadoop

scp -r mapred-site.xml node2:$PWD

scp –r mapred-site.xml node3:$PWD

      1. 启动jobHistoryServer服务进程

mapred --daemon start historyserver

如果关闭的话 用下述命令

mapred --daemon stop historyserver

      1. 页面访问jobhistoryserver

http://node1:19888/jobhistory

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一鸣888

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

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

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

打赏作者

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

抵扣说明:

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

余额充值