一、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. Python进阶(二)

    1.模块和包的概念 python的解决方案是把同名的模块放到不同的包中 1.1,导入模块 要使用一个模块,我们必须首先导入该模块.Python使用import语句导入一个模块.例如,导入系统自带的模块 ...

  2. 350道面试题分享,拿下京东offer工资double

    350道面试题分享,拿下京东offer工资double 前言: 面试,其实是一个双向选择的过程,在这个过程里,我们不应该抱着畏惧的心态去对待,这样反而会影响自己的发挥.同时看中的应该不止薪资,还要看你 ...

  3. 腾讯WeTest&TesterHome深圳线下沙龙

    腾讯官方的一站式品质开放平台「腾讯WeTest」携手知名测试社区「TesterHome」以及3家金融相关企业为我们带来的金融专场. 本次活动内容主要以金融公司的测试落地和测试技术为主,我们希望你是一个 ...

  4. logstash将redis中的队列中数据发送到influxdb数据库中

    通过elk获取到的java jvm中ygc的时间如下: 现在讲ygc字段的值,发送到influxdb中 首先安装logstash的插件 logstash-output-influxdb 安装完成后,查 ...

  5. ios官方demo

    http://developer.apple.com/iphone/library/samplecode/Reachability/Reachability.ziphttp://developer.a ...

  6. 【已解决】git怎么合并多个分支到主干master

    git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下: 去自己的工作分支$ git checkout workbranch 工作.... 提交工作 ...

  7. springboot使用vue打包过的页面资源

    (一)webpack打包 如果在vue基于webpack的,build打包后得到的是如下的资源文件: webstorm中提示如下: 这个大致的意思就是这边的文件需要放在http服务器上访问,如果直接打 ...

  8. 白话SCRUM 之三:sprint backlog

    Sprint Backlog就是任务列表,如果映射到传统的项目管理理论中就是WBS(work breakdown structure),而且是典型的采用面向交付物的任务分解方法得到的WBS. 比如有一 ...

  9. 打开前端工程 Node Sass does not yet support your current environment: Windows 64-bit

    卸载当前sass版本,重新安装sass 打开cmd进入工程文件夹: 删除 npm uninstall --save node-sass 安装 npm install --save node-sass ...

  10. tornado中的options常用姿势

    tornado是facebook开源的非阻塞web容器,类似java的netty,tornado.options是负责解析tornado容器的全局参数的,同时也能够解析命令行传递的参数和从配置文件中解 ...