第六天 - 安装第二、三台CentOS - SSH免密登陆 - hadoop全分布式安装、配置、集群启动

  • 第六天 - 安装第二、三台CentOS - SSH免密登陆 - hadoop全分布式安装、配置、集群启动

    • 一、安装另外两台CentOS
    • 二、对虚拟机进行设置
      • 往第二、第三台新增bigdata用户
      • 增加三台CentOS之间的hosts映射
      • 增加Windows的hosts映射
      • ssh工具
      • 一台机器的公钥、私钥
      • ssh免密登陆
    • 三、hadoop安装、配置
      • hadoop的安装
      • hadoop的配置
    • 四、SZ02、SZ03的配置
      • 卸载预装软件、关闭防火墙
      • 启动集群前的准备
      • 启动集群
      • 集群中进程的作用

一、安装另外两台CentOS

具体安装过程可参考第一天的步骤

centos安装过程

安装过程中需要注意的点

  1. 需要为虚拟机配置2G内存,首次配置完成后点击虚拟机右键设置,添加ISO镜像文件

  1. 在安装过程中需要对虚拟机设置主机名SZ02及SZ03、IP地址等,具体如下图所示。

  1. 无需图形界面,只需选择安装Basic Server即可

  1. 安装完成后在虚拟机右键设置中将网路适配器改为仅主机模式

二、对虚拟机进行设置

往第二、第三台新增bigdata用户

可以在Xshell工具选项中勾选发送键输入到所有的会话,此功能是在一个会话界面中输命令,所有会话窗口都能接收到相同的命令

单台可以通过黄色条的右边ON/OFF按钮进行开关控制

增加bigdata用户并设置密码

useradd bigdata

passwd bigdata

两台机器通过su - bigdata进行测试是否创建成功

增加三台CentOS之间的hosts映射

vi /etc/hosts

192.168.128.121 SZ01

192.168.128.122 SZ02

192.168.128.123 SZ03

使用ping SZ01/SZ02/SZ03进行互通性测试

增加Windows的hosts映射

使用ping进行测试

ssh工具

SSH,安全的网络传输协议,即使密码被半路拦截,信息也不会泄露;

Linux中已经安装了SSH工具,并且默认开启了相关服务;

主要作用,远程登录到另外的机器

连接过程:

  1. 命令格式:ssh {userName}@{hostName},使用当前用户连接机器hostName,并且使用目标机器的userName用户连接;

    ssh root@SZ02

  2. 首次连接,接收来自目标机器的验证信息,输入yes,加入到可信列表(known_hosts),可信列表文件存储在发起连接请求的机器上;

  3. 连接时需要输入目标机器,目标用户的密码

  4. 成功建立连接

  5. 连接成功后查看主机名和IP地址,显示的是SZ02

  6. 退出连接

    exit

  7. 再次连接就不需要存可信列表了

  • 可信列表存储的位置及文件内容

用户家目录下的.ssh/known_hosts

  • 当两台机器远程登录时,如果使用的用户与目标机器用户相同,则可以省略用户名

一台机器的公钥、私钥
  • 公钥,私钥成对出现,公钥可以通过生成后发送给其他机器,而私钥只能本机拥有
  • 通过公钥加密的,需要用私钥解密;通过私钥加密的,需要用公钥解密
  • 保证安全性例子(机器A向机器B发送邮件)
    1. 机器A获取到机器B的公钥
    2. 机器A向机器B发送使用机器B的公钥加密过邮件
    3. 在机器B接收到机器A发送的邮件后需要利用B的私钥解密才行,这样即使邮件被别人拦截了,也没有机器B的私钥进行解密,这样就保证了安全性
ssh免密登陆
  • 免密登陆的原理:将机器A的公钥发送给机器B,机器B使用机器A的公钥加密一串字符后将字符发送给机器A,机器A通过私钥解析这一串字符,解析成功则能认证通过这是机器A,即可对机器B进行免密登陆,如果无法解析则说明此台机器不是机器A,所以机器B不允许登录。

  • 免密登陆步骤(使用bigdata用户操作)

    1. 获取SZ01的公钥(公钥只需获取一次即可)

      ssh-keygen -t rsa

      在此过程中使用默认配置即可,即一路回车直到生成RSA文件

    2. 将SZ01的公钥发送给机器SZ02

      ssh-copy-id bigdata@SZ02

      输入SZ02中bigdata用户的密码

    3. 测试

      ssh SZ02

  • 可以查看SZ02中获取到的SZ01中的公钥文件

    cat ~/.ssh/authorized_keys

  • 在SZ01、SZ02、SZ03三台机器互相配置免密登陆(包括自身机器)

三、hadoop安装、配置

hadoop简介(来自百度百科):

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

hadoop的安装
  1. 使用Xftp将hadoop-2.7.2.tar.gz上传至bigdata用户家目录下

  2. 解压缩到当前文件夹

    tar -zxvf hadoop-2.7.2.tar.gz

  3. 安装完成,查看文件夹中包含的文件,hadoop的配置文件目录在etc/hadoop中

    sbin以及bin目录下是可执行脚本文件,其中sbin目录中存放启停hadoop的命令文件,bin目录中存放操作hadoop的命令文件

hadoop的配置
  • 环境变量的配置

    1. 编辑环境变量的配置文件

      vi ~/.bash_profile

      在用户环境变量文件中添加如下图三个箭头指向的内容

    2. 刷新配置文件

      source ~/.bash_profile

    3. 使用hadoop命令查看版本测试环境变量是否配置成功

      hadoop version

  • 配置文件的配置

    此配置文件配置为全分布式

    配置文件的目录在~/hadoop-2.7.2/etc/hadoop

    总共需要配置6个文件

    core-site.xml

    hdfs-site.xml

    mapred-site.xml

    yarn-site.xml

    hadoop-env.sh

    slaves

    1. core-site.xml

      <configuration>
      <!-- Hadoop文件系统依赖的基础配置 -->
      <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/bigdata/hadoop/data</value>
      </property>
      <!-- NameNode结点的URI(包括协议、主机名称、端口号) -->
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://SZ01:8020</value>
      </property>
      <!-- 开启回收站机制,可以设置文件彻底删除的时间,默认为0,单位为分钟 -->
      <property>
      <name>fs.trash.interval</name>
      <value>60</value>
      </property>
      </configuration>

    2. hdfs-site.xml

      在生产环境中,linux系统盘上安装了hadoop软件,另准备一个单独存储数据的磁盘,linux将该磁盘挂载到了某个目录(如data)下,hadoop中配置文件将文件存放目录改到data目录下,即如下配置文件中的dfs.datanode.data.dir

      <configuration>
      <!-- secondarynamenode的http服务器地址和端口 -->
      <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>SZ01:50090</value>
      </property>
      <!-- 默认块复制 -->
      <property>
      <name>dfs.replication</name>
      <value>3</value>
      </property>
      <!-- 关闭权限校验 -->
      <property>
      <name>dfs.permissions</name>
      <value>false</value>
      </property>
      <!-- namenode的http服务器地址和端口 -->
      <property>
      <name>dfs.namenode.http-address</name>
      <value>SZ01:50070</value>
      </property>
      <!-- datanode结点被指定要存储数据的本地文件系统路径 -->
      <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///home/bigdata/hadoop/data/dfs/dn</value>
      </property>
      </configuration>

      权限校验 – dfs.permissions – 默认是开启状态

      bigdata用户启动hadoop软件,此时bigdata用户拥有最高权限,在开发阶段将此项关闭

    3. mapred-site.xml

      需要将mapred-site.xml.template重命名为mapred-site.xml

      mv mapred-site.xml.template mapred-site.xml

      <configuration>
      <!-- MapReduce JobHistory进程通信主机、端口 -->
      <property>
      <name>mapreduce.jobhistory.address</name>
      <value>SZ01:10020</value>
      </property>
      <!-- MapReduce JobHistory的web界面主机、端口 -->
      <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>SZ01:19888</value>
      </property>
      <!-- 以yarn方式运行MapReduce -->
      <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
      </property>
      </configuration>

    4. yarn-site.xml

      <configuration>
      <!-- resourcemanager的主机名 -->
      <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>SZ01</value>
      </property>
      <!-- resourcemanager提供给nodemanager的地址 -->
      <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
      <value>SZ01:8031</value>
      </property>
      <!-- resourcemanager中应用程序管理器界面的地址 -->
      <property>
      <name>yarn.resourcemanager.address</name>
      <value>SZ01:8032</value>
      </property>
      <!-- 调度器接口的地址 -->
      <property>
      <name>yarn.resourcemanager.scheduler.address</name>
      <value>SZ01:8030</value>
      </property>
      <!-- 分配给容器的物理内存量(75%) -->
      <property>
      <name>yarn.nodemanager.resource.memory-mb</name>
      <value>1536</value>
      </property>
      <!-- NodeManager上运行的附属服务,配置成mapreduce_shuffle才可运行MR -->
      <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      </property>
      </configuration>

      yarn.nodemanager.resource.memory-mb

      当计算式能够调度的系统最大内存量(75%),所以需要虚拟机的最低内存应设置为2G

    5. hadoop-env.sh添加JAVA_HOME目录

    6. slaves指定管辖的机器(datanode节点),在其中添加三个datanode节点地址

  • 如果搭建伪分布式,则改动下图中的内容即可

四、SZ02、SZ03的配置

卸载预装软件、关闭防火墙

Xshell中在SZ02和SZ03会话中开启”发送键输入到所有会话”功能,接下来的命令只需在SZ02会话中输入即可

注意:需要使用root用户操作

  • 卸载系统预装的jdk:

    1. 使用rpm查找jdk包

      rpm -qa|grep jdk

    2. 依次卸载这两个包

      rpm -e –nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64

      rpm -e –nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64

    3. 再次查找,已无这两个包,卸载完成

      rpm -qa|grep jdk

  • 关闭系统防火墙

    service iptables stop

    在生产环境下,如果是在公有云租用了服务器,可以指定在局域网内开启端口,而外网的访问则完全关闭端口,这是通过网络安全组的设置实现的;而私有云则是通过局域网路由器控制端口的访问权限。

启动集群前的准备
  • 将SZ01中的jdk、hadoop、用户环境变量发送至SZ02、SZ03

    scp命令:远程发送文件/文件夹,基于ssh

    在SZ01中使用bigdata用户进行以下操作:

    scp -r /home/bigdata/jdk1.8.0_171 bigdata@SZ02:/home/bigdata/
    scp -r /home/bigdata/jdk1.8.0_171 bigdata@SZ03:/home/bigdata/
    scp -r /home/bigdata/hadoop-2.7.2 bigdata@SZ02:/home/bigdata/
    scp -r /home/bigdata/hadoop-2.7.2 bigdata@SZ03:/home/bigdata/
    scp /home/bigdata/.bash_profile bigdata@SZ02:/home/bigdata/
    scp /home/bigdata/.bash_profile bigdata@SZ03:/home/bigdata/

    在SZ02、SZ03中查看jdk、hadoop版本,验证是否传输成功

  • 对namenode进行格式化

    在SZ01中进行操作

    hadoop namenode -format

    格式化过程中没有出现ERROR的提示即代表格式化成功。

    每次格式化都会在hadoop/data/dfs/name/current中生成一个新的VERSION文件,每次格式化后的clusterID都与以前不同,相当于建立了一个新的集群

    cat hadoop/data/dfs/name/current/VERSION

启动集群

使用SZ01进行操作

进入hadoop安装目录下的sbin目录

cd hadoop-2.7.2/sbin/

执行启动命令

start-all.sh:启动dfs和yarn进程

start-dfs.sh:单独启动dfs

start-yarn.sh:单独启动yarn

启动dfs:

./start-dfs.sh

打印的信息中提示启动日志存放在/home/bigdata/hadoop-2.7.2/logs/hadoop-bigdata-xxxnode-SZ0x.out中,如果有某一节点未启动,可以通过日志文件进行查看排错

启动成功后,三台机器的进程信息如下:

SZ01:NameNode, SecondaryNameNode. DataNode

SZ02:DataNode

SZ03:DataNode

启动yarn:

./start-yarn.sh

启动成功后,在上一步的基础上,各个节点的进程中多了一下进程:

SZ01:ResourceManager, NodeManager

SZ02:NodeManager

SZ03:NodeManager

集群中进程的作用

hdfs和yarn的作用:

hdfs:hadoop分布式文件系统,负责hadoop集群中的数据存储工作

yarn:作业调度和资源管理

hdfs:

  • namenode:每个集群中的主节点
  • datanode:标志当前机器是数据存储节点
  • secondarynamenode:管理用户操作镜像的进程:用户镜像,文件做存储时没有实时写入硬盘,当文件大小超过一定额度时才会将文件写入硬盘

yarn:

  • resourcemanager:计算阶段的任务调度,负责同步各个nodemanager的计算结果
  • nodemanager:数据计算节点

第六天 - 安装第二、三台CentOS - SSH免密登陆 - hadoop全分布式安装、配置、集群启动相关推荐

  1. 基于三台虚拟机配置ssh免密登陆

    目录 一.前提准备 二.配置ssh免密登陆(Hadoop102,hadoop103,hadoop104) 三.配置三台免密登陆 一.前提准备 qian ti z bqian ti zqian tiqi ...

  2. centos ssh免密登录 多台互相免密登录

    centos SSH免密登录 多台互相免密登录 一.从一台服务器免密登录到多台服务器 假定操作的机器为crawl01,需要免密登录的机器为crawl02,crawl03... 在crawl01上做如下 ...

  3. 超详细 Hadoop 安装(内附ssh免密登录,图文详解,小白必看)

    Hadoop 伪分布安装 (内附ssh免密登录,收藏起来看哦) 目录 Hadoop 伪分布安装 (内附ssh免密登录,收藏起来看哦) 一:   安装前准备 二:    jdk 安装,java环境配置 ...

  4. Git 详细教程之五:SSH 免密登陆 GitHub

       由于每次 Git 对远程库 GitHub 进行推送(push)等操作时都需要进行登陆验证才可以进行,比较麻烦.本篇博客提供了一种新的链接方式:『Git 详细教程之五:SSH 免密登陆 GitHu ...

  5. 科普扫盲---ssh免密登陆(ssh的一些小秘密)

    ssh协议和tcp/ip 协议一样非常的重要,那么,如何使用这个ssh呢?这个协议到底有什么用处呢? 一, ssh协议是什么 ssh是secure SHell的简写,意思为安全的shell,中文也叫安 ...

  6. ssh免密登陆失败原因总结(Linux)

    转载自  ssh免密登陆失败原因总结(Linux) 1. SSH公钥认证(免密码)配置 登录到本机服务器A,切换到响应的操作系统用户,执行命令,生成秘钥文件[按照提示直接回车] ssh-keygen ...

  7. ssh免密登陆机制示意图

    ssh免密登陆机制示意图

  8. 批量ssh免密登陆远程主机

    案例 1.中心主机以root执行ssh-keygen -t rsa 在/root/.ssh/下生成id_rsa(私钥); id_rsa.pub(公钥); cat /root/.ssh/id_rsa.p ...

  9. start-all.sh启动设置ssh免密登陆还总是提示输入密码的解决办法

    [1]问题描述: start-all.sh启动设置ssh免密登陆还总是提示输入密码:已经配置了ssh免密码登陆,当是每次输入start-all.sh还是总是提示输入密码: [2]解决办法:这个是文件权 ...

最新文章

  1. SAP 创建启用了ARM功能的采购订单,报错 -Shipping processing is not selected to supplier 100057 in purchase org. 0002
  2. WindowsServer2012史记4-重复数据删除的魅力
  3. 1分钟10万字大法:量子波动速读、蒙眼翻书穿针,这是席卷15省的最新智商税...
  4. android sd卡不可写,Android检查SD卡是否可读写
  5. 利用属性观察器实现数据绑定
  6. NFS服务安装与配置方案
  7. 大型网站登录信息保存实现-整理
  8. 倒车雷达c语言编程,汽车倒车雷达系统的设计与实现(论文c1)
  9. dell服务器管理口ip地址_常用服务器管理口IP及账号密码(欢迎补充)
  10. 编译原理生成中间代码(flex和bison版)
  11. sp3 文件格式说明
  12. 怎么把PDF拆分成单页?
  13. 【多目标进化优化】多目标进化群体的分布性
  14. 计算机领域中的token的意思
  15. Android倒计时实现及Timer和TimerTask的使用
  16. matlab1到100求和for_一个简单的MATLAB程序(1到100求和)
  17. 丢番图生平编程java_丢番图
  18. MAC OS下设置bits/stdc++.h万能头文件
  19. 人工智能的前景 | 钱颖一对话张首晟、饶毅、马化腾
  20. 集成seata到springboot,cloud项目,找不到事务分组

热门文章

  1. 表达式求值的三种方法
  2. Numpy 和Pandas进行一维数据分析笔记
  3. 阿里巴巴java开发手册(公开版)
  4. 1,2两种类型的砖铺地
  5. Windows查询计算机设备序列号、MAC地址和硬盘序列号
  6. [制作实践]一种基于LM2576的多功能开关电源设计
  7. maya 替换名称_Maya Reshift 代理物体 替换简模 切换显示工具脚本插件下载!
  8. [转载]Streaming API for XML (StAX) 简介
  9. 复杂链表的复制(C语言)
  10. HotDB Server开放下载先知--组件名词介绍