C/C++教程

Apache Hadoop在CentOS下分布式集群安装

本文主要是介绍Apache Hadoop在CentOS下分布式集群安装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Apache Hadoop在CentOS下分布式集群安装

分布式集群规划

节点名称IPHDFSYARN
bigdata02192.168.237.132NameNode + DataNode 主节点NodeManager
bigdata03192.168.237.133DataNode + SecondaryNamenodeNodeManager
bigdata04192.168.237.134DataNodeNodeManager + ResourceManager主节点

环境准备

基础环境

  • JDK1.8(安装略),CentOS7(安装略),hadoop-2.7.7.tar.gz

  • 关闭防火墙

    #关闭命令
    service firewalld stop
    chkconfig firewalld off
    
  • 关闭SELINUX 配置文件:/etc/selinux/config

    #SELINUX=enforcing
    SELINUX=disabled
    

设置hostname

  • 在Master节点的bigdata02机器上,将hostname置为bigdata02

    hostnamectl set-hostname bigdata02
    
  • 同样的方式在另外两台worker节点上分别设置hostname为bigdata03、bigdata04

配置hosts文件信息

  • 在三个节点都需要配置 vim /etc/hosts,都加入如下内容

    192.168.237.132 bigdata02
    192.168.237.133 bigdata03
    192.168.237.134 bigdata04
    

设置节点之间的ssh免密登录

  • 配置132节点到133节点和134节点的ssh免密登录,由于134作为Yarn的主节点,需在134节点启动Yarn集群,还需要配置134节点到132节点和133节点的ssh免密登录,一定要配。

  • 每个节点生成ssh密钥,执行命令后会在~目录下生成.ssh文件夹,里面包含id_rsa和id_rsa.pub两个文件。

    [root@bigdata02 ~]# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    .....................
    [root@bigdata02 ~]# cd .ssh
    [root@bigdata02 .ssh]# ls
    id_rsa  id_rsa.pub
    
  • 在主节点上将公钥拷到一个特定文件authorized_keys中。

[root@bigdata02 ~]# cd .ssh
[root@bigdata02 .ssh]# ls
id_rsa  id_rsa.pub
[root@bigdata02 .ssh]# cp id_rsa.pub authorized_keys
[root@bigdata02 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
  • 将authorized_keys文件拷到下一个节点,并将该节点的ssh密钥id_rsa.pub加入该文件中。

    #在bigdata02上使用scp命令实现远程文件拷贝
    [root@bigdata02 .ssh]# scp authorized_keys  root@bigdata03:/root/.ssh/
    The authenticity of host 'bigdata03 (192.168.237.133)' can't be established.
    ECDSA key fingerprint is SHA256:MyB1zs0E3J/fm8pC0AN8ycsgEIBNHtUqd9xS0WAyv3s.
    ECDSA key fingerprint is MD5:88:48:3a:ba:3e:14:a7:d7:86:f6:51:74:00:10:f9:00.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'hadoop02,192.168.237.133' (ECDSA) to the list of known hosts.
    root@bigdata03's password: 
    authorized_keys                                                                100%  395   306.2KB/s   00:00    
    #登录bigdata03主机
    [root@bigdata03 ~]# cd .ssh/
    [root@bigdata03 .ssh]# ls
    authorized_keys  id_rsa  id_rsa.pub
    [root@bigdata03 .ssh]# cat id_rsa.pub >> authorized_keys #使用cat追加方式
    
  • 重复上一步的操作,将bigdata04节点的ssh密钥加入到authorized_keys文件中,并将bigdata04节点生成的authorized_keys文件拷贝到其他两个节点(bigdata02、bigdata03)即可。

  • 验证免密登录

    使用ssh 用户名@节点名或ssh ip地址命令验证免密码登录。

    [root@bigdata02 .ssh]# ssh root@bigdata03
    

总述安装步骤

  1. 准备好三台服务器
  2. 在第一个节点中安装Hadoop
    2.1. 解压缩安装
    2.2. 配置Hadoop_env.sh
    2.3. 配置core-sitem.xml
    2.4. 配置hdfs-site.xml
    2.5. 配置mapred-site.xml
    2.6. 配置yarn-site.xml
    2.7. 配置slaves
  3. 分发安装包到每个节点
  4. 所有节点配置环境变量
  5. 初始化Hadoop
  6. 启动集群
  7. 验证安装,启动是否成功

在主节点安装hadoop-2.7.7

  • 在132节点创建路径/hadoop,将hadoop压缩包上传并解压出路径 hadoop-2.7.7

  • 创建集群的相关数据存储目录、name目录和data目录

在这里插入图片描述

修改主节点配置文件

修改hadoop-env.sh配置文件,添加jdk安装目录配置

  • 在路径/hadoop/hadoop-2.7.7/etc/hadoop下,进行配置文件修改

    # The java implementation to use.
    export JAVA_HOME=/usr/local/src/jdk8
    

修改core-site.xml配置文件

  • 在标签中添加如下内容:

      <property>
         <name>fs.defaultFS</name>
         <value>hdfs://bigdata02:9000</value>
         <description>HDFS集群的url</description>
      </property>
      <property>
         <name>hadoop.tmp.dir</name>
         <value>/hadoop/bigdata/tmp</value>
         <description>HDFS集群的相关数据存储目录</description>
      </property>
    

修改hdfs-site.xml配置文件

  • 在标签中添加如下内容:

    <property>
    	<name>dfs.namenode.name.dir</name>
    	<value>/hadoop/bigdata/name</value>
    	<description>为了保证元数据的安全一般配置多个不同目录</description>
    </property>
    <property>
    	<name>dfs.datanode.data.dir</name>
    	<value>/hadoop/bigdata/data</value>
    	<description>datanode的数据存储目录</description>
    </property>
    <property>
    	<name>dfs.replication</name>
    	<value>3</value>
    	<description>HDFS的数据块的副本存储个数</description>
    </property>
    <property>
    	<name>dfs.secondary.http.address</name>
    	<value>bigdata03:50090</value>
    	<description>secondarynamenode运行节点的信息,和namenode不同节点</description>
    </property>
    

修改mapred-site.xml配置文件

  • 集群只有 mapred-site.xml.template,可以从这个文件进行复制,或者直接改名也可

    cp mapred-site.xml.template mapred-site.xml
    
  • 然后修改配置文件

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    

配置yarn-site.xml配置文件

  • 在标签中添加如下内容:

    	<property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>bigdata04</value>
    		<description>YARN集群主节点所在节点</description>
    	</property>
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    		<description>YARN集群为MapReduce程序提供的shuffle服务</description>
    	</property>
    

配置slaves配置文件

bigdata02
bigdata03
bigdata04

配置系统变量

vim /etc/profile
#set java environment
export JAVA_HOME=/usr/local/src/jdk8
export JRE_HOME=$JAVA_HOME/jre
export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export HADOOP_HOME=/hadoop/hadoop-2.7.7
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

分发安装到其他节点

[root@bigdata02 /]# scp -r hadoop bigdata03:$PWD
[root@bigdata02 /]# scp -r hadoop bigdata04:$PWD

在主节点执行HDFS集群的初始化

  • 只需在bigdata02节点执行,进入到bin目录下执行

    [root@bigdata02 bin]# ./hadoop namenode -format
    
  • 注意

    ​ 关于初始化操作,是第一次安装Hadoop集群的时候初始化一次就可以了,而不是后面每次使用的都需要初始化一次。如果你想要把一个旧HDFS集群的数据都给删掉,当做一个新集群来使用。那么可以重新初始化,但是还是要把对应的每个节点数据存储目录先行删掉。然后再初始化。这样又得到了一个新HDFS集群。

启动HDFS集群

  • 按照规划,在bigdata02节点上启动hdfs集群,进入sbin目录执行启动命令

    [root@bigdata02 sbin]# ./start-dfs.sh
    

在Yarn主节点启动Yarn集群

  • 按规划,在bigdata04节点启动Yarn集群

    [root@bigdata04 sbin]# ./start-yarn.sh
    

检查集群启动是否成功

  • 在bigdata02上执行jps,按规划,如下正确启动

在这里插入图片描述

  • 在bigdata03上执行jps,按规划,如下正确启动

在这里插入图片描述

  • 在bigdata04上执行jps,按规划,如下正确启动

在这里插入图片描述

Hadoop 集群

  • 包含了 HDFS 和 YARN 两个集群,所以两个集群都分别做一次测试
    关于 HDFS:上传一个文件查看是否存在,再下载下来。

    [root@bigdata02 bigdata]# ls
    data  name  SettleRedisConfig.java  tmp
    [root@bigdata02 bigdata]# hadoop fs -put SettleRedisConfig.java  /user/java
    

在这里插入图片描述

在这里插入图片描述

Yarn集群

  • 可提交一个 mapreduce 例子程序

检测web ui启动是否成功

  • 如在windows系统浏览器查看,则需修改win系统的hosts文件进行映射。

    192.168.237.132 bigdata02
    192.168.237.133 bigdata03
    192.168.237.134 bigdata04

HDFS集群的web ui地址:http://bigdata02:50070
YARN集群的web ui地址:http://bigdata04:8088

查看集群状态

hadoop dfsadmin -report
hdfs dfsadmin -report(推荐用这个)

duce 例子程序

检测web ui启动是否成功

  • 如在windows系统浏览器查看,则需修改win系统的hosts文件进行映射。

    192.168.237.132 bigdata02
    192.168.237.133 bigdata03
    192.168.237.134 bigdata04

HDFS集群的web ui地址:http://bigdata02:50070
YARN集群的web ui地址:http://bigdata04:8088

查看集群状态

hadoop dfsadmin -report
hdfs dfsadmin -report(推荐用这个)
这篇关于Apache Hadoop在CentOS下分布式集群安装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!