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

三、安装过程中可能遇到的问题

启动过程中某些进程启动不了
 
正常情况下有5个进程:
namenode
secondarynamenode
datanode
nodemanager
resourcemanager
 
解决方式一:
全部关闭集群重新启动
执行 stop-dfs.sh  命令,可以在任意节点上执行。
执行 stop-yarn.sh 命令,在yarn的节点上执行。
执行 start-dfs.sh 命令
执行 start-yarn.sh 命令
 
解决方式二:
单独启动某些未启动的进程
单独启动hdfs相关进程,可以通过执行 hadoop-daemon.sh start 进程 命令来启动
单独启动yarn相关进程,可以通过执行 yarn-daemon.sh start 进程 命令来启动
 

$ cd /usr/local/hadoop-2.7.7/
$ cd /sbin
$ hadoop-daemon.sh start namenode
$ hadoop-daemon.sh start datanode
$ yarn-daemon.sh start nodemanager
$ yarn-daemon.sh start resourcemanager

重新格式化datanode启动不了

如果想要重新格式化,则需要先删除data目录。

$ rm -rf /home/hadoop/data
$ hadoop namenode -format

  

CentOS7 Hadoop 安装(完全分布式)的更多相关文章

  1. hadoop安装教程,分布式配置 CentOS7 Hadoop3.1.2

    安装前的准备 1. 准备4台机器.或虚拟机 4台机器的名称和IP对应如下 master:192.168.199.128 slave1:192.168.199.129 slave2:192.168.19 ...

  2. 避坑之Hadoop安装伪分布式(Hadoop3.2.0/Ubuntu14.04 64位)

    一.安装JDK环境(这个可以网上随意搜一篇教程了照着弄,这里不赘述) 安装成功之后 输入 输入:java -version 显示如下说明jdk安装成功(我这里是安装JDK8) 二.安装Hadoop3. ...

  3. CentOS7上安装伪分布式Hadoop

    1.下载安装包 下载hadoop安装包 官网地址:https://hadoop.apache.org/releases.html 版本:建议使用hadoop-2.7.3.tar.gz 系统环境:Cen ...

  4. Hadoop安装教程_分布式

    Hadoop的分布式安装 hadoop安装伪分布式以后就可以进行启动和停止操作了. 首先需要格式化HDFS分布式文件系统.hadoop namenode -format 然后就可以启动了.start- ...

  5. CentOS7 Hive 安装

    hive的安装模式有2种,一种是使用自带的derby数据库,另一种是使用mysql作为元数据库.derby方式一般没人用,因为它是单用户模式.这里主要讲解mysql方式. hive仅仅是一个客户端工具 ...

  6. hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)

    目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...

  7. centos7+hadoop完全分布式集群搭建

    Hadoop集群部署,就是以Cluster mode方式进行部署.本文是基于JDK1.7.0_79,hadoop2.7.5.  1.Hadoop的节点构成如下: HDFS daemon:  NameN ...

  8. Centos7.5安装分布式Hadoop2.6.0+Hbase+Hive(CDH5.14.2离线安装tar包)

    Tags: Hadoop Centos7.5安装分布式Hadoop2.6.0+Hbase+Hive(CDH5.14.2离线安装tar包) Centos7.5安装分布式Hadoop2.6.0+Hbase ...

  9. 转载:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到, ...

随机推荐

  1. F#周报2019年第19期

    新闻 介绍.NET 5 发布.NET Core 3.0预览版5以及F#的REPL OpenFsharp CFP开启 F#的Giraffe服务端stub生成器被添加到openapi-generator中 ...

  2. apache-tomcat-7.0.94在Windows上启动时,控制台黑窗口出现乱码解决

    一.问题 二.解决 原因是tomcat日志编码的配置问题. 打开tomcat/conf/logging.properties配置文件. 把编码注释掉或者改为gbk就可以了. 参考:https://bl ...

  3. Java开发常用知识点总结

    docker exec -it imageId redis-cli docker container ls -a docker rm containerId 复制目录&文件 cp -r /ro ...

  4. Linux文件共享服务 FTP,NFS 和 Samba

    Linux 系统中,存储设主要有下面几种: DAS DAS 指 Direct Attached Storage,即直连附加存储,这种设备直接连接到计算机主板总线上,计算机将其识别为一个块设备,例如常见 ...

  5. SQL注入:盲注

    盲注简介 所谓的盲注就是在服务器没有错误回显的时候完成的注入攻击. 服务器没有错误回显,对于攻击者来说缺少了非常重要的"调试信息". 盲注分类 1.布尔盲注 布尔很明显Ture和F ...

  6. 【Mysql】初识MySQL

    一. MySQL是客户端/服务器架构1)macOS操作系统上的默认安装目录:/usr/local/mysql/  在MySQL的安装目录下有一个bin目录,这个目录下存放着许多可执行文件.2)将该bi ...

  7. 使用BurpSuite做中转代理时候出现Failed to connect to www.xxx.com:443 的时候可能原因

    1.可能是BurpSuite没有设置好代理,需要BurpSuite需要进行设置如下图:

  8. 基于Arduino和python的串口通信和上位机控制

    引言 经常的时候我们要实现两个代码之间的通信,比如说两个不同不同人写的代码要对接,例如将python指令控制Arduino控件的开关,此处使用串口通信是非常方便的,下面笔者将结合自己踩过的坑来讲述下自 ...

  9. 201871010123-吴丽丽 《面向对象程序设计(Java)》第十周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/ ...

  10. 201871010123-吴丽丽《面向对象程序设计(java)》第二周学习总结

    201871010123-吴丽丽<面向对象程序设计(java)>第二周学习总结                         项目                这个作业属于哪个课程 h ...