用来测试,我在VMware下用Centos7搭起一个三节点的Hadoop完全分布式集群。其中NameNode和DataNode在同一台机器上,如果有条件建议大家把NameNode单独放在一台机器上,因为NameNode是集群的核心承载压力是很大的。hadoop版本:Hadoop-2.7.4;

hadoopo1

hadoopo2

hadoopo3

Namenode ResourceManage SecondaryNamenode
Datanode Datanode Datanode
NodeManage NodeManage NodeManage

一、准备环境

  1. 准备三台节点(机器),要求:yum源挂载成功、网络设置可用(ip在同一网段,连接Xshell)、已安装Oracle8.0及以上版本JDK
  2. hadoop-2.7.4.tar.gz,hadoop2.x安装包

二、部署集群

    1. 创建Hadoop用户(三节点);
      su - root
      useradd hadoop
      passwd hadoop
    2. 在Hadoop用户家目录下创建安装目录(三节点);
      mkdir /home/hadoop/install  (安装目录)
      mkdir /home/hadoop/soft   (存放安装包)
    3. 解压hadoop安装包,通过Xshell等工具将安装包上传到~/soft目录中(hadoop01节点);
      tar –zxvf /home/hadoop/soft/hadoop-2.7.4.tar.gz  -C  /home/hadoop/install/

三、修改配置文件(hadoop01节点)

    1. cd到hadoop配置文件目录;
      su - hadoop
      cd  /home/hadoop/install/hadoop-2.7.4/etc/hadoop
    2. core-site.xml设置
      vim core-site.xml
      //在<configuration> 之间添加如下配置
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop01:9000</value>
      <!-- hadoop01:主机名,:端口 -->
      </property> <property>
      <name>hadoop.tmp.dir</name>
      <value>/data/hadoop/tmp</value>
      </property>
    3. hadoop-env.sh,JDK配置;
      vim hadoop-env.sh
      //修改等号后面的值
      //使用echo $JAVA_HOME 查看JDK安装路径
      export JAVA_HOME=/usr/local/jdk
    4. HDFS相关配置;
      vim  hdfs-site.xml
      //在<configuration> 之间添加如下配置
      <!-- secondaryNamenode地址 -->
      <property>
      <name>dfs.secondary.http.address</name>
      <value>hadoop03:</value>
      </property> <!-- 数据块冗余份数-->
      <property>
      <name>dfs.replication</name>
      <value></value>
      </property> <!-- edtis文件存放地址-->
      <property>
      <name>dfs.namenode.edits.dir</name>
      <value>/data/hadoop/namenode/name</value>
      </property> <!-- datanode数据目录存放地址-->
      <property>
      <name>dfs.datanode.data.dir</name>
      <value>/data/hadoop/datanode/data</value>
      </property> <!-- checkpoint数据目录存放地址-->
      <property>
      <name>dfs.namenode.checkpoint.dir</name>
      <value>/data/hadoop/namenode/namesecondary</value>
      </property>
    5. mapred-env.sh
      vim mapred-env.sh
      //修改export JAVA_HOME=/usr/local/jdk
    6. MR相关配置
      vim mapred-env.sh
      //修改export JAVA_HOME=/usr/local/jdk

      cp  mapred-site.xml.template  ./mapred-site.xml
      vim  mapred-site.xml
      //在<configuration> 之间添加如下配置

      <!-- 集群调度框架为YARN-->
      <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
      </property> <!-- 注意:"hadoop01"替换为NameNode所在主机名-->
      <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>hadoop01:</value>
      </property>
    7. YARN相关配置;
      vim  yarn-site.xml
      //在<configuration> 之间添加如下配置
      <!--resourcemanager主机名 -->
      <!-- 注意:"hadoop02"替换为resourcemanager所在主机名-->
      <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>hadoop02</value>
      </property> <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      </property> <property>
      <name>yarn.resourcemanager.webapp.address</name>
      <value>hadoop02:</value>
      </property> <property>
      <name>yarn.nodemanager.resource.memory-mb</name>
      <value></value>
      </property> <!--nodemanager最多分配cpu虚拟核心个数 -->
      <property>
      <name>yarn.nodemanager.resource.cpu-vcores</name>
      <value></value>
      </property> <!--nodemanager最多内存大小 -->
      <property>
      <name>yarn.scheduler.maximum-allocation-mb</name>
      <value></value>
      </property> <!--作业调度过程中 作业单个内存最少内存大小 -->
      <property>
      <name>yarn.scheduler.minimum-allocation-mb</name>
      <value></value>
      </property> <!--作业调度过程中 作业单个最多的cpu分配 -->
      <property>
      <name>yarn.scheduler.maximum-allocation-vcores</name>
      <value></value>
      </property>
    8. 启动脚本配置;
      在调用脚本的过程中,start-dfs.sh和start-yarn.sh会使用该脚本进行datanode和ndoemanager的启动。
      vim slaves
      //将三台主机名写入后保存
      hadoop01
      hadoop02
      hadoop03

四、创建数据目录

  1. 创建Datanode节点数据目录(三节点);
    su – root
    mkdir -p /data/hadoop/tmp
    mkdir -p /data/hadoop/datanode/data
    chown hadoop:hadoop -R /data/hadoop
  2. 创建Namenode节点数据目录(hadoop01节点);
    su – root
    mkdir -p /data/hadoop/tmp
    mkdir -p /data/hadoop/namenode/name
    mkdir -p /data/hadoop/datanode/data
    mkdir -p /data/hadoop/namenode/namesecondary
    chown hadoop:hadoop -R /data/hadoop

五、配置hadoop环境变量(三节点)

su – root
        vim /etc/profile

//在文件末尾添加如下设置

//最后更新环境变量(root/hadoop)
        source /etc/profile

HADOOP_HOME=/home/hadoop/install/hadoop-2.7.
PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

六、配置SSH互信(三节点)

  1. 将三台节点ip添加到Hosts文件中;su – root
    vim /etc/hosts
    //加入三台节点的ip映射

    192.168.1.10    hadoop01
    192.168.1.11 hadoop02
    192.168.1.12 hadoop03
  1. 在hadoop用户下,生成密钥对(三节点);
    su – hadoop
    ssh-keygen

     

  1. 查看密钥,并将公钥发给三个个节点;
    cd /home/hadoop/.ssh/
    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop01
    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop02
    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop03

七、分发hadoop安装目录(hadoop01)

scp  –r  ~/install  hadoop@hadoop02:~/install

scp  –r  ~/install  hadoop@hadoop03:~/install

八、格式化并且启动HDFS(重点)

    1. 在hadoop用户下,namenode节点上;
      su – hadoop
      hdfs namenode -format

九、启动集群

    1. 启动HDFS(hadoop01上);
      su – hadoop
      start-dfs.sh
    2. 启动YARN(hadoop02上);
      su – hadoop
      start-yarn.sh
    3. 查看进程(jps);


十、关闭集群

  1. 停止HDFS服务(hadoop01上)
    stop-dfs.sh
  2. 停止Yarn服务(hadoop02上)
    stop-yarn.sh

Hadoop 完全分布式部署(三节点)的更多相关文章

  1. ubuntu下hadoop完全分布式部署

    三台机器分别命名为: hadoop-master ip:192.168.0.25 hadoop-slave1 ip:192.168.0.26 hadoop-slave2 ip:192.168.0.27 ...

  2. Hadoop 完全分布式部署

    完全分布式部署Hadoop 分析: 1)准备3台客户机(关闭防火墙.静态ip.主机名称) 2)安装jdk 3)配置环境变量 4)安装hadoop 5)配置环境变量 6)安装ssh 7)集群时间同步 7 ...

  3. 【Hadoop 分布式部署 三:基于Hadoop 2.x 伪分布式部署进行修改配置文件】

    1.规划好哪些服务运行在那个服务器上 需要配置的配置文件 2. 修改配置文件,设置服务运行机器节点 首先在   hadoop-senior  的这台主机上 进行   解压 hadoop2.5   按照 ...

  4. hadoop完全分布式部署

    1.我们先看看一台节点的hdfs的信息:(已经安装了hadoop的虚拟机:安装hadoophttps://www.cnblogs.com/lyx666/p/12335360.html) start-d ...

  5. Hadoop伪分布式部署

    一.Hadoop组件依赖关系: 步骤 1)关闭防火墙和禁用SELinux 切换到root用户 关闭防火墙:service iptables stop Linux下开启/关闭防火墙的两种方法 1.永久性 ...

  6. ubuntu hadoop伪分布式部署

    环境 ubuntu hadoop2.8.1 java1.8 1.配置java1.8 2.配置ssh免密登录 3.hadoop配置 环境变量 配置hadoop环境文件hadoop-env.sh core ...

  7. Hadoop+HBase分布式部署

    test 版本选择

  8. hadoop(七)集群配置同步(hadoop完全分布式四)|9

    前置配置:rsync远程同步|xsync集群分发(hadoop完全分布式准备三)|9 1. 分布式集群分配原则 部署分配原则 说明Namenode和secondarynamenode占用内存较大,建议 ...

  9. zabbix分布式部署和主机自动发现

    1.分布式部署原理 1.1Zabbix分布式部署的原理 传统的部署架构,是server直接监控所有的主机,全部主机的数据都是有server自己来采集和处理,server端的压力比较大,当监控主机数量很 ...

随机推荐

  1. php中数组模拟队列、栈的函数以及数组指针操作

    1,数组指针,current表示当前指针,输出其指向的元素:next表示指针移动到下一个元素:prev指针移动到上一个元素:end表示指针移动到最后一个元素:reset表示指针移动到第一个元素: &l ...

  2. 【SSO单点系列】开篇

    年底将至,忙碌了好几个月的项目也接近尾声了.在这个项目中,由于要和其他外系统做单点登录(SSO),整合其他系统的功能.在网上查询了相关资料后,最终选取了Yale大学发起的一个开源项目 CAS, 作为项 ...

  3. Ionic开发Hybrid App问题总结

    http://ionichina.com/topic/5641b891b903cba630e25f10 http://www.cnblogs.com/parry/p/issues_about_buil ...

  4. iOS 之NSOperation(一)

    一.NSOperation的介绍 1.NSOperation的作用 配合使用NSOperation和NSOperationQueue实现多线程编程 2.实现多线程的具体步骤 1)将需要执行的操作封装到 ...

  5. Cache缓存设计

    缓存的适用场景: 缓存的目的是提高访问速度,减少不必要的开销,提高性能.那什么样的场景适用于缓存呢.试想一个多项式的计算是一个CPU bound的操作,如果频繁调用同一个多项式的结果.显然缓存结果是一 ...

  6. weex 初始化

    文档教程 一. 已有项目集成weex, 有时候会报错, 因为sdk中用到了socket pod 'WeexSDK' pod 'SocketRocket' 二. 在app启动方法 -didFinish ...

  7. [摸鱼]cdq分治 && 学习笔记

    待我玩会游戏整理下思绪(分明是想摸鱼 cdq分治是一种用于降维和处理对不同子区间有贡献的离线分治算法 对于常见的操作查询题目而言,时间总是有序的,而cdq分治则是耗费\(O(logq)\)的代价使动态 ...

  8. 完美解决读取Excel的数字单元格时Cannot get a STRING value from a NUMERIC cell 报错处理

    我使用的是Poi(最新的4.1.0)方式读取Excel ,我的方法如下: 在打印cell内容时,抛出下面的错误 Exception in thread "main" java.la ...

  9. Monkey基本使用(转载)

    什么是 Monkey Monkey 是一个 Android 自动化测试小工具.主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash. Monkey 特点 顾名思义,Mon ...

  10. EXTJS文档地址

    文档地址:http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.form.field.Field-event-change