准备

  • 需要准备多台主机(已经安装并且配置好hadoop和jdk)
  • 需要配置ssh免密服务

下面我们开始进行配置,拿到已经准备好的主机,主机名分别为:

  • centos101
  • centos102
  • centos103

先说下为什么需要进行ssh免密码配置:

  我们在操作集群时,经常需要在各台主机上进行数据传输、主机切换等工作,如果直接进行切换等操作需要每次输入密码,当操作频繁

  时,就显得很复杂,所以需要配置ssh免密码,让主机间自动检验账号密码。

主机间进行ssh通信的原理图

配置ssh免密

①在主机centos101上访问其它主机,保证有访问记录,访问记录存在 /home/ljm/.ssh下的known_hosts文件中

 用命令:ssh 主机      访问过的记录都在该文件中

 

②生成密钥,产生本台主机的公钥和私钥

 命令:ssh-keygen -t rsa  , 一直回车        生成了三个新文件

  • authorized_keys:保存已经注册过的主机(即把公钥备份到本机的其它主机)
  • id_rsa :私钥
  • id_rsa.pub : 公钥

 

③将公钥复制到其它主机,复制时按照known_hosts中访问记录进行自动复制,复制后保存在其他主机的authorized_keys文件中

 命令: ssh-copy-id 主机

 以下是centos103主机的authorized_keys文件,可以看出centos101和centos102对它注册过

 

到这里已经完成了centos101对centos102和cenot103的免密配置了

注意:

  ①本主机也要对本主机注册,简单说,就是哪里需要免密就配置到哪里

  ②同一台主机上的不同用户配置不同(如user用户配置了ssh免密,root用户并没有权利使用它的配置)

  ③两台主机间只要一方往另一方配置了,双方便可以相互免密访问

我三台主机的ssh配置结构如下:

 

配置hadoop集群

我的集群结构图:

基本配置文件(这些配置在hadoop根目录/etc/hadoop下):

  • core-site.xml配置
  • HDFS配置(hadoop-env.sh   hdfs-site.xml   slaves)
  • YARN配置 (yarn-env.sh  yarn-site.xml)
  • MapReduce配置(mapred-env.sh  mapred-site.xml)

①配置core-site.xml

 每台主机都需要配置该文件,内容如下:

 <configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://centos101:8020</value>
</property> <!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value> //缓存目录
</property>
</configuration>

②HDFS配置

 每台主机都配置 hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_131  //jdk路径

 只有主机centos101配置hdfs-site.xml,其它主机清空<configuration></configuration>中内容

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>centos103:50090</value>
</property>
</configuration>

 只有主机centos101配置slaves,该文件默认localhost,centos101中slaves指定生成子节点datanode的主机

 注意:格式要求严格,有空格都会导致出错

centos102
centos103

③YARN配置

 每台主机都配置 yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_131   //jdk路径

 只有主机centos101配置yarn-site.xml,其它主机清空<configuration></configuration>中内容

 注意:yarn.resourcemanager.hostname指的是生成resourcemanager的节点主机,启动resourcemanager时必须在指定的主机启动

    例如下面的配置,只能在主机centos102上启动resourcemanager

<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property> <!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>centos102</value>
</property>
</configuration>

④MapReduce的配置

  每台主机都配置 mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_131   //jdk路径

  只有主机centos101配置mapred-site.xml,其它主机清空<configuration></configuration>中内容

  注意:mapred-site.xml并没有,需要将mapred-site-template.xml改为mapred-site.xml再进行配置

    <!--指定mr运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

到这里,一个简单的集群已经配置好了,下面去启动集群吧!

启动集群

①将每台主机上的缓存文件夹和logs文件删除,我的配置中为 : /opt/module/hadoop-2.7.2/data/tmp

②初始化主节点centos101,命令:bin/hdfs namenode -format

③主节点上开启HDFS    命令:sbin/start-dfs.sh

④在指定生成resourcemanager的节点主机上,开启YARN   命令: sbin/start-yarn.sh

⑤用jps到每台主机上查看是否启动成功

Hadoop之集群搭建的更多相关文章

  1. Hadoop分布式集群搭建

    layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...

  2. Hadoop+HBase 集群搭建

    Hadoop+HBase 集群搭建 1. 环境准备 说明:本次集群搭建使用系统版本Centos 7.5 ,软件版本 V3.1.1. 1.1 配置说明 本次集群搭建共三台机器,具体说明下: 主机名 IP ...

  3. hadoop+spark集群搭建入门

    忽略元数据末尾 回到原数据开始处 Hadoop+spark集群搭建 说明: 本文档主要讲述hadoop+spark的集群搭建,linux环境是centos,本文档集群搭建使用两个节点作为集群环境:一个 ...

  4. hadoop ha集群搭建

    集群配置: jdk1.8.0_161 hadoop-2.6.1 zookeeper-3.4.8 linux系统环境:Centos6.5 3台主机:master.slave01.slave02 Hado ...

  5. Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...

  6. hadoop分布式集群搭建(2.9.1)

    1.环境 操作系统:ubuntu16 jdk:1.8 hadoop:2.9.1 机器:3台,master:192.168.199.88,node1:192.168.199.89,node2:192.1 ...

  7. Hadoop分布式集群搭建_1

    Hadoop是一个开源的分布式系统框架 一.集群准备 1. 三台虚拟机,操作系统Centos7,三台主机名分别为k1,k2,k3,NAT模式 2.节点分布 k1: NameNode DataNode ...

  8. hadoop分布式集群搭建前期准备(centos7)

    那玩大数据,想做个大数据的从业者,必须了解在生产环境下搭建集群哇?由于hadoop是apache上的开源项目,所以版本有些混乱,听说都在用Cloudera的cdh5来弄?后续研究这个吧,就算这样搭建不 ...

  9. hadoop+spark集群搭建

    1.选取三台服务器(CentOS系统64位) 114.55.246.88 主节点 114.55.246.77 从节点 114.55.246.93 从节点 之后的操作如果是用普通用户操作的话也必须知道r ...

  10. hadoop+eclipse集群搭建及测试

    前段时间搭了下hadoop,每次都会碰到很多问题,也没整理过,每次搜索都麻烦,现在整理下 一.准备工作 1.准备俩计算机,安装linux系统,分别装好jdk(虚拟机操作一样) nano /etc/ho ...

随机推荐

  1. js 重要函数

    1. Array.some some() 方法用于检测数组中的元素是否满足指定条件(函数提供) 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测.如果没有满足条件的元素,则返 ...

  2. PL/SQL题型代码示例

    1.记录类型(注意标点符号的使用) 结果: 2.学习流程 3. 4. 5. 6. 写法二: 结果: 写法三: 7.使用循环语句打印1-100 方法一: 或者 方法二: 方法三: 8. 方法二: 9. ...

  3. react 在新窗口 打开页面

    遇到这个需求 首先通过 Link a去尝试直接跳转.发现2个问题 1.Link跳转 会自动进行登录校验,我设想是路由没有匹配到,去验证后大致排除了. 因为这个链接 直接粘贴到浏览器 是可以访问到的. ...

  4. 如何使用python生成gif

    如何使用python生成gif? 在我的文件夹里面有很多图片,我们如何将其合成一个gif呢?可以使用PIL模块,这个模块在我的"python图像处理"板块中有详细介绍. # -*- ...

  5. 运维都该会的Socket知识!

    本篇博客转自赵班长 所有运维都会的Socket知识!!! 原创: 赵班长 新运维社区 什么是Socket? 大家都用电脑上网,当我们访问运维社区https://www.unixhot.com的时候,我 ...

  6. Linux内核管理子系统和进程管理子系统

    内核管理子系统职能:1.管理虚拟地址与物理地址的映射 2.物理内存的分配 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体. 进程:是一个执行中的程序,它是动态的实体 进程四要素: ...

  7. 标准C语言(10)

    指针数组的每个存储区是一个指针类型的存储区,字符指针数组包含多个字符类型的指针,每个字符类型指针可以代表一个字符串.字符指针数组可以用来代表多个相关字符串,二维字符数组也可以用来记录多个相关字符串,通 ...

  8. vs code 保存显示无法写入文件的解决方法

    右键文件夹点击属性 选择安全 把当前用户权限都勾选上就可以了

  9. 【CF1181C】Flag

    题目大意:给定一个 N*M 的矩阵,定义一个矩形区域为一个"国旗",满足:矩形区域可以按行划分成三个高度相同的部分,其中每一个部分中的颜色完全相同,第一部分的颜色与第二部分颜色不同 ...

  10. HTML左边盒子固定,右边盒子自适应

    html: <div class="box1"> <div class="divA">DIVA</div> <div ...