在Linux中进行hadoop集群搭建

在公网IP为x.x.x.x、y.y.y.y和z.z.z.z并装有Centos8的服务器上进行hadoop集群搭建,都安装hadoop-3.1.3和server-jre-8u202-linux-x64。

环境准备(三台服务器都一样)

第一步,创建统一工作目录。

# 软件安装路径

命令:mkdir -p /usr/local/src/server/

# 数据存储路径

命令:mkdir -p /usr/local/src/data/

# 安装包存放路径

命令:mkdir -p /usr/local/src/software/

第二步,下载server-jre-8u202-linux-x64.tar.gz安装包。

到地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html下载server-jre-8u202-linux-x64.tar.gz安装包。然后使用WinSCP将安装包上传到/usr/local/src/software文件夹中。或者也可以使用wget命令下载。

命令:cd /usr/local/src/software

wget https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html/jre-8u202-linux-x64.tar.gz

第三步,解压server-jre-8u202-linux-x64.tar.gz安装包。

命令:cd /usr/local/src/software

tar -zxvf server-jre-8u202-linux-x64.tar.gz -C /usr/local/src/server

第四步,配置环境变量。

配置/etc/profile文件,在文件添加下面的代码:

export JAVA_HOME=/usr/local/src/server/jdk1.8.0_202

export JRE_HOME=$JAVA_HOME/jre

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

# 刷新profile文件

命令:source /etc/profile

第五步,测试server-jre是否配置成功。

# 查看jdk版本

命令:java -version

若结果显示server-jre的版本,则说明server-jre配置成功。

第六步,关闭防火墙。

为了可以让本地的机器可以通过Web网页访问集群资源,为了防止在运行集群的时候出现集群不可访问的状况,需要关闭防火墙。

命令:systemctl stop firewalld

# 开机时禁用防火墙

命令:systemctl disable firewalld

第七步,各自修改主机名,配置IP地址映射。

命令:hostnamectl set-hostname node1

hostnamectl set-hostname node2

hostnamectl set-hostname node3

对三台主机的IP地址进行映射,可以方便后续的配置,同时也方便对集群进行通信,三台机器同样操作。

在/etc/hosts文件中加入下面的代码:

x.x.x.x     node1

y.y.y.y     node2

z.z.z.z     node3

第八步,配置免密登录。

# 在~目录下执行,生成密钥

命令:cd

ssh-keygen -t rsa  # 按四下enter

cd /root/.ssh/

cp id_rsa.pub authorized_keys

# 将node1的密钥拷到其他服务器上

ssh-copy-id -i node2

ssh-copy-id -i node3

第九步,集群时间同步。

命令:yum -y install ntpdate

ntpdate ntp4.aliyun.com

安装Hadoop(三台服务器都一样)

第一步,集群规划。

NameNode=NN          DataNode=DN        SecondaryNameNode=SNN

NodeManager=NM     ResourceManager=RM

HDFS集群—主角色:NN   从角色:DN   主角色辅助角色:SNN

YARN集群—主角色:RM   从角色:NM

框架          node1      node2       node3

HDFS        NN、DN        DN        SNN、DN

YARN          NM        RM、NM        NM

Hadoop集群包括两个集群:HDFS集群和YARN集群。

两个集群都是标准的主从架构集群。

逻辑上分离:两个集群互相之间没有依赖、互不影响。

物理上在一起:某些角色进程往往部署在同一台物理服务器上。

MapReduce是计算框架、代码层面的组件,没有集群之说。

角色规划的准则:

根据软件工作特性和服务器硬件资源情况合理分配。

角色规划注意事项:

资源上有抢夺冲突的,尽量不要部署在一起。

工作上需要互相配合的,尽量部署在一起。

第二步,下载hadoop-3.1.3。

登录网址:https://archive.apache.org/dist/hadoop/common/

下载hadoop-3.1.3.tar.gz。也可以使用命令下载。

命令:cd /usr/local/src/software

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz

第三步,上传、解压tar.gz压缩包。

命令:cd /usr/local/src/software

tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/src/server

第四步,配置环境变量。

在/etc/profile文件添加下面的代码:

export HADOOP_HOME=/usr/local/src/server/hadoop-3.1.3

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

# 使环境变量生效

命令:source /etc/profile

# 测试是否配置成功

命令:hadoop version

如果结果显示“Hadoop 3.1.3”,则说明hadoop配置成功。

集群配置

配置文件在/usr/local/src/server/hadoop-3.1.3/etc/hadoop中。

第一步,对node1中的Hadoop自定义配置文件进行配置。

1)创建目录

命令:mkdir /usr/local/src/server/hadoop-3.1.3/tmp

mkdir /usr/local/src/server/hadoop-3.1.3/dfs

2)配置hadoop-env.sh。

在hadoop-env.sh文件中加入下面的代码:

export JAVA_HOME=/usr/local/src/server/jdk1.8.0_202

# 在文件末尾加入下面的代码,设置用户以执行对应角色shell命令

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

3)配置core-site.xml

在core-site.xml文件中加入下面的代码:





  fs.defaultFS

  hdfs://node1:9000







   hadoop.tmp.dir

 file:/usr/local/src/server/hadoop-3.1.3/tmp







   io.file.buffer.size

   131072







   fs.trash.interval

   10080



4)配置hdfs-site.xml

在hdfs-site.xml文件中加入下面的代码:







    dfs.namenode.name.dir                     

    file:/usr/local/src/server/hadoop-3.1.3/dfs/name







    dfs.datanode.data.dir file:/usr/local/src/server/hadoop-3.1.3/dfs/data







    dfs.replication

    3







    dfs.blocksize

    134217728







    dfs.http.address

    node1:50070







    dfs.permissions

    false







    dfs.hosts

    /usr/local/src/server/hadoop-3.1.3/etc/hadoop/workers



5)配置workers。

在workers文件中加入下面的代码:

node1

node2

node3

注意:不要有多余的换行和空格

6)mapred-site.xml配置

在mapred-site.xml文件中加入下面的代码:







    mapreduce.framework.name

    yarn







    mapreduce.job.ubertask.enable

    true







    mapreduce.jobhistory.address

    node1:10020







    mapreduce.jobhistory.webapp.address

    node1:19888



7)配置yarn-site.xml

在yarn-site.xml文件中加入下面的代码:









    yarn.nodemanager.aux-services

    mapreduce_shuffle







    

        The http address of the RM web application.

        If only a host is provided as the value,the webapp will be served on a random port.

    

    yarn.resourcemanager.webapp.address

    ${yarn.resourcemanager.hostname}:8088





    

        The https address of the RM web application.

        If only a host is provided as the value,the webapp will be served on a random port.

    

    yarn.resourcemanager.webapp.https.address

    ${yarn.resourcemanager.hostname}:8090







    yarn.log-aggregation-enable

    true







    yarn.log-aggregation.retain-seconds

    604800



第二步,对node2中的Hadoop自定义配置文件进行配置。

1)创建目录

命令:mkdir /usr/local/src/server/hadoop-3.1.3/tmp

mkdir /usr/local/src/server/hadoop-3.1.3/dfs

2)配置hadoop-env.sh。

在hadoop-env.sh文件中加入下面的代码:

export JAVA_HOME=/usr/local/src/server/jdk1.8.0_202

# 在文件末尾加入下面的代码,设置用户以执行对应角色shell命令

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

3)配置core-site.xml

在core-site.xml文件中加入下面的代码:





    fs.defaultFS

    hdfs://node2:9000







    hadoop.tmp.dir

    file:/usr/local/src/server/hadoop-3.1.3/tmp







    io.file.buffer.size

    131072







    fs.trash.interval

    10080



4)配置hdfs-site.xml

在hdfs-site.xml文件中加入下面的代码:







    dfs.namenode.name.dir           

    file:/usr/local/src/server/hadoop-3.1.3/dfs/name







    dfs.datanode.data.dir         

    file:/usr/local/src/server/hadoop-3.1.3/dfs/data







    dfs.replication

    3







    dfs.blocksize

    134217728







    dfs.permissions

    false







    dfs.hosts

    /usr/local/src/server/hadoop-3.1.3/etc/hadoop/workers



5)配置workers。

在workers文件中加入下面的代码:

node1

node2

node3

注意:不要有多余的换行和空格

6)mapred-site.xml配置

在mapred-site.xml文件中加入下面的代码:







    mapreduce.framework.name

    yarn







    mapreduce.job.ubertask.enable

    true







    mapreduce.jobhistory.address

    node2:10020







    mapreduce.jobhistory.webapp.address

    node2:19888



7)配置yarn-site.xml

在yarn-site.xml文件中加入下面的代码:









    yarn.nodemanager.aux-services

    mapreduce_shuffle







    yarn.resourcemanager.hostname

    node2







    

        The http address of the RM web application.

        If only a host is provided as the value,the webapp will be served on a random port.

    

    yarn.resourcemanager.webapp.address

    ${yarn.resourcemanager.hostname}:8088





    

        The https address of the RM web application.

        If only a host is provided as the value,the webapp will be served on a random port.

    

    yarn.resourcemanager.webapp.https.address

    ${yarn.resourcemanager.hostname}:8090







    yarn.log-aggregation-enable

    true







    yarn.log-aggregation.retain-seconds

    604800



第三步,对node3中的Hadoop自定义配置文件进行配置。

1)创建目录

命令:mkdir /usr/local/src/server/hadoop-3.1.3/tmp

mkdir /usr/local/src/server/hadoop-3.1.3/dfs

2)配置hadoop-env.sh。

在hadoop-env.sh文件中加入下面的代码:

export JAVA_HOME=/usr/local/src/server/jdk1.8.0_202

# 在文件末尾加入下面的代码,设置用户以执行对应角色shell命令

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

3)配置core-site.xml

在core-site.xml文件中加入下面的代码:





    fs.defaultFS

    hdfs://node3:9000







    hadoop.tmp.dir

    file:/usr/local/src/server/hadoop-3.1.3/tmp







    io.file.buffer.size

    131072







    fs.trash.interval

    10080



4)配置hdfs-site.xml

在hdfs-site.xml文件中加入下面的代码:







    dfs.namenode.name.dir                   

    file:/usr/local/src/server/hadoop-3.1.3/dfs/name







    dfs.datanode.data.dir

    file:/usr/local/src/server/hadoop-3.1.3/dfs/data







    dfs.replication

    3







    dfs.blocksize

    134217728







    dfs.namenode.secondary.http-address

    node3:50071







    dfs.permissions

    false







    dfs.hosts

    /usr/local/src/server/hadoop-3.1.3/etc/hadoop/workers



5)配置workers。

在workers文件中加入下面的代码:

node1

node2

node3

注意:不要有多余的换行和空格

6)mapred-site.xml配置

在mapred-site.xml文件中加入下面的代码:







    mapreduce.framework.name

    yarn







    mapreduce.job.ubertask.enable

    true







    mapreduce.jobhistory.address

    node3:10020







    mapreduce.jobhistory.webapp.address

    node3:19888



7)配置yarn-site.xml

在yarn-site.xml文件中加入下面的代码:









    yarn.nodemanager.aux-services

    mapreduce_shuffle







    

        The http address of the RM web application.

        If only a host is provided as the value,the webapp will be served on a random port.

    

    yarn.resourcemanager.webapp.address

    ${yarn.resourcemanager.hostname}:8088





    

        The https address of the RM web application.

        If only a host is provided as the value,the webapp will be served on a random port.

    

    yarn.resourcemanager.webapp.https.address

    ${yarn.resourcemanager.hostname}:8090







    yarn.log-aggregation-enable

    true
    






    yarn.log-aggregation.retain-seconds

    604800



集群启动

# 注意:如果集群是第一次启动,需要在Namenode所在节点格式化NameNode,非第一次不用执行格式化 Namenode 操作。

命令:hadoop namenode -format

# 在node1,node2,node3上分别启动HDFS、YARN

命令:cd /usr/local/src/server/hadoop-3.1.3/sbin

./start-dfs.sh   (HDFS)

./start-yarn.sh   (YARN)

# 在node1,node2,node3上查看集群的hadoop进程

命令:jps

若在node1,node2,node3上分别显示下面的结果,则说明启动集群启动成功。

  

# 在node1,node2,node3上分别停止HDFS、YARN

命令:cd /usr/local/src/server/hadoop-3.1.3/sbin

./stop-dfs.sh  (HDFS)

./stop-yarn.sh  (YARN)

你可能感兴趣的:(2022运维,hadoop,linux,大数据,集群,运维)