CentOS7 Hadoop 安装(完全分布式)

Posted caoxb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7 Hadoop 安装(完全分布式)相关的知识,希望对你有一定的参考价值。

hadoop集群安装模式
 
1)单机模式
直接解压,无需任何配置。主要用于测试代码。没有分布式文件系统。
 
2)伪分布式
完全分布式的一种形式,只是所有的进程都配置要一个节点上。有分布式文件系统,只不过是这个文件系统只有一个节点。
 
3)完全分布式
包含主节点和从节点,主节点namenode只有一个(一般来说,真实生产环境中namenode只会单独作为一个节点)namenode主要负责存储元数据,即datanode存储数据的描述,如数据存储在datanode的哪一个节点上,数据是谁上传的。datanode负责真正干活的,负责数据存储的。完全分布式中,如果namenode宕机了会造成整个集群无法使用,这也是完全分布式的一大缺点,存在单点故障问题。所以在一般生产环境中不太使用这种模式。
技术图片
 
4)高可用
集群可以持续对外提供服务,做到7*24小时不间断,依赖于zookeeper。完全分布式的架构模式为一主多从,高可用集群架构为多主多从,也就是说高可用集群至少有两个namenode,但是同一时间只有一个是活跃的。我们把这个活跃的namenode称为active,其它的属于热备份状态,这们把这个namenode称之为standby,并且存储的元数据与active是一模一样的,当active宕机的时候,standby会立马切换为active。如果刚才宕机的namenode又恢复正常了,但是这个namenode只能是standby。但是这个集群也存在一个缺陷,就是在同一时间内只能有一个活跃的namenode。如果节点非常多(即元数据过多),这个活跃的namenode很容易崩溃。
技术图片
 
5)联邦机制
同一个集群中可以有多个namenode,并且同一时间可以有多个活跃的namenode,这些namenode 共同使用集群中所有的datanode,每个namenode只负责管理集群中datanode上的一部分数据。但是联邦机制也会存在单点故障问题,如某一个活跃的namenode宕机了,会造成存在此namenode的数据无法访问,因此,一般的来说实际应用使用“联邦+高可用”模式搭建集群。

 

完全分布式的安装

 

1.集群规划

 

主机名 IP HDFS yarn
hadoop01  192.168.220.141 namenode
datanode
nodeManager
hadoop02 192.168.220.142 secondarynamenode
datanode
nodeManager
hadoop03 192.168.220.143 datanode resourceManager
nodeManager


  

2.修改hostname 及 hosts

$ vim /etc/hostname
$ vim /etc/hosts

  

所有的主机hosts文件均配置

192.168.220.141    hadoop01
192.168.220.142    hadoop02
192.168.220.143    hadoop03

配置完成后重启

$ reboot

  

 

3.设置 SSH key

$ ssh-keygen -t rsa

一直按回车即可

 

 

4.将公钥信息保存至授权认证中

 将公钥信息保存至授权认证中 authorized_keys,以后可以进行免登录处理

$ cd .ssh
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  

 

 

 

 

5.登录测试

$ ssh root@hadoop02

使用hadoop01分别登录hadoop02和hadoop03测试,是否能免密登录。然后通过hadoop02登录hadoop01和hadoop03,是否也能免密登录,以此类推。

 

6.文件配置

 


一共需要配置主要的6个文件:
  hadoop-x.x.x/etc/hadoop/hadoop-env.sh
  hadoop-x.x.x/etc/hadoop/yarn-env.sh
  hadoop-x.x.x/etc/hadoop/core-site.xml
  hadoop-x.x.x/etc/hadoop/yarn-site.xml         相关的job处理
  hadoop-x.x.x/etc/hadoop/hdfs-site.xml         可以确定文件的备份个数及数据文件夹的路径
  hadoop-x.x.x/etc/hadoop/mapred-site.xml

 


(1)配置 core-site.xml 
添加tmp目录 
[root@hadoopm ~]# mkdir hadoop_tmp

<configuration>
    <!-- 指定namenode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>
    </property>
    <!-- 用来指定使用hadoop时产生文件的存放目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop</value>
    </property>    
</configuration

 


fs.defaultFS:HDFS的URI,文件系统://namenode标识:端口号
hadoop.tmp.dir:namenode上本地的hadoop临时文件夹
注:hadoop.tmp.dir 如果路径配置为 hadoop-x.x.x/tmp ,一但重新启动,所以的信息hadoop环境全部失效


(2)配置 hdfs-site.xml 
[root@hadoopm tmp]# mkdir dfs dfs/name dfs/data

如果hadoop出现问题,这些文件需要彻底清除掉,并重新配置

<configuration>  
    <!-- 指定hdfs保存数据的副本数量 -->
    <property>  
        <name>dfs.replication</name>  
        <value>2</value>  
    </property>  
    <!-- 指定hdfs中namenode的存储位置 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/name</value>
    </property>
    <!--指定hdfs中datanode的存储位置-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/data</value>
    </property>  
    <property>
        <name>dfs.secondary.http.address</name>
        <value>hadoop02:50070</value>
    </property>     
</configuration>

 

 

(3)配置yarn-site.xml 

<configuration>
    <!-- nomenodeManager获取数据的方式是shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定Yarn的老大(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop03:50090</value>
    </property>
</configuration>

 

 

4)配置mapred-site.xml 

<configuration>
    <!-- 告诉hadoop以后MR(Map/Reduce)运行在YARN上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

 

 

5)配置slaves
hadoop01 
hadoop02 
hadoop03


远程发送或者每一个节点都配置一次

创建目录 
/home/hadoop/data
/home/hadoop/name

 

 

 

7.集群配置

 (1)在/usr/local/hadoop-2.7.7/etc/hadoop 目录下创建一个masters文件,配置主机名称,即内容为hadoopm

$ cd /usr/local/hadoop-2.7.7/etc/hadoop/
$ echo hadoopm > masters

  

(2)修改从节点文件 slaves,配置主机名称,即内容为hadoopm
$ echo hadoopm > slaves

  

8.格式化文件系统

$ hdfs namenode -format

 

出现如下信息表示格式化成功

 

 

9.启动hadoop

(1)启动hdfs,在任意节点上启动均可

$ start-dfs.sh

 

(2)启动yarn,在yarn的主节点上启动

$ start-yarn.sh

  

 

 

 

10.查看进程

$ jps

  

 

 

11.测试HDSF是否能正常使用

 

以上是关于CentOS7 Hadoop 安装(完全分布式)的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop3.2.0+Centos7三节点完全分布式安装配置

大数据技术栈-Hadoop3.3.4-完全分布式集群搭建部署-centos7(完全超详细-小白注释版)虚拟机安装+平台部署

centos7 + hadoop 2.7.7 完全分布式搭建

centOS7 配置hadoop完全分布式

CentOS7.5搭建Hadoop2.7.6完全分布式集群

Centos7完全分布式搭建Hadoop2.7.3